Snapshot and cddrive check

PowerCLI PS script
This commit is contained in:
Timur 2024-06-24 07:31:56 +00:00
parent a836174291
commit bad4e35050

View file

@ -0,0 +1,56 @@
Import-Module VMware.VimAutomation.Core
Set-PowerCLIConfiguration -InvalidCertificateAction Prompt -Confirm:$false
# Verbindung vCenter
Connect-VIServer -Server "SERVER" -User "administrator@vsphere.local" -Password "PASSWORD"
$clusterName = "CLUSTER"
$folderName = "FOLDER"
# Get the cluster object
$cluster = Get-Cluster -Name $clusterName
# Get the folder object recursively
$folder = Get-Folder -Name $folderName -Location (Get-Folder -NoRecursion | Where-Object { $_.Name -eq $folderName })
# Get all VMs in the specified folder and its subfolders that are on hosts in the specified cluster
$vms = Get-VM -Location $folder | Where-Object { $_.VMHost.Parent -eq $cluster }
# Check jede VM und prüfe die CD/DVD-Laufwerke und Snapshots
foreach ($vm in $vms) {
$cdDrives = Get-CDDrive -VM $vm
$snapshots = Get-Snapshot -VM $vm -ErrorAction SilentlyContinue
# Prüfe, ob ein verbundenes CD/DVD-Laufwerk vorhanden ist
$cdDriveConnected = $false
foreach ($cdDrive in $cdDrives) {
if ($cdDrive.ConnectionState.Connected) {
$cdDriveConnected = $true
break
}
}
# Prüfe, ob Snapshots vorhanden sind
$snapshotExists = $false
if ($snapshots) {
$snapshotExists = $true
}
# Füge das Ergebnis zur Liste hinzu
$results += [PSCustomObject]@{
VMName = $vm.Name
CDDriveConnected = $cdDriveConnected
SnapshotExists = $snapshotExists
}
}
# Generiere einen Dateinamen mit aktuellem Datum und Uhrzeit
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm-ss"
$filepath = "C:\Users\DeineMuddaTV\Desktop\Output\Snapshot-and-CD-Check_$timestamp.csv"
# Exportiere die Ergebnisse in eine CSV-Datei
$results | Export-Csv -Path $filepath -NoTypeInformation
# Trenne die Verbindung zum vCenter-Server
Disconnect-VIServer -Confirm:$false