Bonjour a tous,
Je suis en train de travailler sur un script de sauvegarde des postes utilisateurs, et il fonctionne parfaitement. Pour le peaufiner un peu, j'essaie d'ajouter une ligne de script me permettant d'afficher un message lorsqu'une action ne s'effectue pas et la ...problème.
Voici mon code:
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107 ####################### #### Fonction Popup ### ####################### Function Set-Popup { $WshShell = New-Object -ComObject wscript.shell $WshShell.Popup($args[0],0,'Avertissement') Exit } ####################### ### Fonction Email ### ####################### ### Function Set-Email ### { ### $AdminMail = @{ ### from="tolleneer.f@mipih.fr" ### to="csim-infrastructure@mipih.fr" ### body="Sauvegarde en erreur" ### subject="$env:computername@mipih.fr" ### smtpserver="smtpint.mipih.net" ### } ### send-mailmessage @AdminMail ### Exit ### } ############################### ### fonction calcul dossier ### ############################### function CalculTailleFichier { param ([string]$chemin) $i=0 gci $chemin -recurse -force| foreach -process {$i+=$_.length} return $i } ###################################################################### ### test de la connexion avec le serveur ou se situe la sauvegarde ### ###################################################################### $testcnx= Test-Connection 10.194.5.84 -Count 1 if (-Not($testcnx)) {Set-Popup "Serveur de sauvegarde inaccessible"} ################################################################################# ### import du module AD et test si utilisateur et pc sont bien reliés dans AD ### ################################################################################# Import-Module ActiveDirectory $description= Get-ADComputer $env:computername -properties * | select -Expandproperty Description $username= Get-ADUser $env:username -properties * | select -Expandproperty Name $ismycomputer= $description.IndexOf($username, [System.StringComparison]::OrdinalIgnoreCase) -ne -1 if (-Not($ismycomputer)) {Set-Popup "Sauvegarde impossible pour cet utilisateur"} ####################################### ### Message voulez vous sauvegarder ### ####################################### $YES=6 $shell=new-object -com wscript.shell $ret=$shell.popup("Voulez-vous sauvegarder?",0,"Sauvegarde",4+32) if ($ret -ne $YES) {exit} ######################################################### ### creation du chemin de sauvegarde si non existant ### ######################################################### $localusername=$env:username $destination=E:\Sauvegarde\$localusername\ if (-Not($destination)) {new-item -path E:\Sauvegarde\ -name $localusername -itemtype directory} ##################################################### ### Calcul de la taille de sauvegarde a effectuer ### ##################################################### $TailleMax=5368709120 $Taille1=CalculTailleFichier $env:HOMEPATH\Documents $Taille2=CalculTailleFichier $env:HOMEPATH\Favorites $Taille3=CalculTailleFichier $env:HOMEPATH\Desktop if ($Taille1+$Taille2+$Taille3 -gt $TailleMax) {Set-Popup "Sauvegarde impossible: Taille maximum de sauvegarde atteinte"} ##################################################### ### sauvegarde de bureau favoris et mes documents ### ##################################################### $source1="$env:HOMEPATH\Documents" $destination1="E:\Sauvegarde\$localusername\Documents" robocopy $source1 $destination1 /MIR /COPYALL if ($LASTEXITCODE -ne 0) {Set-popup "ERREUR: copie impossible pour repertoire mes documents"} $source2="$env:HOMEPATH\Favorites" $destination2="E:\Sauvegarde\$localusername\Favorites" robocopy $source2 $destination2 /MIR /COPYALL if ($LASTEXITCODE -ne 0) {Set-popup "ERREUR: copie impossible pour repertoire favoris"} $source3="$env:HOMEPATH\Desktop" $destination3="E:\Sauvegarde\$localusername\Desktop" robocopy $source3 $destination3 /MIR /COPYALL if ($LASTEXITCODE -ne 0) {Set-popup "ERREUR: copie impossible pour repertoire bureau"}
Mon problème se situe sur cette partie (ligne 96) :
Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part if ($LASTEXITCODE -ne 0) {Set-popup "ERREUR: copie impossible pour repertoire mes documents"}
Quand je n’exécute pas cette partie du code, mon script fonctionne nickel et la sauvegarde s'effectue normalement... et quand je l’exécute ... j'ai en permanence l'erreur copie impossible pour etc ...
Si quelqu'un avait une idée ça serait vraiment super ... j'ai tenté pas mal de truc mais sans succès. merci a vous.
Partager