用于安排每日任务错误的Powershell脚本

时间:2017-06-19 13:06:57

标签: powershell taskscheduler windows-scheduler

我有一个非常简单的power shell脚本,它将控制台应用程序注册为日常计划任务。

$TaskCommand = Read-Host 'Enter the path to the console application'
$TaskName = "TaskName"
$TaskStartTime = "10PM"
$TaskArg = "-WindowStyle Hidden -NonInteractive -Executionpolicy unrestricted"

$TaskAction = New-ScheduledTaskAction -Execute "$TaskCommand" -Argument "$TaskArg"
$TaskTrigger = New-ScheduledTaskTrigger -At $TaskStartTime -Daily
Register-ScheduledTask -Action $TaskAction -Trigger $TaskTrigger -TaskName "$TaskName" -User %computername%\theusername -Password "password" -RunLevel Highest

应用程序从用户输入读取文件路径,并尝试使用特定用户帐户将应用程序注册为任务。我可以使用

来使脚本正常工作
-User "System"

但是当我尝试使用上面的脚本时,我收到了这个错误:

  

Register-ScheduledTask:帐户名和安全ID之间没有映射。

我已确保该帐户存在,因为它当前正在运行多项服务。我也是PowerShell的新手,所以试着在用户名周围添加引号而没有运气。

非常感谢任何帮助

2 个答案:

答案 0 :(得分:4)

不要认为PowerShell会识别%computername%Have a look at environment variables here.

$env:USERNAME$env:USERDOMAIN $env:COMPUTERNAME看起来与您的任务相关。

答案 1 :(得分:0)

对我来说,这是一个在变量存储尾随空格的问题。与眼前的问题无关,但也许值得其他阅读此书的人进行理智检查。