-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBCP_USER _GUI-ex1.ps1
More file actions
54 lines (42 loc) · 2.27 KB
/
BCP_USER _GUI-ex1.ps1
File metadata and controls
54 lines (42 loc) · 2.27 KB
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
Add-Type -AssemblyName PresentationFramework
function Start-Backup {
param ($source, $target)
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
$fullTarget = Join-Path $target $timestamp
New-Item -ItemType Directory -Force -Path $fullTarget | Out-Null
robocopy $source $fullTarget /MAXAGE:7 /E /SL /XJ /XD "Temp" /R:0 /W:0 /COPY:DAT /MT:32
}
$sourceAppData = "C:\Users\nazwa_uzytkownika\AppData"
$targetAppData = "D:\BCP_USERS\nazwa_uzytkownika\AppData"
$sourceDocuments = "C:\Users\nazwa_uzytkownika\Downloads"
$targetDocuments = "D:\BCP_USERS\nazwa_uzytkownika\Downloads"
$sourceDesktop = "C:\Users\nazwa_uzytkownika\Desktop"
$targetDesktop = "D:\BCP_USERS\nazwa_uzytkownika\Desktop"
$sourceProgramData = "C:\ProgramData"
$targetProgramData = "D:\BCP_USERS\ProgramData"
$sourcePF1 = "C:\Program Files\nazwa_programu"
$targetPF1 = "D:\BCP_USERS\Program Files\nazwa_programu"
$choice = [System.Windows.MessageBox]::Show("Wykonać kopię zapasową teraz ?", "Kopia zapasowa profilu, ustawień i programów użytkownika", "YesNoCancel", "Question")
switch ($choice) {
"Yes" {
Start-Backup -source $sourceAppData -target $targetAppData
Start-Backup -source $sourceDocuments -target $targetDocuments
Start-Backup -source $sourceDesktop -target $targetDesktop
Start-Backup -source $sourceProgramData -target $targetProgramData
Start-Backup -source $sourcePF1 -target $targetPF1
[System.Windows.MessageBox]::Show("Zadanie wykonania kopii zapasowej zostało ukończone!")
}
"No" {
[System.Windows.MessageBox]::Show("Nie wykonano kopii zapasowej.`nPonowna próba za 3h.", "Opóźnienie")
Start-Sleep -Seconds (3 * 60 * 60)
Start-Backup -source $sourceAppData -target $targetAppData
Start-Backup -source $sourceDocuments -target $targetDocuments
Start-Backup -source $sourceDesktop -target $targetDesktop
Start-Backup -source $sourceProgramData -target $targetProgramData
Start-Backup -source $sourcePF1 -target $targetPF1
[System.Windows.MessageBox]::Show("Zadanie wykonania kopii zapasowej zostało ukończone!")
}
"Cancel" {
[System.Windows.MessageBox]::Show("Przerwano wykonanie kopii zapasowej.")
}
}