通过Powershell检索计划任务触发器详细信息

时间:2017-09-21 22:08:53

标签: powershell

我正在尝试创建一个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
}

}

0 个答案:

没有答案