PowerShell Script funktioniert nicht im Aufgabenplanung
Hallo ans Forum
Umgebung:
- Windows 2008 64Bit Hyper-V
- Gastsysteme XP und Win 2003
Ich habe mir ein PowerShell Script geschrieben, was automatisch ein Gastsystem runterfahren soll.
Script --------------------
Param($servername)
$strComputer = "."
$Vm = Get-WmiObject -Namespace "root\virtualization" -computername $strComputer -Query "Select * From Msvm_ComputerSystem Where ElementName='$servername'"
$ShutdownIC = Get-WmiObject -Namespace "root\virtualization" -computername $strComputer -Query "Associators of {$Vm} Where AssocClass=Msvm_SystemDevice ResultClass=Msvm_ShutdownComponent"
$erg = $ShutdownIC.InitiateShutdown("TRUE", "shutdown über Script")
exit
Aufruf in der Batch-Datei --------------------------------
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe c:\vsm04\scripte\ps1-shutdown.ps1 ComputerName
Starte ich das Script über CMD, dann funktioniert es ohne Probleme.
Wenn ich aber den Job unter Windows 2008 in "Aufgabenplanung" einplane bekomme ich folgende Fehlermeldung:
Get-WmiObject : Ungültiger Objektpfad Bei C:\vsm04\scripte\ps1-shutdown.ps1:4 Zeichen:28 + $ShutdownIC = Get-WmiObject <<<< -Namespace "root\virtualization" -computern ame $strComputer -Query "Associators of {$Vm} Where AssocClass=Msvm_SystemDevice ResultClass=Msvm_ShutdownComponent"
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. Bei C:\vsm04\scripte\ps1-shutdown.ps1:5 Zeichen:36 + $erg = $ShutdownIC.InitiateShutdown( <<<< "TRUE", "Need to shutdown")
Hat jemand eine Idee was ich falsch mache?
DANKE.
Umgebung:
- Windows 2008 64Bit Hyper-V
- Gastsysteme XP und Win 2003
Ich habe mir ein PowerShell Script geschrieben, was automatisch ein Gastsystem runterfahren soll.
Script --------------------
Param($servername)
$strComputer = "."
$Vm = Get-WmiObject -Namespace "root\virtualization" -computername $strComputer -Query "Select * From Msvm_ComputerSystem Where ElementName='$servername'"
$ShutdownIC = Get-WmiObject -Namespace "root\virtualization" -computername $strComputer -Query "Associators of {$Vm} Where AssocClass=Msvm_SystemDevice ResultClass=Msvm_ShutdownComponent"
$erg = $ShutdownIC.InitiateShutdown("TRUE", "shutdown über Script")
exit
Aufruf in der Batch-Datei --------------------------------
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe c:\vsm04\scripte\ps1-shutdown.ps1 ComputerName
Starte ich das Script über CMD, dann funktioniert es ohne Probleme.
Wenn ich aber den Job unter Windows 2008 in "Aufgabenplanung" einplane bekomme ich folgende Fehlermeldung:
Get-WmiObject : Ungültiger Objektpfad Bei C:\vsm04\scripte\ps1-shutdown.ps1:4 Zeichen:28 + $ShutdownIC = Get-WmiObject <<<< -Namespace "root\virtualization" -computern ame $strComputer -Query "Associators of {$Vm} Where AssocClass=Msvm_SystemDevice ResultClass=Msvm_ShutdownComponent"
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. Bei C:\vsm04\scripte\ps1-shutdown.ps1:5 Zeichen:36 + $erg = $ShutdownIC.InitiateShutdown( <<<< "TRUE", "Need to shutdown")
Hat jemand eine Idee was ich falsch mache?
DANKE.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 116128
Url: https://administrator.de/forum/powershell-script-funktioniert-nicht-im-aufgabenplanung-116128.html
Ausgedruckt am: 03.05.2025 um 18:05 Uhr
3 Kommentare
Neuester Kommentar

Hallo Hilofm,
willkommen im Forum.
-----------Aufruf in der Batch-Datei
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe c:\vsm04\scripte\ps1-shutdown.ps1 ComputerName
Starte ich das Script über CMD, dann funktioniert es ohne Probleme.
Du meinst über die Batch gestartet läuft es so?%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe c:\vsm04\scripte\ps1-shutdown.ps1 ComputerName
Starte ich das Script über CMD, dann funktioniert es ohne Probleme.
Oder läuft das Script so direkt in der Powershell?
In der Hilfe zu Powershell /? sind weitere Methoden zum Quoten der Start Parameter beschrieben, probier das mal.
Ansonsten, lädst du etwas in deinem Profil was das Script benötigt und beim Schedulen fehlt?
Gruß
LotPings

Das läuft dann unter dem angemeldeten Benutzer wie auch die gestartete VM, welcher User ist denn im Job?
Den Namespace root\Virtualisation gibt es auf meinem Windows 7 RC 64Bit jedenfalls nicht.
Die erste Fehlermeldung deutet ja darauf hin, das dieser Namespace bei dir unter den gegebenen Bedingungen auch nicht gefunden wird.
Wo er Module lädt steht in $ENV:PSModulePath
Gruß
LotPings
Wo kann ich denn das Profil konfigurieren bzw. wie kann ich denn feststellen was beim Schedulen fehlt?
Ich kenne jetzt dein OS nicht, und weiss daher nicht ob dein Powershell zusätzliche Module hat/lädt oder ob das WMI entsprechend erweitert ist.Den Namespace root\Virtualisation gibt es auf meinem Windows 7 RC 64Bit jedenfalls nicht.
Die erste Fehlermeldung deutet ja darauf hin, das dieser Namespace bei dir unter den gegebenen Bedingungen auch nicht gefunden wird.
Wo er Module lädt steht in $ENV:PSModulePath
Gruß
LotPings