Metodo GetSD della classe __SystemSecurity

Il metodo GetSD ottiene il descrittore di sicurezza per lo spazio dei nomi a cui è connesso l'utente. Questo metodo restituisce un descrittore di sicurezza in formato matrice di byte binari. Se si scrive uno script, usare il metodo GetSecurityDescriptor . Per altre informazioni, vedere Protezione degli spazi dei nomi WMI e Modifica della sicurezza degli accessi in oggetti a protezione diretta.

L'utente deve disporre dell'autorizzazione READ_CONTROL . Per impostazione predefinita, gli amministratori dispongono di tale autorizzazione. L'unica parte del descrittore di sicurezza effettivamente usata è l'elenco di controllo di accesso discrezionale (DACL). L'elenco DACL può contenere ACL ereditati e non ereditati. Sono consentiti sia gli ACL negati che gli ACL consentiti.

Se si esegue la programmazione in C++, è possibile modificare il descrittore di sicurezza binario usando SDDL e i metodi di conversione ConvertSecurityDescriptorToStringSecurityDescriptor e ConvertStringSecurityDescriptorToSecurityDescriptor.

Sintassi

HRESULT GetSD(
  [out] uint8 SD[]
);

Parametri

SD [out]

Descrittore di sicurezza in formato matrice di byte binario.

Valore restituito

Questo metodo restituisce un valore HRESULT che indica lo stato della chiamata al metodo. L'elenco seguente elenca i valori restituiti significativi per GetSD. Per le applicazioni di scripting e Visual Basic, il risultato può essere ottenuto da OutParameters.ReturnValue. Per altre informazioni, vedere Costruzione di oggetti InParameters e analisi di oggetti OutParameters.

S_OK

Metodo eseguito correttamente.

WBEM_E_ACCESS_DENIED

Il chiamante non dispone di diritti sufficienti per chiamare questo metodo.

WBEM_E_METHOD_DISABLED

Si è tentato di eseguire questo metodo in un sistema non supportato.

Commenti

Per altre informazioni sulla modifica della sicurezza dello spazio dei nomi a livello di codice o manualmente, vedere Protezione degli spazi dei nomi WMI.

Esempio

Lo script seguente illustra come usare GetSD per ottenere il descrittore di sicurezza corrente per lo spazio dei nomi Root\Cimv2 e modificarlo nella matrice di byte illustrata in DisplaySD.

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

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista
Server minimo supportato
Windows Server 2008
Spazio dei nomi
Tutti gli spazi dei nomi WMI

Vedi anche

Classi di sistema WMI

__SystemSecurity

Costanti di sicurezza WMI

Win32_ACE

__SystemSecurity::SetSD

Security_Descriptor

Win32_SecurityDescriptor

Protezione degli spazi dei nomi WMI