complex
Goto Top

Batch lässt sich nicht aus Powershell-Script starten

Guten Morgen Jungs!

stehe vor einem kuriosen Problem und hoffe, ihr könnt mir helfen.
Eins vorne Weg: Ich weiß es gibt leichtere Methoden, welche ich aber schon ausschließen konnte. Ich muss leider diesen komplizierten weg gehen:

Ich möchte ein Bios-Update als Task-Sequenz setzen und bin in diesem Zug um ein Script nicht herum gekommen.
Da das HP-Bios Update-Tool gar nicht gerne mit geänderten Datei-Name der Bios-Files arbeitet, stehe ich vor dem Problem, dass bei jedem Update sich der Filename ändert.

Auszug aus dem Script:

#hier wird zuvor die gecryptete passwort-Datei erstellt. da bei uns jedes Firmen-Laptop ein anderes Bios-Passwort besitzt, muss dies zuvor in der variable $Password erstellt werden und als Biospswd.bin ausgegeben (funktionsfähig!)
& ".\HpqPswd.exe" /p"$password" /f".\Biospswd.bin" /s    

#bios-file definieren, da sich der Filename mit jedem Update ändert. 
$binfile = Get-ChildItem *bin -Exclude Biospswd* -Name  

#batch-Datei erstellen und Inhalt einpflegen
"@echo off   
HPBIOSUPDREC64.exe -pBiospswd.bin -f$binfile -s -b" | Out-File update.bat -Force    

#zuvor erstellte .bat ausführen
start .\update.bat  

die .bat-Datei wird mit dem Inhalt

"@echo off
HPBIOSUPDREC64.exe -pBiospswd.bin -f$binfile -s -b"

erstellt (variable wird ebenfalls mit dem Dateinamen des Bios-Updates übergeben - und ja, es gehört KEIN Leerzeichen zwischen den Commandline-Befehlen), kann aber nicht ausgeführt werden ("Der Befehl "■" ist entweder falsch geschrieben oder konnte nicht gefunden werden").
Jetzt der Clou: kopiere ich den Befehl aus der generierten Batch, füge ihn in ein leeres txt-dokument ein und ändere es zu Batch - funktioniert es...

Was mir ebenfalls aufgefallen ist:
Die durch das Script generierte batch-Datei hat eine größe von 118 Byte. die manuelle über das text-dokument erstellte .bat hat 58 Byte. Wie kann das sein?

Vielen Dank schon mal für eure Hilfe.

Content-Key: 259761

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

Printed on: April 24, 2024 at 16:04 o'clock

Member: emeriks
Solution emeriks Jan 14, 2015 updated at 08:29:20 (UTC)
Goto Top
Hi,
Du musst die Batch als ASCII speichern. Dann sollte es gehen.

E.
Member: AndreasHoster
Solution AndreasHoster Jan 14, 2015 updated at 08:29:23 (UTC)
Goto Top
Punkt Dateigröße: Schonmal was von Unicode/UTF gehört?
Probiere es doch mal mit
Out-File update.bat -Force -Encoding ascii

Ansonsten, warum eine Batchdatei erstellen und die dann starten?
Warum nicht gleich mit Start-Process den Prozess gleich starten?
Member: complex
complex Jan 14, 2015 updated at 08:33:43 (UTC)
Goto Top
ohman...*kopf->tisch* vielen vielen Dank!!!
funktioniert - danke face-smile
Member: complex
complex Jan 14, 2015 at 09:22:39 (UTC)
Goto Top
hast recht. hatte es spaßeshalber mit "cmd /c HPBIOSUPDREC64.exe -pBiospswd.bin -f$binfile -s -b" probiert. hätte in dem Fall natürlich auch funktioniert face-smile
PS: bin absoluter PS-Einsteiger - nicht böse sein wenn ich viele Sachen nicht kenne face-smile