gpt4 book ai didi

Powershell:设置计划任务在用户未登录时运行

转载 作者:行者123 更新时间:2023-12-02 18:27:51 25 4
gpt4 key购买 nike

我一直在使用 Powershell Scheduled Task Cmdlets在我们的服务器上创建计划任务。

如何选择“无论用户是否使用此 API 登录都运行?”

我创建了 actiontriggerprincipalsettings 对象,并将它们传递给 注册ScheduledTask,如下:

$action = New-ScheduledTaskAction -Execute foo.exe -Argument "bar baz"
$trigger = New-ScheduledTaskTrigger -Once -At $startTime -RepetitionInterval (New-TimeSpan -Minutes 1) -RepetitionDuration ([Timespan]::MaxValue)
$principal = New-ScheduledTaskPrincipal -UserId "$($env:USERDOMAIN)\$($env:USERNAME)" -LogonType ServiceAccount
$settings = New-ScheduledTaskSettingsSet -MultipleInstances Parallel

Register-ScheduledTask -TaskName $taskName -TaskPath "\my\path" -Action $action -Trigger $trigger -Settings $settings -Principal $principal

当我创建这样的计划任务时,它默认为“仅在用户登录时运行”。

This question显示如何使用 COM 对象执行此操作,并且 this one使用 schtasks.exe,但如何使用 *-ScheduledTask* cmdlet 执行此操作?

最佳答案

我不喜欢将我的凭据嵌入到脚本中(这里的其他一些示例就是这样做的),此外,您通常无法通过 Packer 或其他一些系统/配置自动化或在云中执行此操作具有伪随机生成的密码的提供商。另外,一般来说,我认为将您的凭据硬编码到脚本或命令或任务中是“不好的做法”,并且很容易泄漏。

有一种更好的方法可以做到这一点,我想认识到 Aeyoun 在该线程的评论中提到过,但没有详细说明哪种方法是正确设置主体以系统用户身份运行。我深入研究并解决了这个问题,这就是我作为 SYSTEM 用户安排任务的方式,该任务在后台自动运行,并且不依赖于用户是否登录。

下面这组命令是我在一些必须在后台安排需要管理员访问权限的关键任务的地方使用的。希望对您有帮助!

$action = New-ScheduledTaskAction -Execute foo.exe -Argument "bar baz"
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 1) -RepetitionDuration ([Timespan]::MaxValue)
$principal = New-ScheduledTaskPrincipal -UserID "NT AUTHORITY\SYSTEM" -LogonType ServiceAccount -RunLevel Highest
$settings = New-ScheduledTaskSettingsSet -MultipleInstances Parallel

Register-ScheduledTask -TaskName "tasknamehere" -TaskPath "\my\path" -Action $action -Trigger $trigger -Settings $settings -Principal $principal

关于Powershell:设置计划任务在用户未登录时运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13965997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com