powershell 在特定文件夹中的一组服务器上停用所有“就绪/正在运行的任务”,并能够再次激活这些任务

dy1byipe  于 2022-11-10  发布在  Shell
关注(0)|答案(1)|浏览(115)

我正在寻找一个PowerShell脚本,可以禁用所有的任务是“就绪”或“运行”在3个或更多服务器上的任务计划程序中的特定文件夹中的所有任务。
在我们更新软件之后,我应该能够再次激活被脚本禁用的所有任务,不仅激活所有被禁用的脚本,而且特别是被脚本禁用的那些。
我知道这应该是可能的,但我不能组装单个部件。对于我的逻辑能力来说,所有比一条命令更多的东西都太多了。

f2uvfpb9

f2uvfpb91#

<#getScheduledTasksinfo-FreeholdReboots.ps1
.Synopsis
   PowerShell script to list all Scheduled Tasks, the User ID and the State
.DESCRIPTION
   This script scans the content of the c:\Windows\System32\tasks and searches the UserID XML value. 
   The output of the script is a comma-separated log file containing the Computername, Task name, UserID, Status.
.Author
   UNKNOWN
.Tweaker
   Patrick Burwell

# >

Remove-Item -Force "D:\batch\Logs\Maintenance\$day-SchedTasks-Reboots.csv"
$logfilepath = "D:\batch\Logs\Maintenance\$day-SchedTasks-Reboots.csv"
$ErrorActionPreference = "SilentlyContinue"

$serverlist = gc D:\batch\input\servers.txt

foreach($server in $serverlist){
    if($server -like '#*')
    {
        continue
    }
    Write-Host $server

    $path = "\\" + $server + "\c$\Windows\System32\Tasks"
    $tasks = Get-ChildItem -Path $path -File

    if ($tasks)
    {
        Write-Verbose -Message "I found $($tasks.count) tasks for $server"
    }

    foreach ($item in $tasks)
    {
        if($item -like 'Optimize Start Menu*'){continue}
        if ($item -like "User_Feed_Synchronization*"){continue}
        if($item -like 'ComputeSensorWatchDog*'){continue}
        if ($item -like "Google*"){continue}
        $AbsolutePath = $path + "\" + $item.Name
        $task = [xml] (Get-Content $AbsolutePath)
        $states = (Get-ScheduledTask -Verbose -TaskPath '\' -TaskName "reboot")
        [STRING]$check = $task.Task.Principals.Principal.UserId
        [STRING]$state = $states.State
        if ($task.Task.Principals.Principal.UserId)
        {
        if($item -ilike "*reboot*"){
          Write-Verbose -Message "Writing the log file with values for $server"           
          Add-content -path $logfilepath -Value "$server,$item,$check,$state"
        }
        else {continue}
        }

    }
}

相关问题