2016-03-29 24 views
1

Powershell v5がインストールされたServer 2012上に、1つのパラメータでPowershellスクリプトを実行するスケジュールされたタスクを作成しようとしています。これまでのところ、私はタスクを実行することができましたが、それは私のparam値を認識しません - 私の呼び出しているスクリプトで値がnullです。スケジュールされたタスクでpowershellスクリプトにパラメータを渡す

$TicketTime = "9:00pm" 
$EmpID = "1234" 
$Firstname = "Test" 
$Lastname = "User" 

$Action = New-ScheduledTaskAction -Execute "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -Argument "-ExecutionPolicy ByPass -File C:\Scripts\Term.ps1 -EmpID '$EmpID'" 
$Trigger = New-ScheduledTaskTrigger -Once -At "03/29/2016 $TicketTime" 
$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Settings (New-ScheduledTaskSettingsSet) 
$Task | Register-ScheduledTask -TaskName "$Firstname $Lastname" -User "myuser" -Password "mypass" 

これは正常に実行されますが、-EmpIDパラメータは認識されません。引数値の代わりに-Fileの代わりに-Commandを試しましたが、同じ結果が得られます。 PARAM周り

-ExecutionPolicy ByPass -Command "& C:\Scripts\Term.ps1 -EmpID 1234" 

単一引用符は、私がこれまでのところ何もparamは渡すために取得しませんどちらか

-ExecutionPolicy ByPass -Command "& C:\Scripts\Term.ps1 -EmpID '1234'" 

何もしていないようです。私は何が欠けていますか?

答えて

1

あなたは、位置ではなく、名前の通り、あなたのパラメータを試してみて、宣言することができます。

[CmdletBinding()] 
Param (
    [Parameter(Position=0)] 
    [string]$Ticket 
) 

"-ExecutionPolicy ByPass -File C:\Scripts\Term.ps1 '$EmpID'" 

次にあなたが-ParamNameをドロップして位置を使用して、それを渡すことができます。

+0

これは私のために働いた、ありがとう –

関連する問題