Ich verwende VbScript zum Abrufen des Sicherheitsdeskriptors eines Win32_Service. Ich bin mit dem folgenden Code:Abrufen der Win32_Service-Sicherheitsbeschreibung mit VBScript
SE_DACL_PRESENT = &h4
ACCESS_ALLOWED_ACE_TYPE = &h0
ACCESS_DENIED_ACE_TYPE = &h1
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate, (Security)}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Service")
For Each objPrinter in colInstalledPrinters
Wscript.Echo "Name: " & objPrinter.Name
' Get security descriptor for printer
Return = objPrinter.GetSecurityDescriptor(objSD)
If (return <> 0) Then
WScript.Echo "Could not get security descriptor: " & Return
wscript.Quit Return
End If
' Extract the security descriptor flags
intControlFlags = objSD.ControlFlags
If intControlFlags AND SE_DACL_PRESENT Then
' Get the ACE entries from security descriptor
colACEs = objSD.DACL
For Each objACE in colACEs
' Get all the trustees and determine which have access to printer
WScript.Echo objACE.Trustee.Domain & "\" & objACE.Trustee.Name
If objACE.AceType = ACCESS_ALLOWED_ACE_TYPE Then
WScript.Echo vbTab & "User has access to printer"
ElseIf objACE.AceType = ACCESS_DENIED_ACE_TYPE Then
WScript.Echo vbTab & "User does not have access to the printer"
End If
Next
Else
WScript.Echo "No DACL found in security descriptor"
End If
Next
aber jedes Mal wenn ich es laufen erhalte ich die Nachricht, die den resultierenden Code sagte, ist -2147023582 etwas, anstatt die Fehlercodes definierten in the manual.
Wer hat irgendwelche Ideen? Ich benutze Windows 7 Professional 64-Bit.
Die Nummer ist -2147023582. Könnte es sich um ein 64-Bit-Problem handeln? sieht das nicht wie eine Ganzzahl ohne Vorzeichen aus, die als Ganzzahl mit Vorzeichen gespeichert ist?
(PS: nichts gegen die Variablennamen ... Ich habe ein Beispiel von msdn gerippt).
Vielen Dank. Aber sollte das nicht Returncode 2 oder 9 laut Handbuch sein? Der Wert -2147023582 ist in der Tabelle nicht definiert. – agnsaft
@invictus: Anscheinend nicht unbedingt. Dies ist ein generischer Windows-Systemfehler. – Helen
Sie hatten Recht. Weißt du, ob es möglich ist, das VBScript durchzusetzen, um Administratorrechte anzufordern und UAC auszulösen? – agnsaft