ARGOMENTO
about_WMI_cmdlets
DESCRIZIONE BREVE
Fornisce informazioni complementari su Strumentazione gestione
Windows (WMI) e Windows PowerShell.
DESCRIZIONE DETTAGLIATA
In questo argomento vengono fornite informazioni sulla tecnologia
WMI, sui cmdlet WMI per Windows PowerShell, sulla comunicazione
remota basata su WMI, sugli acceleratori WMI e sulla risoluzione
dei problemi relativi a WMI. Vengono inoltre forniti
collegamenti a ulteriori informazioni su WMI.
Informazioni su WMI
Strumentazione gestione Windows (WMI) è l'implementazione di
Microsoft di Web-Based Enterprise Management (WBEM),
un'iniziativa di settore per lo sviluppo di una tecnologia
standard per l'accesso alle informazioni di gestione in un
ambiente aziendale. WMI utilizza lo standard di settore Common
Information Model (CIM) per rappresentare sistemi,
applicazioni, reti, dispositivi e altri componenti gestiti.
CIM è sviluppato e gestito da Distributed Management Task
Force (DMTF). È possibile utilizzare WMI per gestire computer
locali e remoti. Ad esempio, è possibile utilizzare WMI per:
-- Avviare un processo in un computer remoto.
-- Riavviare un computer in modalità remota.
-- Ottenere un elenco delle applicazioni installate in un
computer locale o remoto.
-- Eseguire query sui registri eventi di Windows in un
computer locale o remoto.
Cmdlet WMI per Windows PowerShell
Windows PowerShell implementa la funzionalità WMI tramite un set
di cmdlet disponibili in Windows PowerShell per impostazione
predefinita. È possibile utilizzare questi cmdlet per
completare le attività end-to-end necessarie per la gestione
dei computer locali e remoti.
Sono inclusi i seguenti cmdlet WMI.
Cmdlet Descrizione
------------------ ----------------------------------------------
Get-WmiObject Ottiene le istanze delle classi WMI o
informazioni relative alle classi disponibili.
Invoke-WmiMethod Chiama metodi WMI.
Register-WmiEvent Sottoscrive un evento WMI.
Remove-WmiObject Elimina classi e istanze WMI.
Set-WmiInstance Crea o modifica le istanze di classi WMI.
Comandi di esempio
Con il comando seguente vengono visualizzate informazioni BIOS
per il computer locale.
C:\PS> get-wmiobject win32_bios | format-list *
Con il comando seguente vengono visualizzate informazioni
relative al servizio Gestione remota Windows per tre computer remoti.
C:\PS> get-wmiobject -query "select * from win32_service
where name='WinRM'" -computername server01, server01, server03
Con il comando seguente più complesso vengono terminate tutte le
istanze di un programma.
C:\PS> notepad.exe
C:\PS> $np = get-wmiobject -query "select * from win32_process
where name='notepad.exe'"
C:\PS> $np | remove-wmiobject
Comunicazione remota basata su WMI
Sebbene sia utile poter gestire un sistema locale tramite WMI,
sono le funzionalità di comunicazione remota che rendono WMI
un potente strumento di amministrazione. WMI utilizza il
Distributed Component Object Model (DCOM) di Microsoft per
connettersi ai sistemi e gestirli. Potrebbe essere necessario
configurare alcuni sistemi per consentire le connessioni DCOM.
Le impostazioni del firewall e le autorizzazioni DCOM bloccate
possono ostacolare la gestione remota dei sistemi tramite WMI.
Acceleratori di tipo WMI
Windows PowerShell include acceleratori di tipo WMI
(collegamenti) che consentono un accesso più diretto agli
oggetti WMI rispetto a un approccio con acceleratore non di tipo.
In WMI, sono supportati i seguenti acceleratori di tipo:
[WMISEARCHER] - Collegamento per la ricerca di oggetti WMI.
[WMICLASS] - Collegamento per l'accesso alle proprietà e ai
metodi statici di una classe.
[WMI] - Collegamento per l'acquisizione di una sola istanza
di una classe.
[WMISEARCHER] è un acceleratore di tipo per ManagementObjectSearcher.
Può accettare un costruttore di stringhe per creare una funzione
di ricerca su cui è possibile eseguire un comando GET().
Ad esempio:
PS> $s = [WmiSearcher]'Select * from Win32_Process where Handlecount > 1000'
PS> $s.Get() |sort handlecount |ft handlecount,__path,name -auto
handlecount __PATH name
----------- ------ ----
1105 \\SERVER01\root\cimv2:Win32_Process.Handle="3724" powershell...
1132 \\SERVER01\root\cimv2:Win32_Process.Handle="1388" winlogon.exe
1495 \\SERVER01\root\cimv2:Win32_Process.Handle="2852" iexplore.exe
1699 \\SERVER01\root\cimv2:Win32_Process.Handle="1204" OUTLOOK.EXE
1719 \\SERVER01\root\cimv2:Win32_Process.Handle="1912" iexplore.exe
2579 \\SERVER01\root\cimv2:Win32_Process.Handle="1768" svchost.exe
[WMICLASS] è un acceleratore di tipo per ManagementClass.
Dispone di un costruttore di stringhe che accetta un percorso WMI locale o
assoluto di una classe WMI e restituisce un oggetto associato a tale classe.
Ad esempio:
PS> $c = [WMICLASS]"root\cimv2:WIn32_Process"
PS> $c |fl *
Name : Win32_Process
__GENUS : 1
__CLASS : Win32_Process
__SUPERCLASS : CIM_Process
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_Process
__PROPERTY_COUNT : 45
__DERIVATION : {CIM_Process, CIM_LogicalElement, CIM_ManagedSystemElement}
__SERVER : SERVER01
__NAMESPACE : ROOT\cimv2
__PATH : \\SERVER01\ROOT\cimv2:Win32_Process
[WMI] è un acceleratore di tipo per ManagementObject. Dispone di
un costruttore di stringhe che accetta un percorso WMI locale
o assoluto di un'istanza WMI e restituisce un oggetto
associato a tale istanza.
Ad esempio:
PS> $p = [WMI]'\\SERVER01\root\cimv2:Win32_Process.Handle="1204"'
PS> $p.Name
OUTLOOK.EXE
Risoluzione dei problemi relativi a WMI
Di seguito vengono riportati i problemi più comuni che si
possono verificare quando si tenta la connessione a un computer remoto.
Problema 1: il computer remoto non è online.
Se un computer è offline, non sarà possibile stabilire una connessione
tramite WMI. È possibile che venga visualizzato il messaggio di errore seguente:
"Il computer server remoto non esiste o non è disponible"
Se viene visualizzato questo messaggio di errore, verificare che
il computer sia online. Tentare di effettuare il ping del computer remoto.
Problema 2: non si dispone dei diritti di amministratore locale
per il computer remoto.
Per utilizzare WMI in modalità remota, è necessario disporre dei
diritti di amministratore locale per il computer remoto. In
caso contrario, l'accesso al computer sarà negato.
Per verificare la sicurezza dello spazio dei nomi:
a. Fare clic sul pulsante Start, fare clic con il pulsante
destro del mouse su Risorse del computer e scegliere Gestione.
b. In Gestione computer, espandere Servizi e applicazioni,
fare clic con il pulsante destro del mouse su Controllo WMI,
quindi scegliere Proprietà.
c. Nella finestra di dialogo Proprietà - Controllo WMI, fare
clic sulla scheda Sicurezza.
Problema 3: un firewall blocca l'accesso al computer remoto.
WMI utilizza i protocolli DCOM (Distributed COM) e RPC (Remote
Procedure Call) per attraversare la rete. Per impostazione
predefinita, molti firewall bloccano il traffico DCOM e RPC.
Se il firewall in uso blocca questi protocolli, la connessione avrà
esito negativo. Ad esempio, Windows Firewall in
Microsoft Windows XP Service Pack 2 è configurato per bloccare
automaticamente tutto il traffico di rete non richiesto, compreso
il traffico DCOM e WMI. Nella configurazione predefinita,
Windows Firewall rifiuta una richiesta WMI in ingresso e viene visualizzato
il messaggio di errore seguente:
"Il computer server remoto non esiste o non è disponible"
Ulteriori informazioni su WMI
Per ulteriori informazioni su WMI, vedere gli argomenti seguenti
in MSDN (Microsoft Developer Network) Library.
"Informazioni su WMI"
https://go.microsoft.com/fwlink/?LinkId=142212
"Risoluzione dei problemi relativi a WMI"
https://go.microsoft.com/fwlink/?LinkId=142213
Vedere inoltre l'argomento relativo ai segreti di Strumentazione
gestione Windows, con informazioni sulla risoluzione dei
problemi e suggerimenti, disponibile in Microsoft TechNet Script Center:
https://go.microsoft.com/fwlink/?LinkId=142214
VEDERE ANCHE
Versione online: https://go.microsoft.com/fwlink/?LinkId=142219
Get-WmiObject
Invoke-WmiMethod
Register-WmiEvent
Remove-WmiObject
Set-WmiInstance