hilofm
Goto Top

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.

Content-Key: 116128

Url: https://administrator.de/contentid/116128

Printed on: April 25, 2024 at 12:04 o'clock

Mitglied: 77559
77559 May 15, 2009 at 07:43:52 (UTC)
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
Member: hilofm
hilofm May 15, 2009 at 07:50:34 (UTC)
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
Mitglied: 77559
77559 May 15, 2009 at 08:28:05 (UTC)
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