first commit
This commit is contained in:
56
Hyper-V/Report_Checkpoint_HyperV.ps1/README.md
Normal file
56
Hyper-V/Report_Checkpoint_HyperV.ps1/README.md
Normal file
@@ -0,0 +1,56 @@
|
||||
## Funzionalità dello Script
|
||||
|
||||
Questo script PowerShell serve per **monitorare e documentare lo stato dei checkpoint (snapshot) delle macchine virtuali Hyper-V** presenti sul server locale.
|
||||
|
||||
### Operazioni Principali
|
||||
|
||||
Lo script esegue le seguenti attività:
|
||||
|
||||
**Raccolta Informazioni**
|
||||
- Recupera l'elenco completo di tutte le VM Hyper-V presenti sul sistema locale
|
||||
- Per ogni VM, conta il numero di checkpoint esistenti
|
||||
- Registra lo stato operativo corrente di ogni macchina virtuale (Running, Off, Saved, ecc.)
|
||||
|
||||
**Generazione Report**
|
||||
- Crea un report strutturato contenente tre informazioni per ogni VM:
|
||||
- **NomeVM**: il nome della macchina virtuale
|
||||
- **StatoOperativo**: lo stato attuale (accesa, spenta, salvata)
|
||||
- **NumeroCheckpoint**: il conteggio totale dei checkpoint presenti
|
||||
|
||||
**Output**
|
||||
- Visualizza un'anteprima formattata a schermo per una verifica immediata
|
||||
- Esporta automaticamente i dati in formato CSV nel percorso `C:\temp\Report_Checkpoint_HyperV.csv`
|
||||
- Il CSV utilizza codifica UTF-8 e virgola come delimitatore
|
||||
|
||||
---
|
||||
|
||||
## Privilegi di Amministratore
|
||||
|
||||
**Lo script DEVE essere eseguito con privilegi di amministratore.**
|
||||
|
||||
### Motivi Tecnici
|
||||
|
||||
I cmdlet utilizzati dallo script richiedono permessi elevati:
|
||||
|
||||
- **Get-VM**: richiede diritti amministrativi per accedere al servizio di gestione Hyper-V (VMMS)
|
||||
- **Get-VMSnapshot**: necessita di permessi per interrogare la configurazione delle VM e i relativi checkpoint
|
||||
|
||||
Senza privilegi elevati, lo script genererà errori di accesso negato e non potrà completare l'esecuzione.
|
||||
|
||||
### Come Eseguirlo Correttamente
|
||||
|
||||
Apri PowerShell con privilegi amministrativi:
|
||||
- Cerca "PowerShell" nel menu Start
|
||||
- Clicca con il tasto destro e seleziona **"Esegui come amministratore"**
|
||||
- Esegui lo script dal prompt elevato
|
||||
|
||||
---
|
||||
|
||||
## Utilità Pratica
|
||||
|
||||
Questo script è particolarmente utile per:
|
||||
|
||||
- **Auditing**: monitorare quanti checkpoint esistono per ciascuna VM
|
||||
- **Gestione dello spazio**: identificare VM con troppi checkpoint che occupano spazio su disco
|
||||
- **Compliance**: documentare periodicamente lo stato delle VM per scopi di conformità
|
||||
- **Housekeeping**: pianificare operazioni di pulizia dei checkpoint obsoleti
|
||||
34
Hyper-V/Report_Checkpoint_HyperV.ps1/verify-checkpoints.ps1
Normal file
34
Hyper-V/Report_Checkpoint_HyperV.ps1/verify-checkpoints.ps1
Normal file
@@ -0,0 +1,34 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Report Checkpoint Hyper-V
|
||||
.DESCRIPTION
|
||||
Script per recuperare l'elenco delle VM Hyper-V locali, contare i relativi
|
||||
checkpoint (snapshot) ed esportare il risultato in un file CSV.
|
||||
#>
|
||||
# Configurazione percorso di esportazione
|
||||
$ExportPath = "C:\temp\Report_Checkpoint_HyperV.csv"
|
||||
# Verifica che la directory di destinazione esista, altrimenti la crea
|
||||
$TargetDir = Split-Path $ExportPath
|
||||
if (-not (Test-Path $TargetDir)) {
|
||||
New-Item -ItemType Directory -Path $TargetDir | Out-Null
|
||||
}
|
||||
Write-Host "Recupero delle informazioni dalle VM in corso..." -ForegroundColor Cyan
|
||||
# Recupera tutte le Virtual Machine
|
||||
$VMs = Get-VM
|
||||
# Elabora i dati creando oggetti personalizzati
|
||||
$Report = foreach ($VM in $VMs) {
|
||||
# L'uso di @() garantisce che la proprietà .Count restituisca un valore corretto
|
||||
# anche se ci sono 0 o esattamente 1 checkpoint.
|
||||
$Checkpoints = @(Get-VMSnapshot -VMName $VM.Name)
|
||||
[PSCustomObject]@{
|
||||
NomeVM = $VM.Name
|
||||
StatoOperativo = $VM.State
|
||||
NumeroCheckpoint = $Checkpoints.Count
|
||||
}
|
||||
}
|
||||
# Double check: stampa a video i risultati per un controllo rapido
|
||||
Write-Host "`n--- Anteprima Report ---" -ForegroundColor Yellow
|
||||
$Report | Format-Table -AutoSize
|
||||
# Esportazione del file CSV
|
||||
$Report | Export-Csv -Path $ExportPath -NoTypeInformation -Encoding UTF8 -Delimiter ","
|
||||
Write-Host "Report generato e salvato correttamente in: $ExportPath" -ForegroundColor Green
|
||||
Reference in New Issue
Block a user