Cliché instantanée Powershell
Bonjour,
Je vous explique mon problème.
J'ai une trentaine de serveur à gérer ou je réalise des clichés toutes les 6 heures. Mon soucis c'est que j'ai aucune remonté d'information, du coup je voudrais réaliser un script powershell qui permet de comparer les lecteurs du serveur (C:, D:, G: ) par exemple, et les lettres des clichés réalisés durant les 6 dernières heures et m'afficher "OK" si le volume a un cliché de moins de 6heures, sinon m'afficher "KO".
J'ai fais un petit script powershell sauf qu'il ne m'affiche pas les volumes sans clichés.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| $BackupDay = 6
$server = $env:COMPUTERNAME
Set-ExecutionPolicy unrestricted -force
Function Get-DriveLetters
{
$volumes = @{}
$allvolumes = Get-WmiObject -Class "win32_volume" -ComputerName $server | Select DeviceID, Name
foreach ($v in $allvolumes)
{
$volumes.add($v.DeviceID, $v.Name)
}
$volumes
}
Function Get-vol{
$test2=@{}
$test = Get-PSdrive -PSProvider filesystem | Select root, Name
foreach ($t in $test)
{
$test2.add($t.Root, $t.Name)
}
}
$teste = Get-vol
write-host $teste
Function Check-ShadowCopies
{
$allshadowcopies = @()
foreach ($s in $server)
{
$driveletters = Get-DriveLetters $s
$shadowcopies = Get-WmiObject -Class "Win32_shadowcopy" | Select InstallDate, VolumeName
foreach ( $copy in $shadowcopies)
{
$shadowcopy = New-Object System.object
$date = [datetime]::ParseExact($copy.InstallDate.Split(".")[0], "yyyyMMddHHmmss", $null)
if ( $date -ge (Get-Date).Addhours(-$backupday))
{
## La variable $Etat prend la valeur "OK" ##
$Etat = "OK"
## On ajoute à l'objet personnalisé $cliches une propriété Etat où l'on mettra la valeur retournée ##
$shadowcopy| Add-Member -Type NoteProperty -Name Select -Value $driveletters.item($copy.VolumeName)
$shadowcopy | Add-Member -Type NoteProperty -Name Etat -Value $Etat
$shadowcopy | Add-Member -Type NoteProperty -Name Date -Value $date
## On ajoute les valeurs retournées de la variable $cliches dans le tableau $Tableau ##
$allshadowcopies += $shadowcopy
}
## Fin du if ##
## Sinon ##
else
{
$Etat = "Ko"
$shadowcopy | Add-Member -Type Noteproperty -Name select -Value $teste
}
}
$test2
$allshadowcopies | Sort-Object Etat,Driveletter -Descending
}
}
$checkshadowcopy = Check-Shadowcopies
$checkshadowcopy | Out-File C:\Users\Administrateur\Desktop\test.txt |