Untitled

 avatar
unknown
plain_text
24 days ago
1.6 kB
3
Indexable
# Supprime les restrictions de connexion pour tous les utilisateurs d'un groupe ou d'une OU spécifique
Function Remove-LogonHours {
    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$True)]
        [string]$OUPath # Chemin OU ou DN du groupe cible
    )
    
    Process {
        # Récupère tous les utilisateurs dans l'OU spécifiée
        try {
            $Users = Get-ADUser -Filter * -SearchBase $OUPath -Properties logonHours
        } catch {
            Write-Host "Erreur : Impossible de récupérer les utilisateurs dans l'OU $OUPath. $_" -ForegroundColor Red
            return
        }

        if (-not $Users) {
            Write-Host "Aucun utilisateur trouvé dans l'OU $OUPath." -ForegroundColor Yellow
            return
        }

        # Supprime les restrictions pour chaque utilisateur
        foreach ($User in $Users) {
            try {
                Set-ADUser -Identity $User.SamAccountName -Clear logonHours
                Write-Host "Restrictions supprimées pour l'utilisateur : $($User.SamAccountName)" -ForegroundColor Green
            } catch {
                Write-Host "Erreur : Impossible de supprimer les restrictions pour l'utilisateur $($User.SamAccountName). $_" -ForegroundColor Red
            }
        }

        Write-Host "Toutes les restrictions d'horaires de connexion ont été supprimées pour l'OU $OUPath." -ForegroundColor Cyan
    }
}

# Exemples d'utilisation :
# Supprime les restrictions pour tous les utilisateurs dans l'OU SIEGE (et ses sous-OUs)
Remove-LogonHours -OUPath "OU=SIEGE,DC=HORIZON,DC=LOCAL"
Editor is loading...
Leave a Comment