【问题标题】:Error importing Scheduled Task xml with Powershell使用 Powershell 导入计划任务 xml 时出错
【发布时间】:2018-04-14 03:31:46
【问题描述】:

我有这个代码:

param(
[string]$target_server_name=$ENV:ComputerName,
[string]$task_path,
#[string]$task_user,
#[string]$task_pass,
[string]$drop_folder,
[string]$dest_folder
)

    $creds = Get-Credential
    $task_user = $creds.UserName
    $task_pass = $creds.GetNetworkCredential().Password

    robocopy $drop_folder $dest_folder /MIR
    $service = new-object -ComObject ("Schedule.Service")
    $service.Connect($target_server_name)
    $rootFolder = $service.GetFolder("\")
    Get-Item $task_path | % {
       $task_name = $_.Name.Replace('.xml', '')
       $task_xml = Get-Content $_.FullName
       $task = $service.NewTask(0)
       $task.XmlText = $task_xml
       $folder.RegisterTaskDefinition($task_name, $task, 6, $task_user, $task_pass, 1, $null)
    }

我正在尝试导入一些从 Windows 任务计划程序导出的任务。但我有这个错误:

谁能告诉我我做错了什么, 谢谢。

【问题讨论】:

  • 您可以使用 ISE 中的调试器一次单步执行一行代码。此外,当调试器处于活动状态时,您可以将鼠标指针悬停在变量上以查看它包含的内容。这应该更容易确定哪里出了问题。

标签: xml powershell scheduled-tasks


【解决方案1】:

尝试将您的$task.XmlText = $task_xml 替换为$task.XmlText = $task_xml -join "`n"

【讨论】:

  • 谢谢,你能解释一下区别吗??
  • Get-Content cmdlet 返回应转换为字符串的Object[]。它是通过join 运算符实现的。
【解决方案2】:

我也找到了这种方式,我觉得更好看,

$taskDefinition.XmlText = $taskxml.OuterXml

看看这个:enter link description here

【讨论】:

    猜你喜欢
    • 2015-07-10
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 2013-12-22
    • 1970-01-01
    相关资源
    最近更新 更多