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 powershell : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager