0
Windows에서 예약 된 작업 2 개 : StartAppPool 및 StopAppPool이 있습니다.Powershell Format-Table (줄 바꿈 추가)은 열 사이에 공간을 추가합니다.
StartAppPool에는 작업 트리거가 하나만 있습니다. StopAppPool에는 2 개의 작업 트리거가 있습니다.
예약 된 작업 및 관련 속성의 상태를 표시 할 수있는 스크립트를 만들려고합니다.
Write-Host "9. Checking Task Scheduler Execution Status...." -BackgroundColor DarkCyan
$taskService = New-Object -ComObject "Schedule.Service"
$taskService.Connect($env:COMPUTERNAME)
$rootTaskFolder = $taskService.GetFolder('\')
$tasks = $rootTaskFolder.GetTasks(1) | Where-Object { $_.Name -in 'StopAppPool','StartAppPool' }
$TaskArray = @()
ForEach ($task in $tasks) {
$object = New-Object -TypeName PSObject
$object | Add-Member -Name 'Name' -MemberType Noteproperty -Value $task.Name
$object | Add-Member -Name 'TaskEnabled' -MemberType Noteproperty -Value $task.Enabled
$object | Add-Member -Name 'LastRunTime' -MemberType Noteproperty -Value $task.LastRunTime
$object | Add-Member -Name 'NextRunTime' -MemberType Noteproperty -Value $task.NextRunTime
$TaskXMLObject = [xml]$task.Xml
$CalendarTriggers = $TaskXMLObject.Task.Triggers.CalendarTrigger
$TaskTriggerArray = @()
ForEach ($CalendarTrigger in $CalendarTriggers) {
$object2 = New-Object -TypeName PSObject
$object2 | Add-Member -Name 'StartBoundary' -MemberType Noteproperty -Value (Get-Date $CalendarTrigger.StartBoundary.Replace('T',' ') -Format "dd/MM/yyyy hh:mm:ss tt")
$object2 | Add-Member -Name 'Enabled' -MemberType Noteproperty -Value $CalendarTrigger.Enabled
$DaysOfWeek = ($CalendarTrigger.ScheduleByWeek.DaysOfWeek | Get-Member -MemberType Property | Select -ExpandProperty Name) | ForEach-Object -Process { [enum]::parse([System.DayOfWeek],$_) } | Sort-Object #parsing the values into an enum will allow the objects to be sorted by day instead of alphabetical order
$object2 | Add-Member -Name 'DaysOfWeek' -MemberType Noteproperty -Value ($DaysOfWeek -join ', ')
$TaskTriggerArray += $object2
}
$object | Add-Member -Name 'StartBoundary' -MemberType NoteProperty -Value ($TaskTriggerArray.StartBoundary | Out-String)
$object | Add-Member -Name 'TriggerEnabled' -MemberType Noteproperty -Value ($TaskTriggerArray.Enabled | Out-String)
$object | Add-Member -Name 'DaysOfWeek' -MemberType Noteproperty -Value ($TaskTriggerArray.DaysOfWeek | Out-String)
$TaskArray += $object
}
$TaskArray | Format-Table Name, TaskEnabled, LastRunTime, NextRunTime, @{Label='StartBoundary';Expression={(($_.StartBoundary)}}, TriggerEnabled, DaysOfWeek -Wrap
불행히도 "StartBoundary"열은 여분의 공백을 추가하는 것으로 보이며이를 해결하는 방법을 생각할 수 없습니다. 다음은 샘플 출력입니다.
Name TaskEnabled LastRunTime NextRunTime StartBoundary TriggerEnabled DaysOfWeek
---- ----------- ----------- ----------- ------------- -------------- ----------
StartAppPool True 10/2/2017 6:00:00 AM 11/2/2017 6:00:00 AM 29/09/2016 06:00:00 AM true Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
StopAppPool True 10/2/2017 5:10:01 AM 11/2/2017 5:10:00 AM 29/09/2016 05:10:00 AM true Tuesday, Wednesday, Thursday, Friday, Saturday
05/11/2016 10:00:00 AM true Saturday
누구나 그 문제를 해결할 수있는 방법이 있습니까?
가 작동하지 않는 것 . 당신이 당신의 편에서 그것을 시도 할 수 있으면 공간이 손질되는 것을 보시겠습니까? –
@louisxie, 미안하지만 나는 여분의 간격을 실제로 보지 못합니다. 실제로 고급 서식을 사용하는 이유는 무엇입니까? 속성은 같은 것 같습니다. 추가 너비 서식을 사용해보십시오. 이와 같이 @ {Label = 'StartBoundary'; Expression = {$ _. StartBoundary}; Width = 10; Align = 'Center'} 또는 기본적으로 -AutoSize 스위치를 추가하십시오. –