我正在尝试创建一个Powershell脚本,该脚本从远程计算机中提取有关计划任务的特定信息。我的目标是每周运行一次以导出信息以保持文档更新。除了触发器信息是通用的(System.Xml.XmlElement)之外,我还能正常工作,我想在打开任务计划程序时显示摘要(下午6:50)每天 - 触发后,每小时重复一次,持续1天。)通过。我到目前为止的功能如下。我特别需要有关触发器的帮助。
function Get-TasktInfo {
[cmdletbinding()]
param (
[Parameter(ValueFromPipeline=$True,position=0,mandatory=$true)]$AllFolders
)
PROCESS{
foreach ($Folder in $AllFolders) {
if (($Tasks = $Folder.GetTasks(1))) {
$Tasks | Foreach-Object {
$xml = [xml]$_.xml;
New-Object -TypeName PSCustomObject -Property @{
'Name' = $_.name
'UserId' = ([xml]$_.xml).Task.Principals.Principal.UserID
'Triggers' = $(If($xml.task.triggers) {ForEach($task in ($xml.task.triggers | gm | Where{$_.membertype -eq "Property"})){$xml.task.triggers.$($task.name)}})
'Author' = ([xml]$_.xml).Task.RegistrationInfo.Author
'Description' = ([xml]$_.xml).Task.RegistrationInfo.Description
'State' = switch ($_.State) {
0 {'Unknown'}
1 {'Disabled'}
2 {'Queued'}
3 {'Ready'}
4 {'Running'}
Default {'Unknown'}
}
'Actions' = ($xml.Task.Actions.Exec | % { "$($_.Command) $($_.Arguments)" }) -join "`n"
'Path' = $_.path
}
}
}
}
}
END{
return $Tasks
}
}