Anzeige

Am Puls von Microsoft

Anzeige

Batchskript Anführungszeichen

MH311x

Multi-OS-User
Hallo zusammen,
ich schreibe gerade ein Batchskript und muss hier verschachtelte Anführungszeichen verwenden...

Code:
runas /user:domäne\admin /savecred "powershell -noprofile -command "&{ start-process powershell-ArgumentList '-noprofile -file D:\test\Synchronisierungsskript.ps1' -verb RunAs}""


Laut einer in Google gefundenen Lösung muss ich vor die inneren Anführungszeichen ein \ setzen ... also quasi so:
Code:
runas /user:domäne\admin /savecred "powershell -noprofile -command \"&{ start-process powershell-ArgumentList '-noprofile -file D:\test\Synchronisierungsskript.ps1' -verb RunAs}\""
... funktioniert aber leider nicht :)

Hat hierzu jemand eine Lösung?

LG
 
Anzeige
Könnte es sein, dass Dir das erste "-noprofile" etwas verrutscht ist? Denn eigentlich sollte das zum runas Kommando gehören und ist entsprechend vor Powershell einzusetzen.
 
Hallo areiland,
nein, leider nicht.
Für das "powershell" Kommando gibt es ebenfalls einen noprofile-Parameter, dieser besagt dass kein vorkonfiguriertes PowerShell Profil geladen wird. :)

LG
 
Natürlich gibts den, ich wollte einfach nur wissen ob Du diese Reihenfolge bewusst gewählt hattest und das ignorieren des Powershellprofils gewollt war.
 
Ist bewusst gewählt...

Das Powershellskript an sich macht was es soll, auch die Batch-Datei an sich fordert mich dann zur Eingabe des Kennworts auf, alles wie geplant. Allerdings erkennt die Batch-Datei das auszuführende Skript nur bis zum zweiten Anführungszeichen und interepretiert dieses dann als Anweisungsende.

Es muss also irgendeine Syntaxgeben, welche die Verschachtelung dieser Anführungszeichen zulässt, nur sind bisher alle gefundenen Möglichkeiten erfolglos geblieben..
 
Hallo MH311x,
alternativ könntest Du das Synchronisierungsskript auch nur über PowerShell aufrufen. Erstelle dazu ein weiteres PS-Script wie folgt:
Code:
$Diff_Acct = "domäne\admin"
$cred = Get-Credential $Diff_Acct
PowerShell -NoProfile -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -File D:\test\Synchronisierungsskript.ps1""' -Verb RunAs}"
 
Anzeige
Oben