Condividi tramite


Costruzione di una stringa moniker

Il formato stringa del moniker è simile a quello di un percorso oggetto WMI standard. Per ulteriori informazioni, vedere Requisiti per il percorso degli oggetti WMI.

Un moniker ha le parti seguenti:

  • Prefisso WinMgmts: (obbligatorio). Il prefisso indica a Windows Script Host (WSH) che il codice seguente usa gli oggetti API di script .
  • Componente delle impostazioni di sicurezza (facoltativo)
  • Componente di percorso dell'oggetto WMI (facoltativo)

Non è possibile specificare una password in una stringa di moniker WMI. Se è necessario modificare la password (parametro strPassword) o il tipo di autenticazione (parametro strAuthority) durante la connessione a WMI, chiamare SWbemLocator.ConnectServer. Tenere presente che è possibile specificare solo la password e l'autorità nelle connessioni ai computer remoti. Se si tenta di impostarli in uno script in esecuzione nel computer locale, viene generato un errore. Per ulteriori informazioni su quando vengono utilizzate le impostazioni di sicurezza e i componenti del percorso dell'oggetto, vedere le impostazioni di sicurezza WMI.

Il seguente moniker specifica l'oggetto SWbemServices che rappresenta lo spazio dei nomi root\default, con l'impersonificazione attivata e il privilegio wbemPrivilegeDebug (SeDebugPrivilege) abilitato, mentre il privilegio wbemPrivilegeSecurity (SeSecurityPrivilege) è disabilitato.

"winmgmts:{impersonationLevel=impersonate," & "(debug,!security)}!root\default"

Nota

Tutti i valori letterali stringa non fanno distinzione tra maiuscole e minuscole.

Il prefisso "!" su un privilegio indica che il privilegio deve essere disabilitato; l'omissione di questo prefisso implica che il privilegio deve essere abilitato.

Il prefisso "!" viene usato nel nome del computer o nello spazio dei nomi quando le impostazioni di sicurezza vengono specificate tra parentesi quadre prima del nome o dello spazio dei nomi del computer.

 

Quando si specifica il percorso dell'oggetto, sono consentite le assegnazioni predefinite seguenti:

  • Il nome del computer può essere omesso dal percorso dell'oggetto, nel qual caso si presuppone il nome del computer locale.

  • Lo spazio dei nomi può essere omesso dal percorso dell'oggetto, nel qual caso si presuppone lo spazio dei nomi predefinito.

    Questo valore è determinato dal valore della chiave del Registro di sistema HKEY_LOCAL_MACHINE\Software\Microsoft\WBEM\Scripting\spazio dei nomi predefinito, il valore predefinito è "Root\CIMv2".

  • È inoltre possibile specificare una classe o un'istanza, nel qual caso l'oggetto restituito è un oggetto WMI anziché un oggetto services.

Nota

Se si specifica una classe o un'istanza, non è possibile omettere lo spazio dei nomi quando si specifica il nome del computer.

 

Per un riferimento alle Costanti di privilegio usate nella stringa moniker di WMI, consultare le Costanti di privilegioe i descrittori "Nome breve del scripting".

Stringhe moniker valide

Negli esempi seguenti vengono visualizzate stringhe di moniker valide.

Il moniker seguente identifica lo spazio dei nomi predefinito nel computer locale. Viene restituito un oggetto SWbemServices.

WinMgmts:

Il moniker seguente identifica lo spazio dei nomi predefinito nel computer myServer. Viene restituito un oggetto SWbemServices.

"WinMgmts://myServer"

Il seguente moniker identifica il namespace root\cimv2 sul computer myServer. Viene restituito un oggetto SWbemServices.

"WinMgmts://myServer/root/cimv2"

Il moniker seguente identifica lo spazio dei nomi root\cimv2 nel server locale. Viene restituito un oggetto SWbemServices .

"WinMgmts:root/cimv2"

Il moniker seguente identifica la classe Win32_LogicalDisk nello spazio dei nomi root\cimv2 nel server myServer. Viene restituito un oggettoSWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" _
    & "!//myServer/root/cimv2:Win32_LogicalDisk"

Il moniker seguente identifica la classe Win32_LogicalDisk nello spazio dei nomi root\cimv2 nel server locale. Viene restituito un oggettoSWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" & "!root/cimv2:Win32_LogicalDisk"

Il moniker seguente identifica la classe Win32_LogicalDisk nello spazio dei nomi predefinito nel server locale. Viene restituito un oggettoSWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" & "!Win32_LogicalDisk"

Il seguente identificatore identifica l'istanza di Win32_LogicalDisk corrispondente all'unità C: nel namespace di scripting predefinito sul server locale. Viene restituito un oggettoSWbemObject. Lo spazio dei nomi predefinito per lo scripting è determinato dall'impostazione di configurazione dello spazio dei nomi predefinito come specificato nel Controllo WMI. Per ulteriori informazioni, consultare Configurazione della sicurezza dello spazio dei nomi utilizzando il controllo WMI.

"WinMgmts::Win32_LogicalDisk='C:'"

Il moniker seguente identifica l'istanza di Win32_LogicalDisk corrispondente all'unità C: nello spazio dei nomi root\cimv2 nel server myServer. Viene restituito un oggettoSWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" & "!//myServer/root/cimv2:Win32_LogicalDisk="C:""

Il moniker seguente identifica l'istanza di Win32_LogicalDisk corrispondente all'unità C: nello spazio dei nomi root\cimv2 nel server locale. Viene restituito un oggettoSWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" & "!root/cimv2:Win32_LogicalDisk="C:""

Il moniker seguente identifica l'istanza di Win32_LogicalDisk corrispondente all'unità C: nello spazio dei nomi predefinito nel server locale. Viene restituito un oggettoSWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" & "!Win32_LogicalDisk="C:""

Il moniker seguente imposta il livello di rappresentazione per rappresentare e imposta il privilegio SE_DEBUG.

"WinMgmts:{impersonationLevel=impersonate, (Debug)}"

Il moniker seguente imposta il livello di impersonificazione su impersonare e imposta il privilegio SE_DEBUG. Revoca anche il privilegio SE_SHUTDOWN.

"WinMgmts:{impersonate,(Debug,!Shutdown)}"

Il moniker seguente recupera le descrizioni localizzate in inglese americano per la classe myclass dallo spazio dei nomi root\wmi.

"WinMgmts:[locale=ms_409]!root/wmi:myclass"

Il moniker seguente richiede l'autenticazione Kerberos usando il principal mydomain\server.

"Winmgmts:{impersonationLevel=delegate," _
    & "authority=kerberos:mydomain\server}" _
    & "!//myserver/root/default:__cimomidentification=@"

Il moniker seguente richiede l'autenticazione NTLM usando il dominio mydomain.

"Winmgmts:{impersonationLevel=impersonate," & _
    "authority=ntlmdomain:mydomain} " & _
    "!//myserver/root/default:__cimomidentification=@

Nell'esempio di codice VBScript seguente viene illustrato come combinare i parametri di sicurezza e impostazioni locali in un moniker.

'*****************************************************************
'   Name    :  Moniker.vbs
'
'   Purpose :  This example shows how to set various 
'              parameters in a moniker. 
'****************************************************************

Set myobj = GetObject("WINMGMTS:" _
            & "{impersonationLevel=impersonate," _
            & "authenticationLevel=pktPrivacy," _
            & "authority=ntlmdomain:mydomain," _
            & "(Debug,!Shutdown)}" _
            & "[locale=ms_409]" _
            & "!\\User1\ROOT\CIMV2:Win32_LogicalDisk=""C:""")

wscript.echo "File system = " & myobj.filesystem

Nota

Sebbene i moniker forniscano un accesso più diretto agli oggetti, in determinate circostanze, l'uso ripetuto dei moniker può essere meno efficiente del codice equivalente che si connette in modo esplicito a WMI. Se le prestazioni dell'applicazione sono una considerazione, prendere in considerazione l'uso dei meccanismi alternativi.

Non è possibile utilizzare la funzione GetObject fornita da VBScript per aggiornare o impostare i dati durante l'esecuzione di script incorporati in una pagina HTML, perché Microsoft Internet Explorer nega l'uso di questa chiamata per motivi di sicurezza.