2016-03-29 3 views
1

Я пытаюсь создать запланированную задачу, которая будет запускать скрипт Powershell с 1 параметром - это на сервере 2012 с установленной версией Powershell v5. До сих пор мне удалось запустить задачу, но она не распознает значение моего значения - значение имеет значение 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 параметр. Я также попробовал -Command вместо -File для значения Argument, но получаю тот же результат.

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

одинарные кавычки паров кажется, не делать ничего, либо

-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

Это сработало для меня, спасибо –

Смежные вопросы