Helado 0 Geschrieben 24. Januar 2018 Melden Geschrieben 24. Januar 2018 Hallo Community, ich versuche gerade ein PowerShell Script zu basteln, besser gesagt: zusammen zu würfeln um NTFS Berechtigungen zu setzen für Gruppen. Ich bekomme es aber nicht hin, die Objekt- und Containervererbungen zu implementieren (zuvor hatte ich ein Batch-Script mit .../grant Benutzer: (CI)(OI)(M). Modify Rechte habe ich bereits vergeben. Hier mal mein Script: # Is this a Wow64 powershell host function Test-Wow64() { return (Test-Win32) -and (test-path env:\PROCESSOR_ARCHITEW6432) } # Is this a 64 bit process function Test-Win64() { return [IntPtr]::size -eq 8 } # Is this a 32 bit process function Test-Win32() { return [IntPtr]::size -eq 4 } if (!(Test-Path "C:\MyFolder")) { New-Item -Path C:\ -Name "MyFolder" -ItemType directory Write-Host "Neuer Ordner wurde angelegt" } else { Add-Content -Path C:\ -Name "MyFolder" -ItemType directory Write-Host "Ordner existiert bereits" } #Benutzer $Right="Modify" $path="C:\MyFolder" $Principal= New-Object System.Security.Principal.SecurityIdentifier 'S-1-5-32-545' $rule=New-Object System.Security.AccessControl.FileSystemAccessRule($Principal,$Right,3, 0,"Allow") $acl = get-acl $path $acl.SetAccessRule($rule) set-acl $path $acl #Authentifizierte Benutzer $Right="Modify" $path="C:\MyFolder" $Principal= New-Object System.Security.Principal.SecurityIdentifier 'S-1-5-11' $rule=New-Object System.Security.AccessControl.FileSystemAccessRule($Principal,$Right,3, 0,"Allow") $acl = get-acl $path $acl.SetAccessRule($rule) set-acl $path $acl #Administratoren $Right="Modify" $path="C:\MyFolder" $Principal= New-Object System.Security.Principal.SecurityIdentifier 'S-1-5-32-544' $rule=New-Object System.Security.AccessControl.FileSystemAccessRule($Principal,$Right,3, 0,"Allow") $acl = get-acl $path $acl.SetAccessRule($rule) set-acl $path $acl #PowerUsers $Right="Modify" $path="C:\MyFolder" $Principal= New-Object System.Security.Principal.SecurityIdentifier 'S-1-5-32-547' $rule=New-Object System.Security.AccessControl.FileSystemAccessRule($Principal,$Right,3, 0,"Allow") $acl = get-acl $path $acl.SetAccessRule($rule) set-acl $path $acl #System $Right="Modify" $path="C:\MyFolder" $Principal= New-Object System.Security.Principal.SecurityIdentifier 'S-1-5-18' $rule=New-Object System.Security.AccessControl.FileSystemAccessRule($Principal,$Right,3, 0,"Allow") $acl = get-acl $path $acl.SetAccessRule($rule) set-acl $path $acl Weiß jemand zufällig, wie ich das in meinem bisherigen Script implementieren kann? Vorab vielen Dank! Zitieren
Helado 0 Geschrieben 24. Januar 2018 Autor Melden Geschrieben 24. Januar 2018 Das Obere (mit Wow64, 64 Bit, 32 Bit) habe ich eingebunden damit geprüft werden kann, ob es ein 32 Bit- oder 64 Bit System ist weil dann müssen die Ordner entsprechend angelegt werden (sei es Programme oder Programme x86). Ob es richtig ist, oder nicht, kann ich nicht sagen :-D Zitieren
Helado 0 Geschrieben 24. Januar 2018 Autor Melden Geschrieben 24. Januar 2018 Ich habe es mal so versucht, haut aber von vorne bis hinten nicht hin: $architecture = (Get-WmiObject win32_processor | Where-Object{$_.deviceID -eq "CPU0"}).AddressWidth If ($architecture -eq 64) { $FolderPath = "C:\Program Files (x86)\Test(x86)" } else { $FolderPath = "C:\Program Files\Test" } if (!(Test-Path $FolderPath)) { New-Item -Path "C:\Program Files (x86)" -Name Test(x86) -ItemType directory Write-Host "Neuer Ordner wurde angelegt" } else { Add-Content -Path "C:\Program Files" -Name Test -ItemType directory Write-Host "Ordner existiert bereits" } Zitieren
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.