这是我第一次使用任务调度程序,但我觉得我已经很接近了。我让它弹出并运行任务,但我指定的脚本没有运行。当我自己运行脚本时,它运行得很好。
$time = (Get-Date).AddSeconds(5).ToString("HH:mm:ss")
$Time = New-ScheduledTaskTrigger -At $time -Once
$User = 'DOMAIN\Username'
$PS = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-ExecutionPolicy Bypass -WindowStyle Hidden -file c:\Temp\map_homedrive.ps1"
Register-ScheduledTask -TaskName "DiyEusFix" -Trigger $Time -User $User -Action $PS
Start-ScheduledTask -TaskName "DiyEusFix"
sleep 10
Unregister-ScheduledTask -TaskName "DiyEusFix" -Confirm:$false
这运行没有任何问题。它试图运行的 .ps1 文件是:
$homedir = "\\home\directory\path"
New-PSDrive –Name “F” –PSProvider FileSystem –Root "$($homedir)" –Persist
我知道跟踪用户上下文对于映射驱动器很重要,但根据我的理解,在 Register-ScheduledTask 中指定 -User 应该作为我想要的正确用户运行。这是我认为我的理解断开的地方。我认为它可能不会切换用户,但从语法的角度来看,它看起来是正确的。任何见解都会非常有帮助。