Rechte für Freigabe per VBScript übergeben funktioniert nicht korrekt
Ich brauche Hilfe in Sachen Freigabeberechtigungen, die via VBS an einen Nutzer übergeben werden sollen.
Ich habe ein Script in VBS geschrieben, das ich zur Anlage von Domänennutzern verwende. Dieses legt den neben den ADS-Nutzerinformationen auf einem Server einen Ordner je Nutzer an, gibt diesen frei und ordnet den Freigabeberechtigungen einen Nutzer (Bsp: gast) zu. Nun möchte ich Freigabe- sowie NTFS-Berechtigungen für diesen Nutzer setzen, wobei die Freigaberechte immer gleich "Ändern" sind. Ich nutze für die Freigaberechte folgenden Quelltext:
ACCESS_ALLOWED_ACE_TYPE = &H0
FILE_SHARE_CHANGE_ACCESS = &H010116
SE_DACL_PRESENT = &H4
strComputer = "."
strShareName = "FreigabeName"
strUserName = "gast"
strDomainName = "DOM"
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objSecuritySettings = objWMIService.Get("Win32_LogicalShareSecuritySetting='" & strShareName & "'")
Set objTrustee = objWMIService.Get("Win32_Trustee").SpawnInstance_()
Set colAccounts = objWMIService.ExecQuery("SELECT * FROM Win32_Account WHERE Name = '" & strUserName & "'")
For Each objAccount In colAccounts
objTrustee.SIDString = objAccount.SID
Next
Set objSID = objWMIService.Get("Win32_SID.SID='" & objTrustee.SIDString & "'")
objTrustee.SID = objSID.BinaryRepresentation
objTrustee.SIDLength = objSID.SIDLength
objTrustee.Domain = strDomainName
objTrustee.Name = strUserName
Set objACE = objWMIService.Get("Win32_ACE").SpawnInstance_()
objACE.Trustee = objTrustee
objACE.AceType = ACCESS_ALLOWED_ACE_TYPE
objACE.AccessMask = FILE_SHARE_CHANGE_ACCESS
objACE.AceFlags = 0
Set objSD = objWMIService.Get("Win32_SecurityDescriptor").SpawnInstance_()
objSD.Owner = objTrustee
objSD.DACL = Array(objACE)
objSD.ControlFlags = SE_DACL_PRESENT
objSecuritySettings.SetSecurityDescriptor(objSD)
Das Problem ist nun, dass die Zuordnung von Leserechten und von Vollzugriff reibunglos funktioniert. Das Festlegen von Änderungsrechten hingegen funktioniert nicht. Hat jemand eine Idee, woran dies liegen könnte? Danke im Voraus!!
Ich habe ein Script in VBS geschrieben, das ich zur Anlage von Domänennutzern verwende. Dieses legt den neben den ADS-Nutzerinformationen auf einem Server einen Ordner je Nutzer an, gibt diesen frei und ordnet den Freigabeberechtigungen einen Nutzer (Bsp: gast) zu. Nun möchte ich Freigabe- sowie NTFS-Berechtigungen für diesen Nutzer setzen, wobei die Freigaberechte immer gleich "Ändern" sind. Ich nutze für die Freigaberechte folgenden Quelltext:
ACCESS_ALLOWED_ACE_TYPE = &H0
FILE_SHARE_CHANGE_ACCESS = &H010116
SE_DACL_PRESENT = &H4
strComputer = "."
strShareName = "FreigabeName"
strUserName = "gast"
strDomainName = "DOM"
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objSecuritySettings = objWMIService.Get("Win32_LogicalShareSecuritySetting='" & strShareName & "'")
Set objTrustee = objWMIService.Get("Win32_Trustee").SpawnInstance_()
Set colAccounts = objWMIService.ExecQuery("SELECT * FROM Win32_Account WHERE Name = '" & strUserName & "'")
For Each objAccount In colAccounts
objTrustee.SIDString = objAccount.SID
Next
Set objSID = objWMIService.Get("Win32_SID.SID='" & objTrustee.SIDString & "'")
objTrustee.SID = objSID.BinaryRepresentation
objTrustee.SIDLength = objSID.SIDLength
objTrustee.Domain = strDomainName
objTrustee.Name = strUserName
Set objACE = objWMIService.Get("Win32_ACE").SpawnInstance_()
objACE.Trustee = objTrustee
objACE.AceType = ACCESS_ALLOWED_ACE_TYPE
objACE.AccessMask = FILE_SHARE_CHANGE_ACCESS
objACE.AceFlags = 0
Set objSD = objWMIService.Get("Win32_SecurityDescriptor").SpawnInstance_()
objSD.Owner = objTrustee
objSD.DACL = Array(objACE)
objSD.ControlFlags = SE_DACL_PRESENT
objSecuritySettings.SetSecurityDescriptor(objSD)
Das Problem ist nun, dass die Zuordnung von Leserechten und von Vollzugriff reibunglos funktioniert. Das Festlegen von Änderungsrechten hingegen funktioniert nicht. Hat jemand eine Idee, woran dies liegen könnte? Danke im Voraus!!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 114447
Url: https://administrator.de/contentid/114447
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
1 Kommentar