Untitled

 avatar
unknown
plain_text
a month ago
2.7 kB
2
Indexable
Import-Module ActiveDirectory

# Définir les restrictions pour les utilisateurs standards (Lundi-Vendredi, 8h-18h)
$timeRestrictionsStandard = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, # Dimanche
                           0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0, # Lundi
                           0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0, # Mardi
                           0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0, # Mercredi
                           0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0, # Jeudi
                           0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0, # Vendredi
                           0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0  # Samedi

# Définir les restrictions pour l'équipe IT (Lundi 7h au Samedi 23h)
$timeRestrictionsIT = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, # Dimanche
                      0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, # Lundi
                      1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, # Mardi
                      1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, # Mercredi
                      1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, # Jeudi
                      1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, # Vendredi
                      1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0  # Samedi

# Fonction pour appliquer les restrictions en fonction des groupes
Function Set-LogonHours {
    param (
        [string]$groupName,    # Nom du groupe (ex: GG-DIRECTION)
        [array]$logonHours     # Restrictions d'horaires à appliquer
    )
    Write-Host "Application des restrictions pour le groupe $groupName..." -ForegroundColor Cyan

    # Récupère les utilisateurs du groupe
    Get-ADGroupMember -Identity $groupName -Recursive | Where-Object { $_.objectClass -eq "user" } |
        ForEach-Object {
            Write-Host "  Appliquer pour l'utilisateur : $($_.SamAccountName)" -ForegroundColor Yellow

            # Convertir les heures en tableau binaire (format compatible)
            $hours = New-Object byte[] 21
            [array]::Copy($logonHours, $hours, 21)

            # Appliquer les restrictions de connexion
            Set-ADUser -Identity $_.SamAccountName -Replace @{logonHours=$hours}
        }
}

# Appliquer les restrictions pour chaque groupe
# Utilisateurs standards
Set-LogonHours -groupName "GG-DIRECTION" -logonHours $timeRestrictionsStandard
Set-LogonHours -groupName "GG-RH" -logonHours $timeRestrictionsStandard
Set-LogonHours -groupName "GG-COMPTA" -logonHours $timeRestrictionsStandard
Set-LogonHours -groupName "GG-COMMERCIAUX" -logonHours $timeRestrictionsStandard
Set-LogonHours -groupName "GG-R&D" -logonHours $timeRestrictionsStandard

# Équipe IT
Set-LogonHours -groupName "GG-IT" -logonHours $timeRestrictionsIT

Write-Host "Toutes les restrictions d'horaires ont été appliquées avec succès !" -ForegroundColor Green
Editor is loading...
Leave a Comment