Benutzer mit den meisten Antworten
Invoke-commanc mit execution-policy und param-block

Frage
-
Hallo,
ich habe folgenden Code:
$job = Invoke-command {param($DB,$pw) (powershell.exe -noprofile -executionpolicy Bypass "\\<Pfad>\Skript.ps1" $DB $pw)} -ArgumentList $DB_SID, $pw_user –ComputerName "server01" -Credential $credential -AsJob
Ich möchte remote ein Skript ausführen (als Job), und diesem 2 Parameter übergeben. Das funktioniert an sich auch wunderbar, nur steht mein Job sofort auf Blocked, da eine Nachfrage aufpoppt ob ich das Skript wirklich ausführen will. Daher starte ich das Skript "mit" der executionpolicy bypass.
Nur blöd, dass jetzt der Param-Block nicht als solcher erkannt wird.
Wie rum muss ich denn das ganze schreiben, damit er brav alles macht?
Antworten
-
Ok, jetzt bin ich buff!
es hat folgender Maßen funktioniert:
$job = Invoke-command -FilePath "<Pfad>\Skript.ps1" -ArgumentList $DB_SID, $pw_user –ComputerName "server01" -Credential $credential -AsJob
Ich wäre nie darauf gekommen, dass -FilePath mich davor bewahrt, die Ausführung des Skriptes zu bestätigen. Somit kann ich mir dann natürlich das setzen der ExecutionPolicy sparen. Mein Skript ist glücklich, ich bin glücklich :-)
@Peter: Danke für den Hinweis mit dem FilePath. Dein Beispiel funktioniert leider nicht. Er erkennt die Parameter (die hinter dem Skript-Pfad kommen) leider nicht.
- Als Antwort vorgeschlagen Peter Kriegel Dienstag, 12. März 2013 13:11
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 13. März 2013 09:02
Alle Antworten
-
Ungetestet so müsste es gehen!
$job = Invoke-command {param($DB,$pw) (powershell.exe -noprofile -executionpolicy Bypass -Command "& {\\<Pfad>\Skript.ps1 $DB $pw}")} -ArgumentList $DB_SID, $pw_user –ComputerName "server01" -Credential $credential -AsJob
Gib mal in der Konsole oder ISE folgenden Befehl ein:
PowerShell.exe /?
Dann lies dir mal die Hilfe
AUFMERKSAM durch!
Dann siehst du in den Beispielen ganz unten, dass das -Command in Klammern oder in Anführungszeichen gehört um die Leerzeichen und die Parameter mit zu übergeben!
Warum benutzt du PowerShell.exe?
Lies dir mal die Hilfe zu Invoke-Command und dem Parameter -FilePath durch!Get-Help Invoke-Command -Full #oder : http://www.colorconsole.de/PS_Windows/de/Invoke-Command.htm
Lies ebenso dies hier!
Get-Help about_Remote_Jobshttp://www.colorconsole.de/PS_Windows/de/about_remote_jobs.htm
Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
German ? Come to German PowerShell Forum!
- Bearbeitet Peter Kriegel Dienstag, 12. März 2013 11:28
-
Ok, jetzt bin ich buff!
es hat folgender Maßen funktioniert:
$job = Invoke-command -FilePath "<Pfad>\Skript.ps1" -ArgumentList $DB_SID, $pw_user –ComputerName "server01" -Credential $credential -AsJob
Ich wäre nie darauf gekommen, dass -FilePath mich davor bewahrt, die Ausführung des Skriptes zu bestätigen. Somit kann ich mir dann natürlich das setzen der ExecutionPolicy sparen. Mein Skript ist glücklich, ich bin glücklich :-)
@Peter: Danke für den Hinweis mit dem FilePath. Dein Beispiel funktioniert leider nicht. Er erkennt die Parameter (die hinter dem Skript-Pfad kommen) leider nicht.
- Als Antwort vorgeschlagen Peter Kriegel Dienstag, 12. März 2013 13:11
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 13. März 2013 09:02
-
Merke : Es lohnt sich IMMER die komplette Hilfe zu einen Cmdlet zu lesen ;-) !
Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
German ? Come to German PowerShell Forum!