Ps1 mit Administratorrechten und uneingeschränkten Richtlinien aus einer Batch-Datei ausführen?

-1

Ich habe eine test.bat, um eine test.ps1 mit Administratorrechten und uneingeschränkten Richtlinien auszuführen, und beide befinden sich im selben Ordner (lokaler PC), aber die bat führt ps1 nicht aus. Was ist falsch?

PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList 'Set-ExecutionPolicy Unrestricted -Force -File" "% ~ dpn0.ps1" "' -Verb RunAs}"

Und mein Skript ist ähnlich wie diese

BrianC
quelle
1
Was ist die Fehlermeldung?
DavidPostill

Antworten:

0

Sie haben mehrere Probleme:

  1. Sie haben doppelte Anführungszeichen verschachtelt, die Sie verwirren innere Anführungszeichen zu entkommen und / oder verwenden Sie einfache Anführungszeichen innerhalb der doppelten Anführungszeichen.
  2. Sie haben zusätzliche Leerzeichen in Ihrem Anruf zu " % ~ DPN0 ".
  3. Sie verketten die Skriptnamenvariable (% ~ DPN0) fälschlicherweise in Ihrer ArgumentList.
  4. Start-Prozesse ArgumentList nimmt eine Reihe von Zeichenfolgen ( string[] ), keine durch Leerzeichen getrennte Liste. Um ein statisches Array von Zeichenfolgen zu übergeben, trennen Sie die Zeichenfolgenelemente durch Kommas.
  5. Sie versuchen auch, eine -command und ein -file, und Sie können nicht beide verwenden -file argument und a -command Argument in einem einzelnen PowerShell.exe-Aufruf.
  6. Sie versuchen, einen PowerShell-Befehl auszuführen ( Set-ExecutionPolicy ) ohne Angabe der -command Streit. Verwenden Sie PowerShell.exe, um die Ausführungsrichtlinie für die Powershell.exe-Sitzung festzulegen, die Sie ausführen möchten -ExecutionPolicy Parameter, anstatt zu versuchen, die auszuführen Set-ExecutionPolicy Befehl.

Hier ist die korrigierte Version Ihres Befehls:

PowerShell -NoProfile -ExecutionPolicy Bypass -Command "Start-Process PowerShell -ArgumentList '-ExecutionPolicy Unrestricted','-File %~dpn0.ps1' -Verb RunAs"
Ƭᴇcʜιᴇ007
quelle
danke, aber test.ps1 läuft nicht
BrianC
Funktioniert hier einwandfrei und wir sind kein Skriptschreibdienst, daher müssen Sie ein wenig mehr tun und mehr Informationen bereitstellen. Bitte bearbeiten Sie Ihre Frage und fügen Sie genau das hinzu, was Sie versucht haben und was genau die Ergebnisse dieser Versuche waren, einschließlich der genauen Ausgabe aus der Batch-Datei, wenn Sie versuchen, sie auszuführen.
Ƭᴇcʜιᴇ007
Erstellen Sie zum Testen auch eine test.ps1, die lediglich ein einfaches PowerShell-Skript enthält (z write-host "Hi!" gefolgt von read-host Wenn Sie die Eingabetaste drücken, können Sie feststellen, ob der Start fehlerhaft ist oder ob ein Problem mit dem von Ihnen ausgeführten PS1-Skript vorliegt.
Ƭᴇcʜιᴇ007
Ja, du hast recht. Das Problem ist ps1. Ich behebe das Problem, habe aber ein anderes Problem, bearbeite meine Frage erneut, um mir mit dem zweiten Teil zu helfen, und wähle deine Antwort mit richtig aus. Danke vielmals
BrianC
Wenn Sie ein anderes / zusätzliches Problem haben, beginnen Sie bitte eine neue Frage, anstatt diese in etwas anderes zu ändern ...
Ƭᴇcʜιᴇ007