Logo Pastebin.fr
Pastebin

Retrouvez, créez et partagez vos snippets en temps réel.

dd

# --- CONFIGURATION ---
$DomainName = "kiwicloud.local"
$GPOName = "GPO_ABCommerce_DossiersPersonnels"
# Chemin récupéré de votre capture d'écran
$RootShare = "\\kiwicloud.local\Partage\ABC\Utilisateurs" 
# Chemin LDAP de l'OU (basé sur votre structure ABCommerce)
$TargetOU = "OU=Utilisateurs,OU=ABCommerce,DC=kiwicloud,DC=local"

Import-Module ActiveDirectory
Import-Module GroupPolicy

Write-Host "--- Démarrage de la configuration DFS/GPO ---" -ForegroundColor Cyan

# 1. Vérification / Création de la GPO
$GPO = Get-GPO -Name $GPOName -ErrorAction SilentlyContinue
if ($GPO) {
    Write-Host "La GPO '$GPOName' existe déjà." -ForegroundColor Yellow
} else {
    Write-Host "Création de la GPO '$GPOName'..." -ForegroundColor Green
    $GPO = New-GPO -Name $GPOName -Comment "GPO créée par script pour les dossiers personnels"
}

# 2. Liaison de la GPO à l'OU
$Link = Get-GPLink -Target $TargetOU -ErrorAction SilentlyContinue | Where-Object {$_.DisplayName -eq $GPOName}
if ($Link) {
    Write-Host "La GPO est déjà liée à l'OU." -ForegroundColor Yellow
} else {
    Write-Host "Liaison de la GPO à l'OU $TargetOU..." -ForegroundColor Green
    New-GPLink -Name $GPOName -Target $TargetOU -LinkEnabled Yes | Out-Null
}

# 3. Configuration du Lecteur Réseau P: (Méthode Registre pour la GPO)
# Cela va monter P: vers \\kiwicloud.local\Partage\ABC\Utilisateurs\%USERNAME%
Write-Host "Configuration du lecteur P: dans la GPO..." -ForegroundColor Green

# Clé pour mapper le lecteur P:
$KeyPath = "HKCU\Network\P"
Set-GPRegistryValue -Name $GPOName -Key $KeyPath -ValueName "RemotePath" -Type String -Value "$RootShare\%USERNAME%"
Set-GPRegistryValue -Name $GPOName -Key $KeyPath -ValueName "ConnectionType" -Type DWord -Value 1
Set-GPRegistryValue -Name $GPOName -Key $KeyPath -ValueName "ProviderName" -Type String -Value "Microsoft Windows Network"
Set-GPRegistryValue -Name $GPOName -Key $KeyPath -ValueName "UserName" -Type String -Value ""

# 4. Sécurisation du dossier racine (CRUCIAL pour la création automatique)
# On s'assure que le dossier physique existe, sinon le script s'arrête (il faut que le partage existe d'abord)
# Note: Ce bloc doit être exécuté sur le serveur de fichier ou il faut que le chemin UNC soit accessible en écriture par l'admin actuel.
try {
    if (Test-Path $RootShare) {
        Write-Host "Configuration des permissions NTFS sur $RootShare..." -ForegroundColor Green
        $Acl = Get-Acl $RootShare
        
        # Désactiver l'héritage pour contrôler finement
        $Acl.SetAccessRuleProtection($true, $true)

        # Règle : Utilisateurs du domaine peuvent CRÉER des dossiers, mais pas voir ceux des autres
        # "Traverse, ListDirectory, CreateDirectories, AppendData, ReadAttributes, ReadExtendedAttributes, ReadPermissions"
        $Arg = "Domain Users","ReadAndExecute, CreateDirectories","ContainerInherit, ObjectInherit","None","Allow"
        $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $Arg
        $Acl.AddAccessRule($AccessRule)

        # Règle : Creator Owner a le contrôle total (sur ce qu'il a créé)
        $ArgCO = "CREATOR OWNER","FullControl","ContainerInherit, ObjectInherit","InheritOnly","Allow"
        $AccessRuleCO = New-Object System.Security.AccessControl.FileSystemAccessRule $ArgCO
        $Acl.AddAccessRule($AccessRuleCO)

        Set-Acl $RootShare $Acl
        Write-Host "Permissions NTFS appliquées avec succès." -ForegroundColor Green
    } else {
        Write-Host "ATTENTION: Le chemin $RootShare est inaccessible. Vérifiez votre DFS." -ForegroundColor Red
    }
} catch {
    Write-Host "Erreur lors de la gestion des permissions: $_" -ForegroundColor Red
}

Write-Host "--- Terminé ! ---" -ForegroundColor Cyan
Write-Host "Action requise : Allez dans la console GPO, modifiez '$GPOName' et activez la Redirection de Dossiers (Documents) manuellement vers le chemin racine si nécessaire." -ForegroundColor Yellow

Créé il y a 3 semaines.

Rechercher un Pastebin

Aucun paste trouvé.