www.IT-Visions.de-Diskussionsforen (Version 2.1)
(Diese Seite wurde noch nicht auf das neue Layout umgestellt!)


Diese Foren stehen den Lesern unserer Bücher und allen anderen registrieren Benutzern dieser Website zur Verfügung. Wir würden uns freuen, wenn viele Nutzer dieser Website hier nicht nur Fragen stellen, sondern auch die Fragen anderer Nutzer beantworten. Diese Foren sind ein ehrenamtlicher, nicht-kommerzieller, unmoderierter Community-Dienst von www.IT-Visions.de. Wenn Sie kommerzielle Unterstützung für .NET/Scripting/PowerShell suchen, schauen Sie bitte auf unser Support-Angebot und unsere Schulungsangebote für Scripting und Schulungsangebote für .NET.



Share Permission
Autor:  JuergenNeckerauer
E-mail:  Antworten bitte nur in das Forum!
Datum:  11.03.2005 14:26:36
Subject:  Share Permission
Bezug zum Buch:  Windows Sripting 4.Auflage
Message:  Hello,

in dem Buch Windows Scripting 4.Auflage beschreiben Sie auf Seite 672 das anlegen von Shares mit Berechtigung nur mit WMI möglich ist.

Ich will einen Share Remote anlegen mit den Berechtigungen für ´die Gruppe Administaroren "Full Control" und Everyone "Change".

Leider bekomme ich dies nicht hin, können Sie mir da weiter helfen?

Danke!

Sub WMI_CreateShare()
Dim objServ ' As SWbemServices
Dim objSDClass 'As SWbemObject
Dim oSD ' As SWbemObject
Dim oACE1 'As SWbemObject
Dim oACE2 ' As SWbemObject
Dim oACE3 ' As SWbemObject
Dim dacl ' As Variant ' Array!
Dim oFreigabe ' As SWbemObject
Dim objInParam ' As SWbemObject
Dim objOutParams ' As SWbemObject
Dim MakeTrustee

' --- AccessMasks für Freigaben
Const SHARE_READ = 1179817
Const SHARE_CHANGE = 1245462
Const SHARE_FULL = 2032127
Const SHARE_NONE = 1

' --- Bindung
Set objServ = GetObject("WINMGMTS:{impersonationLevel=impersonate,(Security)}!\\Server")
' ----- Erzeugung eines neuen SD
' --- Neue Instanz von Win32_SecurityDescriptor
Set objSDClass = objServ.Get("Win32_SecurityDescriptor")
Set oSD = objSDClass.SpawnInstance_()
oSD.Properties_.Item("ControlFlags") = 4
' --- ACEs erzeugen
Set oACE1 = MakeACE(SHARE_FULL, 3, 0, MakeTrustee("Server", "Administrators"))
Set oACE2 = MakeACE(SHARE_CHANGE, 3, 0, MakeTrustee("Server", "Everyone"))
' --- ACL zusammensetzen als Array von ACEs
dacl = Array(oACE1, oACE2)
' --- ACL an SD zuweisen
oSD.Properties_.Item("DACL") = dacl
' ----- Erzeugung der Freigabe
' --- Neue Instanz von WIN32_Share
Set oFreigabe = objServ.Get("Win32_Share")
Set objInParam = oFreigabe.Methods_("Create").InParameters.SpawnInstance_()
' --- Attribute setzen
objInParam.Properties_.Item("Name") = "Test"
objInParam.Properties_.Item("Path") = "C:\Test"
objInParam.Properties_.Item("Type") = 0
objInParam.Properties_.Item("Description") = "TestShare"
objInParam.Properties_.Item("Access") = oSD
objInParam.Properties_.Item("MaximumAllowed") = -1       'Standard ist 'max allowed'
' --- Anlegen der Freigabe
Set objOutParams = oFreigabe.ExecMethod_("Create", objInParam)
' --- Ergebnisauswertung
Select Case objOutParams.ReturnValue
    Case 0: say "Freigabe wurde angelegt!"
    Case 22: say "Fehler: Freigabe existierte schon!"
    Case Else: say "Fehler: #" & objOutParams.ReturnValue
End Select
End Sub

Antworten

  Zurück zum Forum



 Klassische Programmierung (Scripting, COM) -- Windows Scripting, VBScript, VB6, u.a.
 Share Permission von JuergenNeckerauer  am 11.3.2005 2:26:36 PM


www.IT-Visions.de - Dr. Holger Schwichtenberg / 1998-2019