2016-08-16 1 views
1

J'ai créé un script pour créer un nouveau dossier en fonction de certaines variables de l'entreprise et, plus tard, ajouter un groupe avec des utilisateurs pour gérer les autorisations sur ce dossier. Je ne trouve pas de manière décente d'ajouter un ou plusieurs groupes AD à un dossier du même script.Tentative d'ajout de groupes de sécurité globaux à un dossier

Voici mon script:

$parentfolder = Read-Host -Prompt "Please enter the name of the parent folder (i.e. FOLDER1234)" 
$folder = Read-Host -Prompt "Please enter the name of the new network folder" 

New-Item \\DC02\product\$parentfolder\$folder -type directory 
Write-Host "Folder has been created!" 
Start-Sleep -s 2 

$newgroup = Read-Host -Prompt "Please enter the new group name for this folder (1234-1234-12xx format)" 
$description = Read-Host -Prompt "Please enter the abbreviation of the product (i.e. PDPROD)" 
NEW-ADGroup -Name $newgroup -GroupScope Global -Description $description -Path "OU=Project Groups,DC=ourdomain,DC=nl" 

do { 
    $stringquit = Read-Host -Prompt "Please enter the member username's to add or press Q if you are done." 
    $userfilter3 = Get-ADUser -Filter {sAMAccountName -eq $stringquit} 
    if ($userfilter3 -eq $Null,"Q") { 
     Write-Host = "User does not exist in AD, please try again" 
     Start-Sleep -s 1 
    } else { 
     if ($stringquit -ne "Q") { 
      Write-Output -InputObject $stringquit | Out-File -Append c:\userlist.csv 
     } else { 
      Write-Host "You pressed Q, moving on." 
     } 
    } 
} until ($stringquit -eq "Q") 

$addgroup = "cn=$newgroup,ou=Project Groups,dc=ourdomain,dc=nl" 
$list = Get-Content c:\userlist.csv 
foreach ($user in $list) { 
    Add-ADGroupMember -Identity $addgroup -Member $user 
} 

#set permissions 
$acl = Get-Acl \\DC02\product\$parentfolder\$folder 
$ar = New-Object System.Security.AccessControl.FileSystemAccessRule("1234-all","Modify"."ContainerInherit,ObjectInherit","None","Allow") 
$acl.SetAccessRule($ar) 
Set-Acl \\DC02\product\$parentfolder\$folder $acl 
+0

@Ansgar: il y a une certaine controverse quant à savoir si les tags doivent être supprimés des titres - certainement des titres taggy sous la forme 'x | y | question »devrait être aplani, mais la suppression des mots clés tels que« Powershell »perd un contexte important dans les barres d'interrogation« Questions urgentes »ou« Liens connexes », où les balises ne sont pas affichées. – halfer

Répondre

1
+0

La partie des autorisations définies à la fin est le problème en effet, le reste semble fonctionner. Cependant, la première erreur apparaît lorsque "line2" est exécuté depuis la dernière partie. – Kevin

+0

PS C: \ ps> Nouvel objet System.Security.AccessControl.FileSystemAccessRule ("6001-all", "Modifier". "ContainerInherit, ObjectInherit", "None", "Autoriser") Nouvel objet: Impossible de trouver un surcharge pour "FileSystemAccessRule" et le nombre d'arguments: "4". À la ligne: 1 Caractère: 1 + New-Object System.Security.AccessControl.FileSystemAccessRule ("6001-all", "Modifier ... + ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidOperation: (:) [New-Object], MethodException + FullyQualifiedErrorId: ConstructorInvokedThrowException, Microsoft.PowerShell.Commands.NewObjectCommand – Kevin

+0

Vous avez une faute de frappe dans cette instruction Remplacez le point entre '" Modifier "' et '" ContainerIn herit, ObjectInherit "' par une virgule –