GetSD-Methode der __SystemSecurity-Klasse
Die Methode GetSD ruft die Sicherheitsbeschreibung für den Namespace ab, mit dem der Benutzer verbunden ist. Diese Methode gibt eine Sicherheitsbeschreibung im binären Bytearrayformat zurück. Wenn Sie ein Skript schreiben, verwenden Sie die GetSecurityDescriptor-Methode. Weitere Informationen finden Sie unter Schützen von WMI-Namespaces und Ändern der Zugriffssicherheit für sicherungsfähige Objekte.
Der Benutzer muss über die Berechtigung READ_CONTROL verfügen. Standardmäßig verfügen Administratoren über diese Berechtigung. Der einzige Teil der Sicherheitsbeschreibung, der tatsächlich verwendet wird, ist die besitzerverwaltete Zugriffssteuerungsliste (DACL). Die DACL kann sowohl geerbte als auch nicht geerbte ACEs enthalten. Sowohl „ACEs verweigern“ als auch „ACEs zulassen“ ist zulässig.
Wenn Sie in C++ programmieren, können Sie die binäre Sicherheitsbeschreibung mithilfe von SDDL und den Konvertierungsmethoden ConvertSecurityDescriptorToStringSecurityDescriptor und ConvertStringSecurityDescriptorToSecurityDescriptor bearbeiten.
Syntax
HRESULT GetSD(
[out] uint8 SD[]
);
Parameter
-
SD [out]
-
Sicherheitsbeschreibung im binären Bytearrayformat.
Rückgabewert
Diese Methode gibt ein HRESULT zurück, das den Status des Methodenaufrufs angibt. In der folgenden Liste sind die Rückgabewerte aufgeführt, die für GetSD von Bedeutung sind. Für Skripterstellung und Visual Basic-Anwendungen kann das Ergebnis aus OutParameters.ReturnValue abgerufen werden. Weitere Informationen finden Sie unter Erstellen von InParameters-Objekten und Analysieren von OutParameters-Objekten.
-
S_OK
-
Methode wurde erfolgreich ausgeführt.
-
WBEM_E_ACCESS_DENIED
-
Aufrufer verfügt nicht über ausreichende Rechte zum Aufrufen dieser Methode.
-
WBEM_E_METHOD_DISABLED
-
Es wurde versucht, diese Methode auf einem nicht unterstützten System auszuführen.
Bemerkungen
Weitere Informationen zum programmgesteuerten oder manuellen Ändern der Namespacesicherheit finden Sie unter Schützen von WMI-Namespaces.
Beispiele
Das folgende Skript zeigt, wie Sie mit GetSD die aktuellen Sicherheitsbeschreibung für den Namespace „Root\Cimv2“ abrufen und in das unter DisplaySD gezeigte Bytearray ändern.
Set objServices = GetObject("winmgmts:root\cimv2")
Set CimV2 = objServices.Get("__SystemSecurity=@")
ReturnValue = Cimv2.GetSD(arrSD)
If Err <> 0 Then
WScript.Echo "Method returned error " & ReturnValue
End If
DisplaySD = "SD = {"
For I = Lbound(arrSD) To Ubound(arrSD)
DisplaySD = DisplaySD & arrSD(I)
If I <> Ubound(arrSD) Then
DisplaySD = DisplaySD & ","
End If
Next
DisplaySD = DisplaySD & "}"
WScript.Echo DisplaySD
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows Vista |
Unterstützte Mindestversion (Server) |
Windows Server 2008 |
Namespace |
Alle WMI-Namespaces |