Freigeben über


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

Weitere Informationen

WMI-Systemklassen

__SystemSecurity

WMI-Sicherheitskonstanten

Win32_ACE

__SystemSecurity::SetSD

Security_Descriptor

Win32_SecurityDescriptor

Schützen von WMI-Namespaces