Share via


about_WMI_Cmdlets

Descrizione breve

Fornisce informazioni complementari su Strumentazione gestione Windows (WMI) e Windows PowerShell.

Descrizione lunga

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 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 usare WMI per gestire computer locali e remoti. Ad esempio, è possibile usare WMI per eseguire le operazioni seguenti:

  • Avviare un processo in un computer remoto.
  • Riavviare un computer in remoto.
  • Ottenere un elenco delle applicazioni installate in un computer locale o remoto.
  • Eseguire una 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 usare questi cmdlet per completare le attività end-to-end necessarie per gestire computer locali e remoti.

Sono inclusi i cmdlet WMI seguenti.

Cmdlet Descrizione
Get-WmiObject Ottiene istanze di classi o informazioni WMI
sulle classi disponibili.
Invoke-WmiMethod Chiama i metodi di WMI.
Register-WmiEvent Sottoscrive un evento WMI.
Remove-WmiObject Elimina classi e istanze WMI.
Set-WmiInstance Crea o modifica istanze di classi WMI.

COMANDI DI ESEMPIO

Il comando seguente visualizza le informazioni del BIOS per il computer locale.

C:\PS> get-wmiobject win32_bios | format-list *

Il comando seguente visualizza informazioni sul servizio WinRM per tre computer remoti.

$wql = "select * from win32_service where name='WinRM'"
get-wmiobject -query $wql -computername server01, server01, server03

Il comando più complesso seguente esce da tutte le istanze di un programma.

C:\PS> notepad.exe
C:\PS> $wql = "select * from win32_process where name='notepad.exe'"
C:\PS> $np = get-wmiobject -query $wql
C:\PS> $np | remove-wmiobject

WMI-BA edizione Standard D REMOTING

Anche se la possibilità di gestire un sistema locale tramite WMI è utile, è la funzionalità di comunicazione remota che rendono WMI un potente strumento amministrativo. WMI usa Il DCOM (Distributed Component Object Model) di Microsoft per connettersi e gestire i sistemi. Potrebbe essere necessario configurare alcuni sistemi per consentire le connessioni DCOM. Le impostazioni del firewall e le autorizzazioni DCOM bloccate possono bloccare la capacità di WMI di gestire i sistemi in remoto.

ACCELERATORI DI TIPI WMI

Windows PowerShell include acceleratori di tipi WMI. Questi acceleratori di tipi WMI (tasti di scelta rapida) consentono un accesso più diretto a oggetti WMI rispetto a un approccio di acceleratore non di tipo consentito.

I tasti di scelta rapida di tipo seguenti sono supportati con WMI:

[WMI edizione Standard ARCHER] - Collegamento per la ricerca di oggetti WMI.

[WMICLASS] - Collegamento per l'accesso alle proprietà statiche e ai metodi di una classe.

[WMI] - Collegamento per ottenere una singola istanza di una classe.

[WMI edizione Standard ARCHER] è un acceleratore di tipi per managementObjectSearcher. Può essere necessario un costruttore di stringa per creare un searcher su cui è possibile eseguire get().

Ad esempio:

PS> $s = [WmiSearcher]'Select * from Win32_Process where Handlecount > 1000'
PS> $s.Get() |sort handlecount |ft handlecount,__path,name -auto

count  __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 tipi per ManagementClass. Dispone di un costruttore stringa che accetta un percorso WMI locale o assoluto a 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 tipi per ManagementObject. Dispone di un costruttore stringa che accetta un percorso WMI locale o assoluto a 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 WMI

I problemi seguenti sono i problemi più comuni che possono verificarsi quando si tenta di connettersi a un computer remoto.

Problema 1: il computer remoto non è online.

Se un computer è offline, non sarà possibile connettersi tramite WMI. Potrebbe essere visualizzato il messaggio di errore seguente:

Remote server machine does not exist or is unavailable

Se viene visualizzato questo messaggio di errore, verificare che il computer sia online. Provare a effettuare il ping del computer remoto.

Problema 2: non si dispone dei diritti di amministratore locale nel computer remoto.

Per usare WMI in remoto, è necessario disporre dei diritti di amministratore locale nel computer remoto. In caso contrario, l'accesso al computer verrà negato.

Per verificare la sicurezza dello spazio dei nomi:

  1. Fare clic su Start, fare clic con il pulsante destro del mouse su My Computer e quindi scegliere Gestisci.
  2. In Gestione computer espandere Servizi e applicazioni, fare clic con il pulsante destro del mouse su Controllo WMI e quindi scegliere Proprietà.
  3. Nella finestra di dialogo delle proprietà di Controllo WMI fare clic sulla scheda Sicurezza .

Problema 3: un firewall blocca 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 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, inclusi DCOM e WMI. Nella configurazione predefinita, Windows Firewall rifiuta una richiesta WMI in ingresso e viene visualizzato il messaggio di errore seguente:

Remote server machine does not exist or is unavailable

Vedi anche