如何使用 powershell 将作者添加到 windows 任务
How to add Author to a windows task using powershell
我正在使用 powershell 创建一个 window 任务,一切正常,但我找不到如何添加作者姓名。 Register-ScheduledTask 作为描述的参数,但不是 Author 的参数。
导出Windows任务
<RegistrationInfo>
<Date>2016-05-17T16:45:54.3423362</Date>
<Author>NEED TO SET THIS</Author>
<URI>RunLauncherTask</URI>
</RegistrationInfo>
我用来创建任务的代码
$principal = New-ScheduledTaskPrincipal -UserId (Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -expand UserName)
$allTasks = Get-ScheduledTask | Select TaskName
$action = New-ScheduledTaskAction -Execute "C:\Launcher.exe"
$trigger = New-ScheduledTaskTrigger -AtLogOn
$task = New-ScheduledTask -Action $action -Trigger $trigger -Principal $principal
$username = $principal.UserId
$taskName = 'RunLauncherTask' + $username.Replace('\','-')
$settings = New-ScheduledTaskSettingsSet -DontStopIfGoingOnBatteries -AllowStartIfOnBatteries
Register-ScheduledTask $taskName -Action $action -Settings $settings
如何设置autor?
不幸的是,唯一的方法是通过 -xml
选项。
请注意,该选项采用实际的 字符串,而不是文件名。
$xml = @"
....
....
"@
Register-ScheduledTask -Xml $xml -TaskName $task_name
这是对我有用的方法。
创建任务后:
$taskObject = Get-ScheduledTask "Taskname"
$taskObject.Author = "authorname"
$taskObject | Set-ScheduledTask
我正在寻找一种方法来更改现有任务的作者,Google 把我带到了这里。这可能不是对 OP 问题的最有效答案,但我会 post 它以防它能帮助处于我情况的其他人。
假设任务已在任务计划程序中设置:
$tasks=Get-ScheduledTask |where author -like "<old_author>"
$tasks | Foreach-Object{
$taskObject=Get-ScheduledTask $_.TaskName
$taskObject.Author = "<new_author>"
$taskObject | Set-ScheduledTask -User "<new_username>" -Password "<new_user_password>"
}
详细说明@bupmm的回答和@Gup3rSuR4c的相应评论,可以在设置定时任务的时候设置作者。创建定时任务对象,在任务对象中设置作者,然后注册新的任务对象(见下面代码)。
$User = "user"
$Password = "password"
$TaskPath = "<scheduled_task_folder>"
$TaskName = "hello_world"
$TaskDescription = "Run Hello World"
$TaskAction = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File C:\source_code\scripts\hello_world.ps1"
$TaskTrigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 5) -RepetitionDuration ([System.TimeSpan]::MaxValue)
$TaskPrincipal = New-ScheduledTaskPrincipal -Id $User -UserId $User -LogonType Password -RunLevel Limited
$Task = New-ScheduledTask -Description $TaskDescription -Action $TaskAction -Principal $TaskPrincipal -Trigger $TaskTrigger
$Task.Author = "Author"
$Task | Register-ScheduledTask -TaskName $TaskName -TaskPath $TaskPath -User $User -Password $Password | Out-Null
我正在使用 powershell 创建一个 window 任务,一切正常,但我找不到如何添加作者姓名。 Register-ScheduledTask 作为描述的参数,但不是 Author 的参数。
导出Windows任务
<RegistrationInfo>
<Date>2016-05-17T16:45:54.3423362</Date>
<Author>NEED TO SET THIS</Author>
<URI>RunLauncherTask</URI>
</RegistrationInfo>
我用来创建任务的代码
$principal = New-ScheduledTaskPrincipal -UserId (Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -expand UserName)
$allTasks = Get-ScheduledTask | Select TaskName
$action = New-ScheduledTaskAction -Execute "C:\Launcher.exe"
$trigger = New-ScheduledTaskTrigger -AtLogOn
$task = New-ScheduledTask -Action $action -Trigger $trigger -Principal $principal
$username = $principal.UserId
$taskName = 'RunLauncherTask' + $username.Replace('\','-')
$settings = New-ScheduledTaskSettingsSet -DontStopIfGoingOnBatteries -AllowStartIfOnBatteries
Register-ScheduledTask $taskName -Action $action -Settings $settings
如何设置autor?
不幸的是,唯一的方法是通过 -xml
选项。
请注意,该选项采用实际的 字符串,而不是文件名。
$xml = @"
....
....
"@
Register-ScheduledTask -Xml $xml -TaskName $task_name
这是对我有用的方法。
创建任务后:
$taskObject = Get-ScheduledTask "Taskname"
$taskObject.Author = "authorname"
$taskObject | Set-ScheduledTask
我正在寻找一种方法来更改现有任务的作者,Google 把我带到了这里。这可能不是对 OP 问题的最有效答案,但我会 post 它以防它能帮助处于我情况的其他人。
假设任务已在任务计划程序中设置:
$tasks=Get-ScheduledTask |where author -like "<old_author>"
$tasks | Foreach-Object{
$taskObject=Get-ScheduledTask $_.TaskName
$taskObject.Author = "<new_author>"
$taskObject | Set-ScheduledTask -User "<new_username>" -Password "<new_user_password>"
}
详细说明@bupmm的回答和@Gup3rSuR4c的相应评论,可以在设置定时任务的时候设置作者。创建定时任务对象,在任务对象中设置作者,然后注册新的任务对象(见下面代码)。
$User = "user"
$Password = "password"
$TaskPath = "<scheduled_task_folder>"
$TaskName = "hello_world"
$TaskDescription = "Run Hello World"
$TaskAction = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File C:\source_code\scripts\hello_world.ps1"
$TaskTrigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 5) -RepetitionDuration ([System.TimeSpan]::MaxValue)
$TaskPrincipal = New-ScheduledTaskPrincipal -Id $User -UserId $User -LogonType Password -RunLevel Limited
$Task = New-ScheduledTask -Description $TaskDescription -Action $TaskAction -Principal $TaskPrincipal -Trigger $TaskTrigger
$Task.Author = "Author"
$Task | Register-ScheduledTask -TaskName $TaskName -TaskPath $TaskPath -User $User -Password $Password | Out-Null