2013-07-11 11 views
29

Jestem w trakcie pisania skryptu PowerShell do tworzenia kopii zapasowej komputera z systemem Windows przy użyciu rsync. W tym celu próbuję użyć WMI z tego skryptu, aby utworzyć nietrwałą kopię Cienia z udziałem autora (jak najwyraźniej jest to zalecane dla kopii zapasowych).Tworzenie kopii w tle przy użyciu kontekstu "Kopia zapasowa" w PowerShell

Z innego pytania (Accessing Volume Shadow Copy (VSS) Snapshots from powershell) dowiedziałem się, jak utworzyć kopię w tle, ale podany tam przykład używa "ClientAccessible" jako parametru kontekstowego, co powoduje utworzenie trwałej kopii w tle, bez zapisania udział.

Podczas poszukiwania rozwiązania, odkryłem, że mogę użyć następującego polecenia, aby uzyskać listę kontekstów, które zakładam, że są rozumiane przez WMI:

Get-WmiObject win32_shadowcontext | Out-GridView 

To nie lista mają kontekst nazwie " Kopia zapasowa ", co jest wygodne, czego chcę. I przystąpił do próby tworząc nietrwałe kopii w tle przy użyciu tego kontekstu:

$shadow = (Get-WmiObject -list win32_shadowcopy).Create("C:\", "Backup") 

to jednak wydaje się niepowodzeniem oraz zawartości $ cień zmiennej jest ustawiony na

ReturnValue  : 5 
ShadowID   : {00000000-0000-0000-0000-000000000000} 

Według odpowiednią dokumentacją (Create method of the Win32_ShadowCopy class), wartość zwracana oznacza "Nieobsługiwany kontekst kopiowania w tle".

Nie mogę znaleźć żadnej odpowiedniej dokumentacji, dlaczego ten kontekst jest nieobsługiwany lub czy można go w ogóle użyć. Próbowałem również kontekstów "FileShareBackup" i "AppRollback" bez powodzenia.

Zakładam, że brakuje mi czegoś oczywistego, lub że z jakiegoś powodu WMI naprawdę nie obsługuje niczego innego niż "clientAccessible" podczas tworzenia kopii w tle, lub że jest to zależne od systemu operacyjnego (testuję to w systemie Windows 7 , 64-bit)

Jak mogę to uruchomić?

+2

Sam napisałem to samo (ale było to z C# i biblioteką AlphaVSS), oto czego się nauczyłem: Będziesz potrzebował zamontować migawkę, aby zsynchronizować pliki, ale aby można było je montować migawka musi mieć flagę 'NoAutoRelease' ustawioną na 'true'. Aby ustawić 'NoAutoRelease' na true, musisz ustawić' Persistent' na 'true', więc wystarczy fyi, aby nie spędzać zbyt wiele czasu próbując uzyskać coś innego niż 'ClientAccessable' do pracy (' ClientAccessable' ma obie zmienne ustawione na "true") –

+0

Kopie w tle utworzone przy ustawieniu NoAutoRelease na False są automatycznie usuwane po zakończeniu procesu ich żądania ([link] (http://msdn.microsoft.com/en-us/library/windows/desktop /aa394427(v=vs.85).aspx)). Początkowo podejrzewałem, że to jest problem, który widziałem, ale fakt, że mam ten sam problem z kontekstem AppRollback sugeruje, że może tak nie być. Generalnie można jednak instalować automatyczne kopie w tle zgodnie z opisem w [link] (http://www.goodjobsucking.com/?p=62). Wolałbym jednak używać powershell niż proponowanego tam rozwiązania. –

+2

Jeśli nie możesz uruchomić usługi WMI, może spróbuj załadować zespół [AlphaVSS assembly] (http://alphavss.codeplex.com/) do PowerShell. [Oto jak utworzyć migawkę, zamontować ją i usunąć w C#] (http://pastebin.com/XhVLyq0m), powinieneś być w stanie przetłumaczyć to na powershell. –

Odpowiedz

1

Twój $ shadow ma wartość 5 na powrocie, patrząc na komunikat o błędzie, twój identyfikator cienia ma wszystkie zera, musisz dodać 1 lub 2 na końcu kopii cienia woluminu w rejestrze za pomocą binarnego lub dword ..

znajdź folder w rejestrze o nazwie volsnap w swoim wyszukiwaniu regedit .volsnap.sys znajduje się w katalogu C: \ Windows \ System32 \ drivers. Rozmiar pliku wynosi 52 352 bajty. Plik volsnap zawiera cyfrowy podpis Microsoftu. Upewnij się, że jest to poprawny bajt.

Potwierdza to jego autentyczność. volsnap.sys wydaje się być plikiem skompresowanym przez EXE-Packer. Technika ta jest często wykorzystywana przez trojany, aby zmniejszyć rozmiar pliku i utrudniać debugowanie.

Jednak samo w sobie nie jest wystarczającym powodem, aby zakładać złośliwe intencje, ponieważ nawet dobroduszni, profesjonalni producenci oprogramowania korzystają ze skompresowanych plików. Z tego powodu 2% ekspertów uważa ten plik za potencjalne zagrożenie. Prawdopodobieństwo, że może spowodować szkody, jest wysokie. Rozważ dodatkowe komentarze od innych użytkowników.

domyślny cień ID 00000000-0000-0000-0000-000000000000 00000000-0000-0000-0000-000000000005

jeśli ma już 5, która prawdopodobnie nie robi zmienić na 1

lub utworzyć nowy kod

cień id $ cień 00000000-0000-0000-0000-0000000000001

nie dokładnie tak, jak może shown.you spróbować differnt sformułowanie nie jestem pewien, czy będzie w $ ork. jeśli nie, wypróbuj samodzielną wersję js.

Powiązane problemy