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 |