Powershell v5.1 中的问题 w/Register-ScheduledTask
Problem w/Register-ScheduledTask in Powershell v5.1
好的,我有以下代码,它从我的主机检索文件进行调整,然后在我的测试机上创建一个计划任务。
程序来自测试机运行。这就像它应该的那样工作。
$SRCXMLPath = "\Dellxps8920\BEKDocs-DellXPS8920\TaskSchedulerExports\Tasks"
$DestXMLPath = "G:\BEKDocs\TaskSchedulerExports\Standard"
$XMLFile = "Backup Report.xml"
$GCArgs = @{Path =
$(Join-Path -Path $SRCXMLPath -ChildPath $XMLFile)}
[xml]$xml = Get-Content @GCArgs
$xml.Task.RegistrationInfo.Author #Has no effect on running!
$xml.Task.Principals.Principal.UserId
<#+----------------------------------------------------+
| Note: You can use either the text description of |
| the account or the Registry designation. |
+----------------------------------------------------+
#>
$xml.Task.Principals.Principal.UserId =
'DellXPS8700\Bruce'
# "S-1-5-21-1944453205-1635450679-2182824496-1001"
$xml.save()
& schtasks.exe /create /tn "Backup Report" /xml "$(Join-Path -Path $DestXMLPath -ChildPath $XMLFile)"
但是,我正在尝试通过 Register-ScheduledTask cmdlet 将其转换为完整的 PowerShell,以消除对 schtasks.exe 的调用。
使用以下测试代码,我始终得到显示的错误。
[xml]$Task = Get-Content "G:\BEKDocs\TaskSchedulerExports\Standard\Backup Report.xml"
$RTArgs = @{TaskName = "Backup Report"
TaskPath = "\"
XML = $Task
Force = $True}
Register-ScheduledTask @RTArgs
错误信息:
Register-ScheduledTask @RTArgs
Register-ScheduledTask : The task XML is malformed.
(1,2)::ERROR: incorrect document syntax
At line:7 char:1
+ Register-ScheduledTask @RTArgs
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (PS_ScheduledTask:Root/Microsoft/.
..S_ScheduledTask) [Register-ScheduledTask], CimException
+ FullyQualifiedErrorId : HRESULT 0x8004131a,Register-ScheduledTask
有人有什么想法吗?
请注意:.xml 文件与 post 顶部的代码完美配合,或者如果它是在 TaskSheceuler 中手动导入的。
您正在将 XML 文件作为 XML 对象读取,但 cmdlet 需要一个字符串对象。
Register-ScheduledTask
[-Force]
[[-Password] <String>]
[[-User] <String>]
[-TaskName] <String>
[[-TaskPath] <String>]
[-Xml] <String>
[-CimSession <CimSession[]>]
[-ThrottleLimit <Int32>]
[-AsJob]
[<CommonParameters>]
更改行以将文件作为一个字符串读入,您应该已准备就绪。
$Task = Get-Content "G:\BEKDocs\TaskSchedulerExports\Standard\Backup Report.xml" -raw
好的,我有以下代码,它从我的主机检索文件进行调整,然后在我的测试机上创建一个计划任务。 程序来自测试机运行。这就像它应该的那样工作。
$SRCXMLPath = "\Dellxps8920\BEKDocs-DellXPS8920\TaskSchedulerExports\Tasks"
$DestXMLPath = "G:\BEKDocs\TaskSchedulerExports\Standard"
$XMLFile = "Backup Report.xml"
$GCArgs = @{Path =
$(Join-Path -Path $SRCXMLPath -ChildPath $XMLFile)}
[xml]$xml = Get-Content @GCArgs
$xml.Task.RegistrationInfo.Author #Has no effect on running!
$xml.Task.Principals.Principal.UserId
<#+----------------------------------------------------+
| Note: You can use either the text description of |
| the account or the Registry designation. |
+----------------------------------------------------+
#>
$xml.Task.Principals.Principal.UserId =
'DellXPS8700\Bruce'
# "S-1-5-21-1944453205-1635450679-2182824496-1001"
$xml.save()
& schtasks.exe /create /tn "Backup Report" /xml "$(Join-Path -Path $DestXMLPath -ChildPath $XMLFile)"
但是,我正在尝试通过 Register-ScheduledTask cmdlet 将其转换为完整的 PowerShell,以消除对 schtasks.exe 的调用。 使用以下测试代码,我始终得到显示的错误。
[xml]$Task = Get-Content "G:\BEKDocs\TaskSchedulerExports\Standard\Backup Report.xml"
$RTArgs = @{TaskName = "Backup Report"
TaskPath = "\"
XML = $Task
Force = $True}
Register-ScheduledTask @RTArgs
错误信息:
Register-ScheduledTask @RTArgs
Register-ScheduledTask : The task XML is malformed.
(1,2)::ERROR: incorrect document syntax
At line:7 char:1
+ Register-ScheduledTask @RTArgs
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (PS_ScheduledTask:Root/Microsoft/.
..S_ScheduledTask) [Register-ScheduledTask], CimException
+ FullyQualifiedErrorId : HRESULT 0x8004131a,Register-ScheduledTask
有人有什么想法吗?
请注意:.xml 文件与 post 顶部的代码完美配合,或者如果它是在 TaskSheceuler 中手动导入的。
您正在将 XML 文件作为 XML 对象读取,但 cmdlet 需要一个字符串对象。
Register-ScheduledTask
[-Force]
[[-Password] <String>]
[[-User] <String>]
[-TaskName] <String>
[[-TaskPath] <String>]
[-Xml] <String>
[-CimSession <CimSession[]>]
[-ThrottleLimit <Int32>]
[-AsJob]
[<CommonParameters>]
更改行以将文件作为一个字符串读入,您应该已准备就绪。
$Task = Get-Content "G:\BEKDocs\TaskSchedulerExports\Standard\Backup Report.xml" -raw