about_WMI_Cmdlets
Aggiornamento: maggio 2014
Si applica a: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0
Inserire l'introduzione qui.
ARGOMENTO
about_WMI_cmdlets
DESCRIZIONE BREVE
Fornisce informazioni complementari su Strumentazione gestione Windows (WMI) e Windows PowerShell®.
DESCRIZIONE LUNGA
Questo argomento fornisce informazioni sulla tecnologia WMI, sui cmdlet WMI per Windows PowerShell, sulla comunicazione remota basata su WMI, sugli acceleratori WMI e sulla risoluzione dei problemi WMI. Questa argomento fornisce anche collegamenti ad altre informazioni su WMI.
INFORMAZIONI SU WMI
Strumentazione gestione Windows (WMI) è l'implementazione Microsoft di Web-Based Enterprise Management (WBEM), che è un'iniziativa di settore per sviluppare una tecnologia standard per accedere alle informazioni di gestione in un ambiente aziendale. WMI usa lo standard di settore CIM (Common Information Model) per rappresentare sistemi, applicazioni, reti, dispositivi e altri componenti gestiti. CIM è sviluppato e gestito da Distributed Management Task Force (DMTF). È possibile usare WMI per gestire computer remoti e locali. Ad esempio, è possibile usare WMI per effettuare le operazioni seguenti:
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.
I CMDLET WMI PER WINDOWS POWERSHELL
Windows PowerShell implementa la funzionalità WMI attraverso un set di cmdlet che sono disponibili in Windows PowerShell per impostazione predefinita. È possibile usare questi cmdlet per completare le attività end-to-end necessarie per gestire computer locali e remoti.
Sono inclusi i cmdlet WMI seguenti.
Cmdlet Description
------------------ ----------------------------------------------
Get-WmiObject Gets instances of WMI classes or information
about the available classes.
Invoke-WmiMethod Calls WMI methods.
Register-WmiEvent Subscribes to a WMI event.
Remove-WmiObject Deletes WMI classes and instances.
Set-WmiInstance Creates or modifies instances of WMI classes.
COMANDI DI ESEMPIO
Il comando seguente visualizza le informazioni BIOS per il computer locale.
C:\PS> get-wmiobject win32_bios | format-list *
Il comando seguente visualizza le informazioni sul servizio WinRM per tre computer remoti.
C:\PS> get-wmiobject -query "select * from win32_service where name='WinRM'" -computername server01, server01, server03
Il comando seguente più complesso chiude 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
Se è utile poter gestire un sistema locale con WMI, d'altra parte le funzionalità di comunicazione remota rendono WMI un potente strumento di gestione di amministrazione. WMI usa Distributed Component Object Model (DCOM) di Microsoft per connettere e gestire sistemi. Potrebbe essere necessario configurare alcuni sistemi per consentire connessioni DCOM. Le impostazioni del firewall e le autorizzazioni DCOM bloccate possono bloccare la capacità di WMI di gestire sistemi in modalità remota.
ACCELERATORE DI TIPO WMI
Windows PowerShell include acceleratori di tipo WMI. Questi acceleratori di tipo WMI (collegamenti) consentono un accesso più diretto a oggetti WMI rispetto a quello che consentirebbe un approccio non di tipo acceleratore.
Gli acceleratori di tipo seguenti sono supportati con WMI:
[WMISEARCHER]
Un collegamento per la ricerca di oggetti WMI.
[WMICLASS]
Un collegamento per accedere alle proprietà e ai metodi statici di una classe.
[WMI]
Un collegamento per ottenere una singola istanza di una classe.
[WMISEARCHER]
Si tratta di un tipo di acceleratore per un ManagementObjectSearcher. Può richiedere un costruttore di stringa per creare un'utilità di ricerca su cui eseguire un'operazione 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. Ha un costruttore di stringhe che accetta un percorso WMI locale o assoluto di una classe WMI e restituisce un oggetto associato a questa 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. Ha un costruttore di stringhe che accetta un percorso WMI locale o assoluto di un'istanza WMI e restituisce un oggetto associato a questa istanza.
Ad esempio:
PS> $p = [WMI]'\\SERVER01\root\cimv2:Win32_Process.Handle="1204"'
PS> $p.Name
OUTLOOK.EXE
RISOLUZIONE DEI PROBLEMI DI WMI
I problemi seguenti sono i problemi più comuni che potrebbero verificarsi durante i tentativi di connessione a un computer remoto.
Problema 1:
Il computer remoto non è online.
Se un computer è offline, non sarà possibile connettersi usando WMI. Si potrebbe ricevere il messaggio di errore seguente:
"Remote server machine does not exist or is unavailable"
Se si riceve questo messaggio di errore, verificare che il computer sia online. Cercare di effettuare il ping del computer remoto.
Problema 2:
Non si hanno i diritti di amministratore locale nel computer remoto.
Per usare WMI in modalità remota, si devono avere i diritti di amministratore locale nel computer remoto. In caso contrario, l'accesso al computer verrà negato.
Per verificare la sicurezza dello spazio dei nomi:
a. Fare clic su Start, fare clic con il pulsante destro del mouse su Risorse del computer e quindi scegliere Gestisci.
b. In Gestione computer espandere Servizi e applicazioni, fare clic con il pulsante destro del mouse su Controllo WMI e quindi scegliere Proprietà.
c. Nella finestra di dialogo Proprietà del controllo WMI selezionare la scheda Sicurezza.
Problema 3:
Un firewall sta bloccando l'accesso al computer remoto.
WMI usa 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 sta bloccando 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, inclusi DCOM e WMI. Nella relativa configurazione predefinita, Windows Firewall rifiuta una richiesta WMI in ingresso e si riceve il messaggio di errore seguente:
"Remote server machine does not exist or is unavailable"
Altre informazioni su WMI
Per altre 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 di WMI"
https://go.microsoft.com/fwlink/?LinkId=142213
Vedere anche "Segreti della Strumentazione gestione Windows - Suggerimenti e risoluzione dei problemi" 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