hilofm

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.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

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

77559
77559 15.05.2009 um 09:43:52 Uhr
Goto Top
Zitat von @hilofm:

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?
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
hilofm
hilofm 15.05.2009 um 09:50:34 Uhr
Goto Top
Hallo LotPings,

im Batch läuft das Script ohne Probleme.
Wo kann ich denn das Profil konfigurieren bzw. wie kann ich denn feststellen was beim Schedulen fehlt?

Gruß
hilofm
77559
77559 15.05.2009 um 10:28:05 Uhr
Goto Top
Zitat von @hilofm:
Hallo LotPings,
im Batch läuft das Script ohne Probleme.
Das läuft dann unter dem angemeldeten Benutzer wie auch die gestartete VM, welcher User ist denn im Job?

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