Управление задачами при помощи PowerShell

Небольшой модуль для PowerShell позволяющий управлять задачами Windows.

Function Get-ScheduledTasks
{
              [CmdletBinding()]
              param (
                      [ValidateNotNullOrEmpty()]
                      [string] $TaskName,
                      [string] $HostName )
              process
              {
if ( $HostName ) { $HostName = "/S $HostName" }
 $ScheduledTasks = SCHTASKS.EXE /QUERY /FO CSV /NH $HostName
foreach ( $Item in $ScheduledTasks )
                      {
if ( $Item -ne "" )
                              {
 $Item = $Item -replace("""|\s","")
 $SplitItem = $Item -split(",")
 $ScheduledTaskName = $SplitItem[0]
 $ScheduledTaskStatus = $SplitItem[3]
 if ( $ScheduledTaskName -ne "" )
                                      {
 if ( $ScheduledTaskStatus -eq "" )
  {
 $ScheduledTaskStatus = "Not Running"
                                               }
 else
 
                                              {
$ScheduledTaskStatus = "Running"
                                              }
 
$objScheduledTaskName = New-Object System.Object
$objScheduledTaskName | Add-Member -MemberType NoteProperty -Name TaskName -Value $ScheduledTaskName
$objScheduledTaskName | Add-Member -MemberType NoteProperty -Name TaskStatus -Value $ScheduledTaskStatus
$objScheduledTaskName | Where-Object { $_.TaskName -match $TaskName }
                                      }
                              }
                        }
               }
      }
 Function Start-ScheduledTask
      {
 
              [CmdletBinding()]
              param (
                      [ValidateNotNullOrEmpty()]
                      [Parameter(ValueFromPipelineByPropertyName=$true,Mandatory=$true)]
                      [string] $TaskName,
                      [string] $HostName )
 process
              {
                      if ( $HostName ) { $HostName = "/S $HostName" }
                      SCHTASKS.EXE /RUN /TN $TaskName $HostName
              }
      }
      Function Stop-ScheduledTask
       {
             [CmdletBinding()]
              param (
                       [ValidateNotNullOrEmpty()]
                      [Parameter(ValueFromPipelineByPropertyName=$true,Mandatory=$true)]
                      [string] $TaskName,
                      [string] $HostName )
 
              process
              {
                      if ( $HostName ) { $HostName = "/S $HostName" }
                      SCHTASKS.EXE /END /TN $TaskName $HostName
              }
      }
      Export-ModuleMember Get-ScheduledTasks, Start-ScheduledTask, Stop-ScheduledTask

Использовать очень просто. Загружаем модуль.

> Import-Module .\PowerScheduledTasks.psm1

Чтобы получить список задач используем Get-ScheduledTasks, конкретную задачу выбираем (поддерживаются регулярные выражения):

> Get-ScheduledTasks -TaskName Task1

Поддерживается подключение к удаленной системе

> Start-ScheduledTask -TaskName Task1 -HostName Computer1
> Stop-ScheduledTask -TaskName Task1 -HostName Computer1

Можно использовать каналы

> Get-ScheduledTasks | Stop-ScheduledTask
Теги:

Понравилась статья? Оставьте комментарий или подпишитесь на RSS рассылку.

Комментарии

Комментариев пока что нет

Оставить комментарий

(required)

(required)