PowerShell/VMware/vCenter/KillQueuedTasks.ps1

51 lines
1.5 KiB
PowerShell

<#
.SYNOPSIS
Skript zum Beenden von hängenden Tasks im Status "Queued"
.DESCRIPTION
Dieses Skript wurde erstellt, um im vCenter Jobs mit dem Status "Queued" abzubrechen.
Dies kann notwendig sein, wenn Networker Backups abbrechen / sich aufhängen, deren Jobs man im vCenter nicht per GUI abgebrochen bekommt.
Das Skript kann mit folgenden Parametern aufgerufen werden:
-vcenter: gibt an, mit welchem vCenter sich das Skript verbinden soll
-Username: Benutzername zum Verbinden mit dem vCenter
-Password: Kennwort zum Verbinden mit dem vCenter
.Example
KillQueuedTasks.ps1 -vCenter "vmware.asl.local" -Username "your user" -Password "your password"
.LINK
.NOTES
#>
# Parameterabfrage
PARAM (
[Parameter(HelpMessage="vCenter Server Hostname/IP Address", Mandatory=$true)][string] $vCenter,
[Parameter(HelpMessage="vCenter account's username.", Mandatory=$true)][string] $Username,
[Parameter(HelpMessage="vCenter account's password.", Mandatory=$true)][string] $Password
)
cls
#Initialisierung der Powershell Module
import-module vmware.vimautomation.core
#Verbindung mit vCenter
Connect-VIServer $vCenter -user $Username -Password $Password
#Jobs ermitteln
$hangingtasks = get-task -Status queued | select ID
#Alle gefundenen Jobs abbrechen
foreach ($task in $hangingtasks) {
write-host "Killing Task: " $task.Id
Get-Task | where {$_.id -eq $task.Id } | stop-task -confirm:$false
}
#vom vCenter trennen
disconnect-viserver -Server $vCenter -Confirm:$false