gpt4 book ai didi

windows - 在 Windows 2012 R2 中使用 Powershell 导入计划任务

转载 作者:可可西里 更新时间:2023-11-01 11:50:53 24 4
gpt4 key购买 nike

我是 Powershell 脚本的新手,但我试图修改我发现的脚本 here在 Windows 2012 R2 中使用 Powershell 导入一些 XML 计划任务。

我已使用此脚本成功将计划任务导入根 [Task Scheduler Library]。

问题似乎是需要将计划任务导入到任务计划程序库下的子文件夹中,假设为“子任务”

$task_path = "C:\Users\me\Desktop\ST Testing\exported ST's\scheduledTask.xml"
$task_user = "usr"
$task_pass = "pwd"

$schedule = new-object -com("Schedule.Service")
$schedule.Connect("server") # servername
#$folder = $schedule.GetFolder("\") <===This works fine
$folder = $schedule.GetFolder("\SubTasks") #<===This does not work
Write-Host $folder

Get-Item $task_path | % {
$task_name = $_.Name.Replace('.xml', '')
$task_xml = Get-Content $_.FullName
$task = $schedule.NewTask($null)
$task.XmlText = $task_xml
$folder.RegisterTaskDefinition($task_name, $task, 6, $task_user, $task_pass, 1, $null)

当我运行上述 Powershell 脚本时,我收到此错误:

Exception calling "RegisterTaskDefinition" with "7" argument(s): "The specified path is invalid. (Exception from HRESULT: 0x800700A1)" At C:\Users\me\Desktop\ST Testing\ImportSTs.ps1:22 char:5 + $folder.RegisterTaskDefinition($task_name, $task, 6, $task_user, $task_pass, ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : ComMethodTargetInvocation

提前致谢。

最佳答案

Register-ScheduledTask支持使用 XML 定义任务:

Register-ScheduledTask `
-User $task_user `
-Password $task_pass `
-TaskName ([IO.Path]::GetFileNameWithoutExtension($task_path)) `
-TaskPath '\SubTasks' `
-Xml (Get-Content $task_path -Raw)

请注意,您需要获取实际的 XML 内容-Raw 标志阻止 Get-Content 返回 String[],这也使 Register-ScheduledTask 不开心.

另请注意,Register-ScheduledTask 有一个 -TaskPath 参数,允许您根据需要指定一个子文件夹来放置任务。

我不喜欢使用坟墓标记来续行,所以我更喜欢使用 splatting 将内容分散到多行中:

$taskArgs = @{
User='usr';
Password='pwd';
TaskName=([IO.Path]::GetFileNameWithoutExtension($task_path));
TaskPath='\SubTasks';
Xml=(Get-Content $task_path -Raw)
}

Register-ScheduledTask @taskArgs

关于windows - 在 Windows 2012 R2 中使用 Powershell 导入计划任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29978102/

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