none
Ordnernamen auslesen Berechtigung setzen Script RRS feed

  • Frage

  • Guten morgen,

    ich suche ein Script was mir die Berechtigungen neu setzt.

    Ich habe über 120 Ordner mit die mit Usernamen bezeichnet sind ( Ordener User1, User2, User3, ect.).

    nun soll so wie der User heißt auch die Berechtigung gesetzt werden, rekrusiv. das heißt Ordner User1 soll der user:User1 auch

    Zugriff schreib- ausführ und leserechte haben. 

    Zzgl. soll der Dom-Admin und der Lokale Admin-Gruppe vollen Zugriff auf alle Ordner haben.

    Hat da jemand eine idee?

    - in den Raum geworfen würde ich es mit icacls versuchen.


    • Bearbeitet Optimusos Donnerstag, 9. Juni 2016 09:06
    Donnerstag, 9. Juni 2016 08:49

Antworten

  • Hi

    vielen Dank Martin für den denkanstoß

    ich habe es aber nun über VBScript gelöst:

    Dim objFSO, strDomain Set objFSO = CreateObject("Scripting.FileSystemObject") read_two_subfolders "C:\pfad\zum\ordner" function read_two_subfolders(strFolderPath)

    On error Resume Next Dim objUnterordner, objFolder, strSystem, strAdmin strDomain = "Domainname" strAdmin = "Domain Admins" strSystem ="System" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(strFolderPath) Set WshShell = WScript.CreateObject("WScript.Shell") For each objUnterordner In objFolder.SubFolders strUser = objUnterordner.name WshShell.Run "%windir%\System32\icacls.exe " & objUnterordner & " /inheritance:r /grant:r " & strDomain &"\" & strUser & ":(OI)(CI)M " WshShell.Run "%windir%\System32\icacls.exe " & objUnterordner & " /inheritance:r /grant:r " & Chr(34) & strAdmin & Chr(34)&":(OI)(CI)F " WshShell.Run "%windir%\System32\icacls.exe " & objUnterordner & " /inheritance:r /grant:r " & strSystem &":(OI)(CI)F " Next End Function



    • Bearbeitet Optimusos Freitag, 10. Juni 2016 08:16
    • Als Antwort markiert Optimusos Mittwoch, 15. Juni 2016 10:19
    Freitag, 10. Juni 2016 08:14

Alle Antworten

  • > nun soll so wie der User heißt auch die Berechtigung gesetzt werden,
    > rekrusiv. das heißt Ordner User1 soll der user:User1 auch
     
    D:\Users sei das Stammverzeichnis, das wir durchsuchen:
     
    for /d %u in (d:\users\*) do icacls %~dpnu /grant:r
    %computerdomain%%nu:(OI)(CI)M %computerdomain%\Domänenadmins:(OI)(CI)F
    Administrator:(OI)(CI)F /t /c /inheritance:r
     
    In einer Batchdatei mußt Du %%u, %%~dpnu und %%~nu verwenden.
     
    for /?
    icacls /?
     
    verraten Dir den Rest :)
     
    --
    Greetings/Grüße, Martin -
    Mal ein gutes Buch über GPOs lesen? -
    Good or bad GPOs? My blog - http://evilgpo.blogspot.com
    And if IT bothers me? Coke bottle design refreshment -
     
    Donnerstag, 9. Juni 2016 09:12
  • Hi

    vielen Dank Martin für den denkanstoß

    ich habe es aber nun über VBScript gelöst:

    Dim objFSO, strDomain Set objFSO = CreateObject("Scripting.FileSystemObject") read_two_subfolders "C:\pfad\zum\ordner" function read_two_subfolders(strFolderPath)

    On error Resume Next Dim objUnterordner, objFolder, strSystem, strAdmin strDomain = "Domainname" strAdmin = "Domain Admins" strSystem ="System" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(strFolderPath) Set WshShell = WScript.CreateObject("WScript.Shell") For each objUnterordner In objFolder.SubFolders strUser = objUnterordner.name WshShell.Run "%windir%\System32\icacls.exe " & objUnterordner & " /inheritance:r /grant:r " & strDomain &"\" & strUser & ":(OI)(CI)M " WshShell.Run "%windir%\System32\icacls.exe " & objUnterordner & " /inheritance:r /grant:r " & Chr(34) & strAdmin & Chr(34)&":(OI)(CI)F " WshShell.Run "%windir%\System32\icacls.exe " & objUnterordner & " /inheritance:r /grant:r " & strSystem &":(OI)(CI)F " Next End Function



    • Bearbeitet Optimusos Freitag, 10. Juni 2016 08:16
    • Als Antwort markiert Optimusos Mittwoch, 15. Juni 2016 10:19
    Freitag, 10. Juni 2016 08:14