Powershell脚本安排每日任务报错

Powershell script to schedule daily task error

我有一个非常简单的强大 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: No mapping between account names and security IDs was done.

我已确保该帐户存在,因为它目前是 运行 多项服务。我也是 powershell 的新手,所以尝试在用户名周围添加引号但没有成功。

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

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

对我来说,这是一个在存储变量的地方有尾随空格的问题。与手头的问题无关,但对于阅读本文的其他人来说,也许值得进行健全性检查。