Oggetto SWbemLocator

È possibile utilizzare i metodi dell'oggetto SWbemLocator per ottenere un oggetto SWbemServices che rappresenta una connessione a uno spazio dei nomi in un computer locale o in un computer host remoto. È quindi possibile utilizzare i metodi dell'oggetto SWbemServices per accedere a WMI. Questo oggetto può essere creato dalla chiamata CreateObject VBScript.

Membri

L'oggetto SWbemLocator dispone di questi tipi di membri:

Metodi

L'oggetto SWbemLocator dispone di questi metodi.

Metodo Descrizione
ConnectServer Si connette a WMI nel computer specificato.

Proprietà

L'oggetto SWbemLocator ha queste proprietà.

Proprietà Tipo di accesso Descrizione
Sicurezza_
Sola lettura
Usato per leggere o modificare le impostazioni di sicurezza.

Commenti

Nella parte superiore del modello a oggetti della libreria di scripting WMI è presente l'oggetto SWbemLocator. SWbemLocator viene usato per stabilire una connessione autenticata a uno spazio dei nomi WMI, in quanto la funzione GetObject VBScript e il moniker WMI "winmgmts:" vengono usati per stabilire una connessione autenticata a WMI. Tuttavia, SWbemLocator è progettato per gestire due scenari di scripting specifici che non possono essere eseguiti usando GetObject e il moniker WMI. Se necessario, è necessario usare SWbemLocator:

  • Specificare le credenziali utente e password per connettersi a WMI in un computer remoto. Il moniker WMI usato con la funzione GetObject non include un meccanismo per specificare le credenziali. La maggior parte delle attività WMI (incluse tutte quelle eseguite nei computer remoti) richiede diritti di amministratore. Se in genere si accede usando un account utente normale anziché un account amministratore, non sarà possibile eseguire la maggior parte delle attività WMI, a meno che non si esegua lo script con credenziali alternative.
  • Connettersi a WMI se si esegue uno script WMI dall'interno di una pagina Web. Non è possibile utilizzare la funzione GetObject durante l'esecuzione di script incorporati in una pagina HTML perché Internet Explorer non consente l'uso di GetObject per motivi di sicurezza.

Inoltre, è possibile usare SWbemLocator per connettersi a WMI se si trova la stringa di connessione WMI usata con GetObject confusione o difficile.

Si usa CreateObject anziché GetObject per creare un riferimento a SWbemLocator. Per creare il riferimento, è necessario passare la funzione CreateObject all'identificatore programmatico SWbemLocator (ProgID) "WbemScripting.SWbemLocator", come illustrato nella riga 2 nell'esempio di script seguente. Dopo aver ottenuto un riferimento a un oggetto SWbemLocator, chiamare il metodo ConnectServer per connettersi a WMI e ottenere un riferimento a un oggetto SWbemServices. Questa operazione viene illustrata nella riga 3 dello script seguente.

strComputer = "."
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
Set colSWbemObjectSet = objSWbemServices.InstancesOf("Win32_Service")
For Each objSWbemObject In colSWbemObjectSet
    Wscript.Echo "Name: " & objSWbemObject.Name
Next

Per eseguire uno script con credenziali alternative, includere il nome utente e la password come parametri aggiuntivi passati a ConnectServer. Ad esempio, questo script viene eseguito con le credenziali di un utente denominato kenmyer, con la password homerj.

strComputer = "atl-dc-01"
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer _
    (strComputer, "root\cimv2", "kenmyer", "homerj")
Set colSWbemObjectSet = objSWbemServices.InstancesOf("Win32_Service")
For Each objSWbemObject In colSWbemObjectSet
    Wscript.Echo "Name: " & objSWbemObject.Name
Next

È anche possibile usare il formato Domain\User Name per specificare un nome utente. Ad esempio:

" fabrikam\kenmyer"

Esempi

Nell'esempio di PowerShell seguente viene usato SWbemLocator per connettersi a un server.

$NameSpace = 'root\ccm'
$ComputerName = 'sccm.company.com'
$WbemLocator = New-Object -ComObject "WbemScripting.SWbemLocator"
$WbemServices = $WbemLocator.ConnectServer($ComputerName, $Namespace)
$WbemClasses = $WbemServices.SubclassesOf()
$WbemClasses

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista
Server minimo supportato
Windows Server 2008
Intestazione
Wbemdisp.h
Libreria dei tipi
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemLocator
IID
IID_ISWbemLocator

Vedi anche

Scripting di oggetti API