Jak włączyć kopiowanie woluminów w tle na określonym dysku (D :, E:, ...) i skonfigurować harmonogram za pomocą programu Powershell?
Potrzebuję tylko kilku wskazówek, jak zacząć.
powershell
vss
Primoz
źródło
źródło
Odpowiedzi:
Możesz utworzyć kopię Shadow na określonym dysku za pomocą obiektu WMI, tak jak to opisano w artykule Microsoft .
Włącz kopiowanie woluminów w tle na określonym dysku (D :, E:, ...) to dwie rzeczy
źródło
Zajęło mi trochę czasu, aby to zadziałało (po znalezieniu prostego błędu powodującego błąd), a funkcja jest niekompletna. Chcę dodać możliwość włączenia go na komputerze zdalnym, co prawdopodobnie będzie musiało zostać wykonane za pomocą zadania uruchamianego raz. Jeśli ktoś to zmodyfikuje i doda to, daj mi znać!
Nawet jeśli to działa i naśladuje to, co dzieje się, gdy robisz to za pomocą GUI, nadal pokazuje się jako wyłączone dla tego dysku. Ale jeśli go włączysz, nic się nie zmieni! (LOL) Domyślam się, że jest coś, co również wymaga modyfikacji w rejestrze.
źródło
Po całym zamieszaniu z nim sprawił, że działał nieco inaczej (wydaje się również, że wyświetla się poprawnie za pośrednictwem GUI).
Krzyki na tę stronę, aby uzyskać trochę pomocy: https://social.technet.microsoft.com/forums/windowsserver/en-US/fb69840d-5f52-4711-8168-2faa23088233/shadow-copy-schedule-per-script
Wadą używania schtasks (tego, czego używa ta strona) jest to, że nie mogę mieć wielu wyzwalaczy, o ile widzę.
Również ze względu na sposób, w jaki rozwiązałem problem (Użyłem bindiff działającego / niedziałającego xml), nie jestem do końca przekonany, że używane flagi są optymalne.
źródło
Prostsze oznacza użycie schtasks wyświetlanych w interfejsie użytkownika, zgodnych z PowerShell 2. Zaprojektowany dla standardowej wersji, może być konieczne użycie $ Volumeinfo [x] podczas tworzenia $ taskrun, aby znaleźć odpowiedni wolumin.
Może odpowiednio skonfigurować następujące argumenty:
UWAGA: Przełącznik / TR WYMAGA miejsca na końcu, jeśli go nie ma, zastępuje ostatni odwrotny ukośnik podwójnym cudzysłowem, powodując, że interfejs użytkownika VSS nie rozpoznaje zadania.
źródło
Tego używam w PowerShell . Jest to link do mojej strony, ale wygląda o wiele lepiej niż tutaj wkleił.
źródło
Kopiowanie w tle jest faktycznie włączane poprzez tworzenie zadań wywołujących vssadmin.exe.
Program PowerShell 3.0 ma polecenia cmdlet, które umożliwiają tworzenie zadań, ale zależą one od wywołań systemowych, które nie zostały zaimplementowane do systemu Windows 8 / Windows Server 2012. Aby wykonać tę czynność w następujący sposób, potrzebne są trzy z tych poleceń cmdlet:
We wcześniejszych wersjach systemu Windows korzystanie z programu schtasks.exe było ograniczone.
Jednak - i tutaj ta odpowiedź różni się od innych - tworzenie zadania kopiowania w tle w ten sposób nie jest właściwym sposobem na robienie rzeczy, ponieważ wszelkie wprowadzone zmiany nie pojawią się w graficznym interfejsie użytkownika. W związku z tym nieobserwujący użytkownik może nie wiedzieć, że funkcja Shadow Copy została włączona, co powoduje, że włącza ona drugą instancję lub, co gorsza, dyskretnie zastępuje twoje zadanie (jeśli przestrzegałeś konwencji nazewnictwa Windows (VolumeShadowCopy {$ GUID})).
Co musisz zrobić, to utworzyć go za pomocą GUI (najlepiej na Win7 / Win2008, ponieważ nowsze wersje systemu Windows domyślnie używają taskxml 1.2 zamiast bardziej kompatybilnego taskxml 1.1), eksportować zadanie jako XML za pomocą schtasks, programowo edytować ten XML , zapisz ten plik XML jako UTF16 i zaimportuj go. Na szczęście po przejściu przez interfejs GUI na początku można to wszystko zrobić w wierszu polecenia.
Chciałbym napisać kod, ale to, co napisałem, jest zastrzeżone i nie mam pozwolenia od mojego pracodawcy. Mam nadzieję, że wskazówka XML pozwoli przynajmniej zaoszczędzić niezliczone godziny. Właśnie wdrożyłem rozwiązanie XML na setkach zarządzanych serwerów, z wielkim sukcesem.
źródło
Dzięki wszystkim, którzy przyczynili się do tego wątku. Było to pomocne i pozwoliło mi zaoszczędzić dużo pracy. Następujący skrypt PowerShell został przetestowany w systemie Windows Server 2008 R2.
Poniższy przykład tworzy migawkę co 2 godziny między Mo.-Fr. od 08:00 do 18:00 w tomie C:
Jeśli chcesz zmodyfikować harmonogram, po prostu edytuj lub zamień wbudowane dane XML.
Uwaga: brak gwarancji. Brak odpowiedzialności. Proszę przetestować we własnym laboratorium przed użyciem w środowisku produkcyjnym.
źródło
Najlepsze, co mogę zrobić, to wskazać ci tutaj , a konkretnie wskazać ten i ten .
Nie adresuj dokładnie tego, czego szukasz, ale zaznaczę, że możesz tworzyć kopie w tle w dowolnym momencie, ponieważ VSS jest usługą działającą w tle, dopóki nie zostanie wywołana.
źródło
Dostałem dokładnie to, czego potrzebowałem z poniższym kodem, moim wymaganiem była konfiguracja VSS, ale także musiała być widoczna w GUI. Kluczową częścią, aby był widoczny w GUI, jest dodanie identyfikatora woluminu do nazwy zaplanowanego zadania, jak wskazał użytkownik 261949 (to trochę dziwne, szczerze mówiąc, szukałem klucza rejestru, ale absolutnie nic nie znalazłem ...). Skończyłem z następującym kodem, który odpowiada moim potrzebom:
Dziękujemy wszystkim za przydatne informacje!
źródło