我对Powershell脚本非常陌生,但尝试修改我在这里找到的脚本,以便在Windows 2012 R2中使用Powershell导入一些XML计划任务。
我已经成功地将计划的任务导入到根[任务计划程序库]使用此脚本。
问题似乎是调度任务需要导入到任务调度程序库下的子文件夹中,比如说“子任务”
$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脚本时,我收到这个错误:
异常调用带有“7”参数的“注册任务定义”:“指定的路径无效。(来自HRESULT的异常: 0x800700A1)”在C:\用户\我\桌面\ST测试\重要s.ps1:22 char: 5$文件夹。注册任务定义($task_name,$任务,6,$task_user,$task_pass,...~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~类别信息:未指定: (:) [], 方法调用异常完全合格错误ID: ComomeodTargetInvtion
提前谢谢。
能够满足我们的需求。
$task_user="username"
$task_pass="password"
$schedule=new-object -ComObject ("Schedule.Service")
$schedule.Connect("server")
$folder=$schedule.GetFolder("\tasks")
$path="\\server\c$\temp\Tasks\"
Get-ChildItem $path -Filter "*.xml"| foreach {
$task_conf=Get-Item -Path $_.FullName
$taskname=$task_conf.Name
$task_xml=$task_conf.FullName
$task=$schedule.NewTask(0)
$task.XmlText=(Get-Content $task_xml).Replace('Task version="1.1" xmlns','Task version="1.2" xmlns')
$folder.RegisterTaskDefinition($taskname,$task,6,$task_user,$task_pass,1,$null)
}
如果您使用的是powershell 3(win2k12——您也是)及以上版本,则有一个完整的任务调度模块。
请参阅:gcm-模块PSScheduledJob
然而,从xml导入任务似乎并不容易。
这里有一些模块,这个特殊的模块反序列化xml文件并测试所有设置,似乎比下面列出的解决方案更麻烦。
对于powershell 2(win2k8),我发现更容易使用schtasks
-full ref here:
https://msdn.microsoft.com/en-us/library/windows/desktop/bb736357(v=vs.85)。aspx
例如(从xmlfile调度任务,任务将在特定的用户凭据下运行:
schtasks /Create /XML $xmlfile /RU $creds.UserName /RP $creds.GetNetworkCredential().Password /TN "My Task Name"
我通过手动创建任务并导出为xml(我从xml中删除了凭证和信息节点)获得了xml文件
注册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
标志可防止获取内容
返回字符串[]
,这也会使寄存器调度任务
不愉快。
还请注意,Register ScheduledTask
有一个-TaskPath
参数,允许您指定一个子文件夹,以便在需要时将任务放入其中。
我不喜欢用墓碑来延续线条,所以我更喜欢把东西分散在多行上:
$taskArgs = @{
User='usr';
Password='pwd';
TaskName=([IO.Path]::GetFileNameWithoutExtension($task_path));
TaskPath='\SubTasks';
Xml=(Get-Content $task_path -Raw)
}
Register-ScheduledTask @taskArgs
我有一个PowerShell (PS)脚本,我想在每天早上5:00执行它。我想让它自动运行,所以我通过任务调度器(运行Windows 7旗舰版和SP1,64位)来安排它。作为一个测试,我写了一个简单的PS脚本,它只是将时间戳附加到一个文本文件中。它运行——我可以看到PowerShell窗口打开了,它写出了PS日志——但它没有写入文本文件。 脚本在命令行和PS shell中运行良好。无论是从计划时间
我想每小时向我的用户发送推送通知。 以上是我试图每小时执行的内容。 但是当执行该脚本时,我得到的是一个错误消息: "Traceback(最近的调用最后): File"/home/User/Folder/Project/App/schedule.py",第1行,从push_notifications.models导入APNSDevice重要错误:没有名为push_notifications.mode
我正在从事一个Spring Webflux项目,在计划任务中发布和使用Flux时遇到了一个问题。 我配置的调度程序: 除非我在最后故意阻止,否则这项任务永远不会完成: 我最初没有费心直接引用发布/订阅计划程序,我尝试了所有看似合理但没有效果的选项。 我的日志事件发生了,但当来自调度程序的该任务的线程死亡时,通量也会被丢弃;即使在我指定发布和订阅行为后,它们应该在自己的线程池中? 我想使这个行动完全
我在Windows Server 2012的任务计划程序中有几个计划任务。我正在通过PowerShell运行这些任务 我正在寻找一种检查任务何时完成的方法。我认为我可以在<code>中检查任务的状态,$tasks 我本以为这段代码会导致< code>Ready,然后是< code>Running,但它最终打印出< code>Ready,< code>Ready。 我还注意到,当任务正在执行时,任务
本文向大家介绍如何使用PowerShell启动任务计划程序的特定任务?,包括了如何使用PowerShell启动任务计划程序的特定任务?的使用技巧和注意事项,需要的朋友参考一下 要使用PowerShell启动任务计划程序的特定任务,我们需要使用Start-ScheduledTask 命令。 当我们运行上面的命令时,我们需要提供任务名称。 例如, 当您检查以上任务状态时, 示例 输出: 要在远程计算机
我可以使用带有特定路径的Register ScheduledTask PowerShell cmdlet(即使用-TaskPath“\SomePath\”和-TaskName“SomeName”)在Windows中创建计划任务。我可以使用具有相同参数的Unregister ScheduledTask删除任务。我可以使用Windows“任务调度程序”GUI验证删除。但是,不会删除文件夹(“\Some