Question Backup data avec ACL

Plus d'informations
il y a 16 ans 3 mois #5727 par BAUFFIGEAU
Backup data avec ACL a été créé par BAUFFIGEAU
[code:1]
###############################################
#Bauffigeau Vincent
#V2.1 du 26/11/2009
#
#Script de backup des DATA d'une partition D$ d'un poste avec copy des ACL
#Attention ne fonctionne pas avec UAC VISTA il faut exécuter le script à partir d'un poste XP ou 2003 serveur
#
#Utilisation: Créer un dossier migration et y coller le script avec l'exécutable robocopy.exe.
#Saisir le nom du poste à Sauvegarder.
#
#
##############################################


##############################################
#Fonction InputBox
#Exécute Permet d'afficher une inputbox
#
#Entrée Nom de la fenetre Message à afficher
#
#Attention il faut indique dans la fonction le compte et le password du compte d'exécution de robocopy
#
##############################################


Function InputBox ($NameWindow,$Message)
{
# $Message ,$NameWindow,\"\" <-- Valuer par défaut à afficher
return ([Microsoft.VisualBasic.Interaction]::InputBox($Message ,$NameWindow,\"\"«») )
}


##############################################
#Fonction SaveD
#Exécute Robocopy
#Copy les données du poste (d$) dans un dossier D:\Migration du poste backup
#Entrée Nom du poste à Sauvegarder
#
#Attention il faut indique dans la fonction le compte et le password du compte d'exécution de robocopy
#
##############################################

Function SaveD ()
{
$popup= New-Object -ComObject wscript.shell

while (1)
{
$ComputerName = InputBox \"Nom du Poste\" \"Saisir le nom du poste à sauvegarder ex: PWF01234\"

if ( $ComputerName -eq \"\" )
{
return(\"\"«»)
}
$confirmation=$popup.popup(\"Confirmez-vous la sauvegarde du poste $computername ?\",0,\"Confirmation\",36)
#6 = OUI
if ( $confirmation -ne 6 )
{
Continue
}
ping -n 1 $ComputerName > $null
If ($LASTEXITCODE -ne 0)
{
# Popup d'erreur
$confirmation=$popup.popup(\"Erreur de saisie du nom de poste ou poste non joignable\",0,\"Confirmation\",16)
continue
}
break
}


#Write-Host (\"Ping réussi !\"«»)
#Création du dossier de sauvegarde du poste sur le proxy
New-Item -name $ComputerName -type directory -force

#Nom du poste ou se trouve le script
$ServerName = gc env:computername
#convertion du mot de passe en securstring
#$pwd= ConvertTo-SecureString $PwdSaisie -AsPlainText -force
#Début backup
$Execute = New-Object System.Diagnostics.ProcessStartInfo
$Execute.Filename = \"Robocopy\"
$Execute.WindowStyle= [System.Diagnostics.ProcessWindowStyle]::«»(\"Normal\"«»)
$Execute.UseShellExecute=$false
$Execute.UserName=$US.username.split(\"\\"«»)[-1]
$Execute.Password=$US.password
#Emplacement de Robocopy.exe
$Execute.WorkingDirectory=\"d:\migration\\"
#Argument de robocopy
#$Execute.Arguments= \" \\\" + $ComputerName + \"\D$\" + \" \\\" + $ServerName + \"\D$\Migration\\" + $ComputerName + \"\\" + \" /ZB\" + \" /COPYALL\" + \" /E\" + \" /SEC\" + \" /LOG:\" + \"d:\Migration\\" + $ComputerName + \"Save.log\" + \" /TEE\" + \" /R:1\" + \" /W:2\"
$Execute.Arguments= \" \\$ComputerName\D$ \\$ServerName\D$\Migration\$ComputerName\ /ZB /COPYALL /E /SEC /LOG:d:\Migration\$($ComputerName)_Save.log /TEE /R:1 /W:2\"
#execution de la commande
$Global:«»Proc=[Diagnostics.Process]::«»Start($Execute)
}

#Main
#clesse dotnet pour inputbox
[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')
#Popup
$popup= New-Object -ComObject wscript.shell
#fenetre de loggin
$script:US = Get-Credential $env:username
#6 = Oui
$confirmation=6

while ($confirmation -eq 6)
{
SaveD

#Popup si confirmation retour =6
$confirmation=$popup.popup(\"Avez-vous d'autres poste à sauvegarder?\",0,\"Confirmation\",36)
}

#\"Fin du script\"
[/code:1]<br><br>Message édité par: VINCENT, à: 26/11/09 07:56

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.057 secondes
Propulsé par Kunena