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