Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

Troubleshooting Filesystem creation script

$
0
0

Set-ExecutionPolicy unrestricted import-module activedirectory if (! $?) { throw "Active-Directory Modul konnte nicht geladen werden! In der Regel ist das AD-Modul nur auf Domänencontrollern installiert." } ########################################################## Ordner und FS Gruppen anlegen ########################################################## $csvfile="fs.csv" $pfad="\\DFS.Path.To\Folder\Foldername" $ordnerlist=Import-Csv $csvfile -Delimiter ";" foreach ($ordner in $ordnerlist) { #Ordner erstellen $ordnername = $ordner.Verzeichnis $ordnerpfad = $pfad+$ordnername mkdir -path $ordnerpfad #ACL's auslesen $AccessL=GET-ACL $ordnerpfad $AccessR=GET-ACL $ordnerpfad $AccessW=GET-ACL $ordnerpfad $folder=($ordnername -split "\\")[-1] $groupname="domname-SG-FS-"+$folder #Allgemeine ACL's setzen $AccessControlType=[System.Security.AccessControl.AccessControlType]"Allow" $InheritanceFlags=[System.Security.AccessControl.InheritanceFlags]"ContainerInherit, ObjectInherit" $PropagationFlags=[System.Security.AccessControl.PropagationFlags]"InheritOnly" ############# FS-Gruppe "L" anlegen und zuordnen ############# #Verfügbare Rechte http://msdn.microsoft.com/de-de/library/system.security.accesscontrol.filesystemrights.aspx $FileSystemRightsL=[System.Security.AccessControl.FileSystemRights]"ListDirectory" $IdentityReferenceL=$groupname+"-L" #Zusammensetzen des ACL Befehls $FileSystemAccessRuleL=New-Object System.Security.AccessControl.FileSystemAccessRule ($IdentityReferenceL, $FileSystemRightsL, $InheritanceFlags, $PropagationFlags, $AccessControlType) $AccessL.AddAccessRule($FileSystemAccessRuleL) #ACL setzen SET-ACL $ordnerpfad $AccessL ############# FS-Gruppe "R" anlegen und zuordnen ############# #Verfügbare Rechte http://msdn.microsoft.com/de-de/library/system.security.accesscontrol.filesystemrights.aspx $FileSystemRightsR=[System.Security.AccessControl.FileSystemRights]"Read" $IdentityReferenceR=$groupname+"-R" #Zusammensetzen des ACL Befehls $FileSystemAccessRuleR=New-Object System.Security.AccessControl.FileSystemAccessRule ($IdentityReferenceR, $FileSystemRightsR, $InheritanceFlags, $PropagationFlags, $AccessControlType) $AccessR.AddAccessRule($FileSystemAccessRuleR) #ACL setzen SET-ACL $ordnerpfad $AccessR ############# FS-Gruppe "W" anlegen und zuordnen ############# #Verfügbare Rechte http://msdn.microsoft.com/de-de/library/system.security.accesscontrol.filesystemrights.aspx $FileSystemRightsW=[System.Security.AccessControl.FileSystemRights]"Modify" $IdentityReferenceW=$groupname+"-W" #Zusammensetzen des ACL Befehls $FileSystemAccessRuleW=New-Object System.Security.AccessControl.FileSystemAccessRule ($IdentityReferenceW, $FileSystemRightsW, $InheritanceFlags, $PropagationFlags, $AccessControlType) $AccessW.AddAccessRule($FileSystemAccessRuleW) #ACL setzen SET-ACL $ordnerpfad $AccessW }

Da habe ich wohl meine Frage durch den Quelltext ersetzt.

Jetzt aber richtig.

Schönen guten Tag erst mal,

ich bin gerade dabei ein Powershellscript zu basteln, welches aus einer csv Datei eine Ordnerstruktur ausliest und dann entsprechend die Ordner anlegt und dort auch Filesystem Gruppen mit den Rechten List, Read und Write zuordnet und diese vorab anlegt.

Die csv ist wie folgt aufgebaut:

Verzeichnis; Platzhalter

00_Ordner1;0

00_Ordner2;0

00_Ordner2\00_Unterordner1;0

Wie ihr seht sind zum Teil auch Unterordner mit enthalten, deshalb der Teil mit

$folder=($ordnername -split "\\")[-1]

Leider werde ich aus dem folgendem Fehler nicht schlau, weshalb ich mich an euch wende.

Hier der Fehler, welcher natürlich je Datensatz ausgespuckt wird:

Ausnahme beim Aufrufen von "AddAccessRule" mit 1 Argument(en):  "Manche oder alle Identitätsverweise konnten nicht übersetzt werden."
Bei Pfad-zum-Script\FS-Import.ps1:36 Zeichen:27+     $AccessL.AddAccessRule <<<< ($FileSystemAccessRuleL)+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException+ FullyQualifiedErrorId : DotNetMethodException

Des weiteren komme ich nicht dahinter, wie ich die Variable $OU mit einfügen kann, dass ich noch den Pfad, wo die Gruppen erstellt werden sollen angeben kann. Vielleicht kann mir da noch jemand helfen.

Vielen Dank für eure Hilfe!


Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>