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
|
#######################
#### Fonction Popup ###
#######################
Function Set-Popup
{
$WshShell = New-Object -ComObject wscript.shell
$WshShell.Popup($args[0],0,'Avertissement')
Exit
}
#######################################
### 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}
###############################
### 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 XXX.XXX.XXX.XXX -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"}
#########################################################
### 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=53687091200
$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 -gt 8) {Set-popup "ERREUR: copie impossible pour repertoire mes documents"}
# Ou alors pour tester seulement 2 valeurs => if ($LASTEXITCODE -eq 8 -or $LASTEXITCODE -eq 16) {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 -gt 8) {Set-popup "ERREUR: copie impossible pour repertoire favoris"}
# Ou alors pour tester seulement 2 valeurs => if ($LASTEXITCODE -eq 8 -or $LASTEXITCODE -eq 16) {Set-popup "ERREUR: copie impossible pour repertoire favoris"}
$source3="$env:HOMEPATH\Desktop"
$destination3="E:\Sauvegarde\$localusername\Desktop"
robocopy $source3 $destination3 /MIR /COPYALL
if ($LASTEXITCODE -gt 8) {Set-popup "ERREUR: copie impossible pour repertoire bureau"}
# Ou alors pour tester seulement 2 valeurs => if ($LASTEXITCODE -eq 8 -or $LASTEXITCODE -eq 16) {Set-popup "ERREUR: copie impossible pour repertoire bureau"} |
Partager