Jak dostosować ustawienia daty za pomocą programu PowerShell
PowerShell jest całkiem przydatny, gdy trzeba zmienić datę systemową bez konieczności ręcznego wprowadzania zmian za każdym razem. Nie wiem, dlaczego to działa, ale czasami trzeba ustawić konkretną datę lub przesunąć ją do przodu/do tyłu o godziny lub dni – na przykład do testowania aplikacji wrażliwej na daty lub po prostu do pracy w środowisku wirtualnym. Cała ta procedura jest dość prosta, gdy już się z nią oswoisz, ale łatwo zapomnieć o poleceniach lub pomylić je, gdy się spieszysz.
Oczywiście, system Windows nie robi tego aż tak oczywistego, dopóki nie zagłębisz się w Panel sterowania, ale PowerShell potrafi to zrobić błyskawicznie. Pamiętaj jednak, że manipulowanie czasem systemowym może powodować wiele dziwnych sytuacji, więc nie zapomnij go później zresetować. Ponadto, w zależności od uprawnień, może być konieczne uruchomienie PowerShella jako administrator — w przeciwnym razie polecenia mogą się nie powieść z odmową dostępu. W najgorszym przypadku pojawi się błąd „Odmowa dostępu”, co jest dobrą wskazówką, aby uruchomić program jako administrator.
Jak zmienić datę systemu Windows za pomocą programu PowerShell
Szybka zmiana daty przy użyciu stałej wartości
To najprostszy sposób — ustaw konkretną datę. Przydatne, jeśli testujesz lub po prostu chcesz sfałszować datę. Wystarczy otworzyć program PowerShell jako administrator (kliknij Win + Xi wybierz „Windows PowerShell (administrator)”), a następnie wpisać:
Set-Date -date "14.11.2017 18:00"
Zastąp ten ciąg daty i godziny tym, czego potrzebujesz. Proste, prawda? W niektórych konfiguracjach może to od razu nie zadziałać, a potem działać po ponownym uruchomieniu – ponieważ system Windows czasami wpada w furię, jeśli nie masz uprawnień lub jeśli obowiązują jakieś zasady bezpieczeństwa.
Dodawaj lub odejmuj dni, godziny i minuty
To jest fajne, bo możesz zmienić aktualną datę względem dzisiejszej. Jeśli chcesz cofnąć datę o tydzień (co często robiłem, testując poprzednie scenariusze), zrób tak:
Set-Date (Get-Date).AddDays(-7)
Ta funkcja odczytuje aktualną datę, odejmuje 7 dni i ją ustawia. Możesz również dodawać minuty, sekundy, a nawet godziny, łącząc metody:
Set-Date (Get-Date).AddDays(-7).AddMinutes(10).AddSeconds(20)
Przesunęłoby to datę o 7 dni do tyłu i dodało 10 minut i 20 sekund — można to uznać za superelastyczne rozwiązanie.
Dostosuj czas bezpośrednio za pomocą -adjust
To trochę dziwne, ale jeśli chcesz przesunąć czas o konkretną wartość, możesz użyć parametru -adjust. Na przykład, aby przesunąć czas o półtorej godziny:
Set-Date -adjust -1:30:0
To prostsze niż obliczanie całkowitej liczby sekund lub dni, zwłaszcza w przypadku jednorazowych korekt. Pamiętaj jednak, że manipulowanie czasem systemowym może powodować przeskakiwanie zegarów, więc używaj tego tylko tymczasowo, chyba że wiesz, co robisz.
Warto wspomnieć, że te polecenia mogą się nie powieść, jeśli nie używasz programu PowerShell z uprawnieniami administratora lub jeśli niektóre zasady uniemożliwiają zmianę czasu systemowego. Formatowanie ciągu daty ma również znaczenie – wiele osób otrzymuje błędy, ponieważ nie jest on zgodny z oczekiwanym formatem. W niektórych przypadkach może być konieczna modyfikacja ustawień regionalnych lub użycie innych formatów daty w zależności od ustawień językowych systemu.
Kolejna rzecz, na którą należy zwrócić uwagę – na niektórych komputerach system Windows może mieć włączoną opcję „Ustaw czas automatycznie” w ustawieniach, która może nadpisać zmiany wprowadzone ręcznie. Jeśli więc ręczne zmiany nie przynoszą rezultatu, sprawdź Ustawienia > Czas i język i upewnij się, że automatyczna aktualizacja nie jest włączona.
Ogólnie rzecz biorąc, PowerShell to potężne narzędzie do szybkiego manipulowania datami — należy jednak zachować ostrożność, zwłaszcza w przypadku przesunięć czasowych, ponieważ niewielki błąd może spowodować dziwne zachowanie systemu.
Streszczenie
- Polecenia programu PowerShell umożliwiają ustawienie konkretnych dat lub przesunięcie bieżącego czasu.
- Stosuj
Set-Date -date "DD. MM. YYYY HH:MM"w przypadku stałych dat. - Użyj metod takich jak
(Get-Date).AddDays(-n)przesuwanie dat względem dnia dzisiejszego. - Pamiętaj, aby uruchomić program PowerShell jako administrator, aby uzyskać uprawnienia.
- Sprawdź ustawienia systemu Windows, jeśli zmiany wprowadzone ręcznie nie przynoszą efektu.
Podsumowanie
Zmiana daty na komputerze nie jest łatwa, ale PowerShell sprawia, że jest to zaskakująco proste, jeśli zajdzie taka potrzeba. Uważaj tylko na problemy z uprawnieniami i nie zapomnij zresetować zegara po zakończeniu testów. Wygląda na to, że działa dość niezawodnie w większości konfiguracji, ale tak, Windows czasami dziwnie się zachowuje w tej kwestii. Trzymam kciuki, że to pomoże komuś zaoszczędzić trochę czasu lub naprawić dziwaczne środowisko testowe. Powodzenia!
Powiązane artykuły
Czy ten artykuł był pomocny?