Sto ricevendo errori di class non validi per il mio script PowerShell

Quando eseguo questo script, ottengo questo errore

Get-WmiObject: class non valida "Msvm_ImageManagementService"

  • Gestione di più prompt PowerShell
  • get il path del gruppo AD nel dominio / tree
  • Relativamente correlare gli interruttori interni Hyper-V con gli adattatori di networking host da PowerShell
  • Come faccio a "catturare" un command fallito che non funziona con il tentativo ... cattura?
  • Re-dare agli utenti la properties; delle loro cartelle home mappate tramite powerhell
  • Quando interrogo Win32_PnPEntity, i miei dispositivi PS / 2 vengono sempre visualizzati come ... Perché?
  • e

    Get-WmiObject: class non valida "MSPower_DeviceEnable"

    e

    Get-WmiObject: class non valida "MSPower_DeviceWakeEnable"

    Gli errori di cui sopra si verificano solo su alcuni computer e non su altri.

    $computerlist = Get-Content F:\Code\powershell\network_shutdown\computer-list.csv foreach ($computer in $computerlist) { # Main Processing Section # Write-Host $computer if((Test-Connection -Cn $computer -BufferSize 16 -Count 1 -ea 0 -quiet)) { Write-Host $computer Write-Host "Disable `"Allow the computer to turn off this device to save power`"" Get-WmiObject -computername $computer Win32_NetworkAdapter -filter "AdapterTypeId=0" | % { $strNetworkAdapterID=$_.PNPDeviceID.ToUpper() Get-WmiObject -class MSPower_DeviceEnable -computername $computer -Namespace $namespace | % { if($_.InstanceName.ToUpper().startsWith($strNetworkAdapterID)) { $_.Enable = $false $_.Put() | Out-Null } } } Write-Host "Disable `"Allow this device to wake the computer`"" Get-WmiObject -computername $computer Win32_NetworkAdapter -filter "AdapterTypeId=0" | % { $strNetworkAdapterID=$_.PNPDeviceID.ToUpper() Get-WmiObject -class MSPower_DeviceWakeEnable -computername $computer -Namespace $namespace | % { if($_.InstanceName.ToUpper().startsWith($strNetworkAdapterID)){ $_.Enable = $false $_.Put() | Out-Null } } } Write-Host "Disable `"Only allow a magic packet to wake the computer`"" Get-WmiObject -computername $computer Win32_NetworkAdapter -filter "AdapterTypeId=0" | % { $strNetworkAdapterID=$_.PNPDeviceID.ToUpper() Get-WmiObject -class MSNdis_DeviceWakeOnMagicPacketOnly -computername $computer -Namespace $namespace | % { if($_.InstanceName.ToUpper().startsWith($strNetworkAdapterID)){ $_.EnableWakeOnMagicPacketOnly = $false $_.Put() | Out-Null } } } } else { Write-Host $computer + " OFFLINE" $output = new-object psobject $output | Add-Member noteproperty ComputerName $computer $arrays += $output } $arrays | Export-Csv -Path F:\Code\powershell\network_shutdown\Results.csv } 

    Come posso risolvere lo spazio dei nomi in modo che posso indirizzare tutti i computer?

    Il mio errore di logging non funziona neanche. Cosa posso fare per get l'OFFLINE e il FAILED e il SUCCESS in un file CSV? (Sono consapevole che nel mio codice qui sopra, sto solo catturando quelle offline ma che non funziona neanche)

    Ho il seguente

    L'invocazione del metodo non è rioutput perché [System.Management.Automation.PSObject] non contiene un metodo denominato 'op_Addition'.

    Il codice è in esecuzione su Windows 7

    Versione di PowerShell

     Major Minor Build Revision ----- ----- ----- -------- 2 0 -1 -1 

  • Produzione Server DNS BIND - utilizzi il gestore pacchetti o compila l'ultima edizione stabile?
  • TortoiseSVN Errore: imansible connettersi a un repository all'URL
  • Come configurare un server linux redhat / centos / amazon per le connessioni tcp aperte da 1million?
  • Aumentare nproc su CentOS / RHEL
  • Perl CGI.pm module sconnesso all'output su RedHat / CentOS 5
  • Windows Configurazione Stato desiderato / DSC: Esiste un modo semplice e "piatto" per usarli?
  • One Solution collect form web for “Sto ricevendo errori di class non validi per il mio script PowerShell”

    Get-WmiObject: class non valida "Msvm_ImageManagementService"

    Questa class è esposta dal provider WMI Hyper-V . Se non si dispone di strumenti di gestione Hyper-V o Hyper-V che sono installati nella macchina di destinazione, questa class non sarà presente

    Get-WmiObject: class non valida "MSPower_ *"

    La superclass MSPower non è ufficialmente supportta e le classi derivate _Device * non vengono esposte a less che una scheda di networking installata non supporti Wake-on-LAN

    L'invocazione del metodo non è rioutput perché [System.Management.Automation.PSObject] non contiene un metodo denominato 'op_Addition'.

    è probabilmente causata dalla seguente row:

     $arrays += $output 

    Se l' $arrays non esiste ancora, PowerShell non può dedurre automaticamente che si desidera che si tratti di un arrays di PSObject s – PowerShell quindi cerca di utilizzare il tipo di object sul lato destro dell'operatore di aggiunta ( + ) , e correttamente non riesce perché PSObject non support tale operazione.

    Aggiungere all'inizio all'inizio dello script:

     $arrays = @() 

    Per inizializzare un arrays vuoto o indicare il tipo desiderato con un cast esplicito:

     [PSObject[]]$arrays += $output 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.