Powershell - 创建计划任务以作为本地系统/服务运行

dev*_*ife 12 powershell scheduled-tasks

任何人都可以告诉我如何使用作为本地系统或本地服务运行的powershell创建计划任务?

除了调用ITaskFolder.RegisterTaskDefinition()之外,一切都很好.

如果我传入$ null或"",则调用炸弹说无效的用户名或密码.有什么想法吗"

$ Rootfolder.RegisterTaskDefinition("Test",$ Taskdef,6,"LOCAL SERVICE","",3)

Dan*_*ott 6

我认为您需要使用“nt Authority\localservice”作为用户名。

善良,


Dji*_*ouf 6

对于那些谁可以使用PowerShell的3.0的Windows 8或Windows Server 2012中,新的cmdlet将与小命令注册您的计划的任务时,让你以简单的方式做到这一点Register-ScheduledTask,并作为参数-User "System"

这是一个完全使用PS创建的计划任务,其目的是在系统启动3分钟后使用SYSTEM帐户重新启动服务My Service:

$taskname = "Restart My Service"
$taskdescription = "Restart My Service after startup"
$action = New-ScheduledTaskAction -Execute 'Powershell.exe' `
  -Argument '-NoProfile -WindowStyle Hidden -command "& Restart-Service -displayname \"My Service\""'
$trigger =  New-ScheduledTaskTrigger -AtStartup -RandomDelay (New-TimeSpan -minutes 3)
$settings = New-ScheduledTaskSettingsSet -ExecutionTimeLimit (New-TimeSpan -Minutes 2) -RestartCount 3 -RestartInterval (New-TimeSpan -Minutes 1)
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName $taskname -Description $taskdescription -Settings $settings -User "System"
Run Code Online (Sandbox Code Playgroud)

注意:您需要作为该脚本的管理员运行powershell.


Sta*_*ing 5

此代码段将使用PowerShellPack的任务计划程序模块将任务计划为立即以SYSTEM身份运行:

New-Task |
    ForEach-Object {
        $_.Principal.Id = "NTAuthority\SYSTEM"
        $_.Principal.RunLevel = 1
        $_
    } |
    Add-TaskAction -Script {
        "SystemTask" > C:\myTest.txt
    } |
    Add-TaskTrigger -OnRegistration |
    Register-ScheduledTask SystemTask
Run Code Online (Sandbox Code Playgroud)