Question:
I have a very simple power shell script that will register console applications as daily scheduled tasks.
1 2 3 4 5 6 7 8 9 |
$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 |
The application reads the file path from user input and attempts to register the application as a task using a specific user account. I can get the script working by using
1 2 |
-User "System" |
However when I try to use the above script I get this error:
Register-ScheduledTask: No mapping between account names and security IDs was done.
I have ensured that the account exists as it is currently running several services. I am also new to powershell so have tried adding quotations around the username with no luck.
Answer:
Don’t think PowerShell recognises %computername%
. Have a look at environment variables here.
$env:USERNAME
, $env:USERDOMAIN
$env:COMPUTERNAME
look relevant to your task.