Ten skrypt PowerShell automatyzuje proces migracji udziałów sieciowych z komputera zdalnego na lokalny serwer. Wykorzystuje pliki XML zawierające informacje o udziałach oraz ich uprawnieniach, aby odtworzyć strukturę folderów i przypisać odpowiednie prawa dostępu NTFS oraz SMB. Jak utworzyć pliki XML z udziałami i uprawnieniami opisano w punkcje 8.
- Import udziałów z pliku XML (
shares.xml) - Import uprawnień z pliku XML (
sharesAccess.xml) - Tworzenie struktury folderów lokalnych
- Kopiowanie danych z zachowaniem uprawnień NTFS (Robocopy)
- Tworzenie udziałów SMB z odpowiednimi uprawnieniami (Full, Change, Read)
- Logowanie przebiegu operacji do plików tekstowych
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
ComputerName |
string | ✅ | Nazwa komputera źródłowego |
Destination |
string | ✅ | Ścieżka lokalna docelowa |
ExportedSharesFile |
string | ❌ | Ścieżka do pliku XML z udziałami (domyślnie C:\shares.xml) |
ExportedSharesAccess |
string | ❌ | Ścieżka do pliku XML z uprawnieniami (domyślnie C:\sharesAccess.xml) |
LogFolder |
string | ❌ | Folder logów (domyślnie C:\MigrationLogs) |
.\Move-Shares.ps1 -ComputerName "Server01" -Destination "D:\MigratedShares"- PowerShell 5.1 lub nowszy
- Uprawnienia administratora
- Dostęp do zdalnego komputera przez sieć
- Pliki XML z udziałami (
shares.xml) i uprawnieniami (sharesAccess.xml) - Moduł
SmbSharedostępny w systemie (dlaNew-SmbShare) - Narzędzie Robocopy dostępne w systemie Windows
robocopy_log.txt– log z kopiowania danychmigration_transcript.log– pełna transkrypcja działania skryptu
- Skrypt pomija tworzenie udziału, jeśli już istnieje o tej samej nazwie.
- W przypadku błędów Robocopy (kod >= 8), zostanie wyświetlone ostrzeżenie.
- Uprawnienia są przypisywane tylko jeśli zostały zdefiniowane w pliku XML.
- Uruchom skrypt w środowisku testowym.
- Zweryfikuj poprawność plików XML.
- Sprawdź logi po wykonaniu skryptu.
- Przetestuj dostęp do utworzonych udziałów.
- Uruchom skrypt jako administrator.
- Zabezpiecz pliki XML przed modyfikacją.
- Monitoruj logi po migracji.
- Wykonaj kopię zapasową przed wdrożeniem.
Poniżej przykład tworzenia plików z udziałami i uprawnieniami pomijający udziały adinistracyjne:
- działy
$shares = Get-SmbShare | Where-Object { $_.Name -ne "IPC$" -and $_.Name -ne "ADMIN$" }
$shares | Export-Clixml -Path "C:\shares.xml"- uprawnienia
$share | Get-SmbShareAccess | Export-Clixml -Path "C:\sharesAccess.xml"