Windows Server 2003 Ordnerberechtigung
Konsolenbefehle
Hi,
ich habe gerade einen Windows Server 2003 eingereichtet. Nun soll ich knapp 200 User einrichten. Die Uswer kann ich schon über ie Konsole anlegen, dafür habe ich schon ein kleines Programm geschrieben.
Nun möchte ich gerne über die Konsole vom Server Ordner in einem Bestimmten Verzeichnis anlegen.
Nachdem(!) die Ordner angelegt wurden, sollen die Ordner im Netzwerk freigegeben werden und folgende Rechte sollen enthalten sein:
? Der User "Jeder" User" soll keine Rechte haben
? Der User "Administrator" soll Vollzugrigff haben
? Der User "XYZ" soll Vollzugriff haben
Kann ich das über die Windows Konsole machen, wenn ja, wie ?
thx hibbert
Hi,
ich habe gerade einen Windows Server 2003 eingereichtet. Nun soll ich knapp 200 User einrichten. Die Uswer kann ich schon über ie Konsole anlegen, dafür habe ich schon ein kleines Programm geschrieben.
Nun möchte ich gerne über die Konsole vom Server Ordner in einem Bestimmten Verzeichnis anlegen.
Nachdem(!) die Ordner angelegt wurden, sollen die Ordner im Netzwerk freigegeben werden und folgende Rechte sollen enthalten sein:
? Der User "Jeder" User" soll keine Rechte haben
? Der User "Administrator" soll Vollzugrigff haben
? Der User "XYZ" soll Vollzugriff haben
Kann ich das über die Windows Konsole machen, wenn ja, wie ?
thx hibbert
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 16617
Url: https://administrator.de/contentid/16617
Ausgedruckt am: 16.11.2024 um 08:11 Uhr
1 Kommentar
' Ein überarbeitetes Beispiel aus dem Scriptcenter
' Erzeugt den Ordner C:\Finance und gibt ihn als 'FinanceShare' frei,
' gibt eine Beschreibung 'Public share for the Finance group.' an
' und begrenzt die Verbindungen auf 25
Const FILE_SHARE = 0
Const MAXIMUM_CONNECTIONS = 25
Const strAclF = "F"
Const strAdmin = "Administrator"
Const strJeder = "Jeder"
strDir = "C:\Finance"
strComputer = "<<a>computername<a>>"
strUserName = "XYZ"
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objItem = objFSO.CreateFolder(strDir)
Set objNewShare = objWMIService.Get("Win32_Share")
Set WshShell = Wscript.CreateObject("Wscript.Shell")
errReturn = objNewShare.Create("C:\Finance", "FinanceShare", FILE_SHARE, MAXIMUM_CONNECTIONS, "Public share for the Finance group.")
'~~~~~~~~~~~~~~~~~~~~~
' Für die Rechte
' Hilfe zu den cacls Parametern: cmd > cacls /?
If Right(strDir, 1) = "\" Then strDir = Left(strDir, Len(strDir) -1)
WshShell.Run("cacls " & strDir & " /T /E /P " & strAdmin & ":" & strAclF)
WshShell.Run("cacls " & strDir & " /T /E /P " & strUserName & ":" & strAclF)
WshShell.Run("cacls " & strDir & " /T /E /R " & strJeder)
If Not Right(strDir, 1) = "\" Then strDir = strDir & "\"
Das ganze musst du halt noch in eine Schleife einbauen.
Ist nicht schön ausprogrammiert, funktioniert aber.
' Erzeugt den Ordner C:\Finance und gibt ihn als 'FinanceShare' frei,
' gibt eine Beschreibung 'Public share for the Finance group.' an
' und begrenzt die Verbindungen auf 25
Const FILE_SHARE = 0
Const MAXIMUM_CONNECTIONS = 25
Const strAclF = "F"
Const strAdmin = "Administrator"
Const strJeder = "Jeder"
strDir = "C:\Finance"
strComputer = "<<a>computername<a>>"
strUserName = "XYZ"
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objItem = objFSO.CreateFolder(strDir)
Set objNewShare = objWMIService.Get("Win32_Share")
Set WshShell = Wscript.CreateObject("Wscript.Shell")
errReturn = objNewShare.Create("C:\Finance", "FinanceShare", FILE_SHARE, MAXIMUM_CONNECTIONS, "Public share for the Finance group.")
'~~~~~~~~~~~~~~~~~~~~~
' Für die Rechte
' Hilfe zu den cacls Parametern: cmd > cacls /?
If Right(strDir, 1) = "\" Then strDir = Left(strDir, Len(strDir) -1)
WshShell.Run("cacls " & strDir & " /T /E /P " & strAdmin & ":" & strAclF)
WshShell.Run("cacls " & strDir & " /T /E /P " & strUserName & ":" & strAclF)
WshShell.Run("cacls " & strDir & " /T /E /R " & strJeder)
If Not Right(strDir, 1) = "\" Then strDir = strDir & "\"
Das ganze musst du halt noch in eine Schleife einbauen.
Ist nicht schön ausprogrammiert, funktioniert aber.