Skrypt PowerShell ogranicza ręczne wykonywanie powtarzających się zadań. Jeśli często wykonujesz skrypty o określonych porach lub w określonych odstępach czasu, możesz być zmęczony wielokrotnym wykonywaniem skryptów. Wtedy możesz wykorzystać Harmonogram zadań systemu Windows, aby zautomatyzować wykonywanie skryptów. Pozwoli to zaoszczędzić czas i wysiłek związany z codziennym/tygodniowym wykonywaniem skryptów. Zobaczmy, jak zaplanować skrypt PowerShell za pomocą Harmonogramu zadań.

Można to zrobić na dwa sposoby.

1.Zaplanuj skrypt PowerShell za pomocą GUI Harmonogramu zadań

2.Schedule PowerShell script from Task Scheduler using PowerShell

Metoda 1: Schedule PowerShell Script using Task Scheduler

Otwórz Task Scheduler (można go znaleźć w narzędziach administracyjnych lub naciskając klawisze Windows+R, aby otworzyć Run, a następnie wpisz „taskschd.msc”.Aby uruchomić skrypt z Harmonogramu zadań, wykonaj następujące czynności.

1.Otwórz Harmonogram zadań -> Biblioteka Harmonogramu zadań -> Utwórz zadanie

2.W zakładce Ogólne można ustawić nazwę harmonogramu i opis zadania, np. w jakim celu zadanie zostało utworzone.

Dostępne opcje zabezpieczeń wyjaśnione poniżej.

  • Można określić użytkownika, w imieniu którego zadanie zostanie uruchomione.
  • Można określić, że zadanie powinno zostać uruchomione . Można to zrobić wybierając przycisk radiowy oznaczony jako „Uruchom, jeśli użytkownik nie jest zalogowany”. Jeśli ten przycisk jest zaznaczony, zadanie nie będzie uruchamiane interaktywnie. Aby zadanie było uruchamiane interaktywnie, wybierz przycisk radiowy Uruchom tylko wtedy, gdy użytkownik jest zalogowany.
  • Gdy wybrana jest opcja Uruchom, czy użytkownik jest zalogowany czy nie, możesz zostać poproszony o podanie danych uwierzytelniających konta, niezależnie od tego, czy zaznaczysz pole wyboru Nie przechowuj hasła, czy nie. Jeśli konto nie jest zalogowane podczas wykonywania zadania, zostaną użyte zapisane dane uwierzytelniające.
  • Jeśli zadanie wymaga podwyższonych uprawnień, wybierz opcję Uruchom z najwyższymi uprawnieniami.

3.Przejdź na kartę Wyzwalacz i kliknij przycisk Nowy. Można tu określić warunki, które wyzwolą zadanie.

  • Można określić, kiedy zadanie ma zostać uruchomione. Na przykład można zlecić jego wykonanie zgodnie z harmonogramem, podczas uruchamiania, logowania lub w przypadku wystąpienia określonego zdarzenia, wybierając z menu rozwijanego opcję Rozpocznij zadanie.

  • Można skonfigurować, czy zadanie ma być uruchamiane raz, codziennie, co tydzień lub co miesiąc, zgodnie ze scenariuszem.
  • W „Zaawansowanych ustawieniach” możesz wybrać opóźnienie zadania, powtarzanie zadania, zatrzymanie zadania, jeśli działa dłużej niż określony czas i datę wygaśnięcia.
    • Opóźnij zadanie do – to dodaje losowe opóźnienie, więc zadanie nie będzie działać dokładnie o tej samej porze dnia.
    • Powtarzaj zadanie co – to pokazuje liczbę razy, kiedy zadanie powinno zostać uruchomione po uruchomieniu wyzwalacza.
      • Repeat task every — Time interval between each task repetition
      • For a duration of- Jak długo zadanie powinno być powtarzane
    • Stop task if it runs longer than- Jeśli zadanie działa dłużej niż oczekiwany czas lub nigdy nie zostanie zakończone, zadanie zostanie automatycznie zatrzymane, jeśli osiągnie wspomniany limit czasu.
    • Wygaśnij – po upływie określonego czasu harmonogram nie zostanie uruchomiony.

4.Następnie otwórz następną zakładkę Działania i kliknij przycisk Nowe.

  • W rozwijanej zakładce Działanie domyślnie ustawione jest „Uruchom program”. Można to zmienić w razie potrzeby.
  • Używając przycisku Przeglądaj, wybierz program/pole skryptu. Aby zaplanować skrypt, musimy wybrać powershell.exe.
    Możesz znaleźć powershell.exe w folderze System32 WindowsPowerShellv1.0.
  • W „Dodaj argumenty”, parametr -File jest domyślny, więc po prostu określ ścieżkę skryptu. Na przykład, zamierzam zaplanować skrypt, który eksportuje raport stanu MFA użytkowników Office 365.

PowerShell

1
c:\GetMFAStatus.ps1

Jeśli ścieżka zawiera jakiekolwiek puste miejsce, powinna być ujęta w cudzysłów.

5.Po skonfigurowaniu można określić warunki określające, czy zadanie powinno zostać uruchomione. Zadanie nie zostanie uruchomione, jeśli jakikolwiek warunek określony tutaj nie jest prawdziwy.

6.Na karcie Ustawienia można określić dodatkowe ustawienia zaawansowane, aby kontrolować wykonywanie zadania.

Na koniec kliknij przycisk Ok, aby utworzyć zaplanowany skrypt.

Zaplanowany skrypt zostanie uruchomiony zgodnie z harmonogramem bez żadnych problemów. Jeśli chcesz sprawdzić wykonanie skryptu, możesz kliknąć Uruchom, klikając prawym przyciskiem myszy nazwę zadania.

Automatyzacja skryptu PowerShell z Harmonogramu zadań za pomocą parametrów

Jeśli chcesz zaplanować skrypt PowerShell z parametrami, użyj poniższego formatu.

PowerShell

1
Ścieżka skryptu -.Param 1 Wartość1 -Param2 Wartość 2

Na przykład, Zamierzam zautomatyzować jeden z naszych skryptów PowerShell: Export Office 365 Users MFA status report

Podczas harmonogramu można jawnie przekazać dane uwierzytelniające jako parametry, jak pokazano poniżej:

PowerShell

1
C:\GetMFAStatus.ps1 -UserName „XXX XX” -Password ****

Jeśli wartość parametru ma puste miejsce, wartości powinny być ujęte w cudzysłów.

Jeśli chcesz przekazać parametr switch, możesz użyć poniższej składni.

PowerShell

1
 C:\GetMFAStatus.ps1 -EnabledOnly

Powyższy skrypt eksportuje status MFA użytkowników Office 365, których status MFA jest włączony. Tutaj -EnabledOnly jest parametrem przełącznika.

Więcej skryptów PowerShell związanych z Office 365 można znaleźć na blogu O365Reports.com.

Metoda 2: Zaplanuj skrypt PowerShell z Harmonogramu zadań za pomocą PowerShell

Zamiast GUI można użyć cmdletów PowerShell do utworzenia zadania harmonogramu, które zautomatyzuje skrypt PowerShell. Obejmuje to następujące kroki,

1.Zdefiniuj czas dla harmonogramu

2.Ustaw akcje do wykonania podczas wykonywania

3.Zapisz harmonogram

Zdefiniuj czas dla harmonogramu:

New-SchdeuledTaskTrigger tworzy obiekt wyzwalacza zaplanowanego zadania. Używając tego cmdleta, można określić czas rozpoczęcia zadania lub uruchomienia zadania wiele razy w ciągu dnia lub tygodnia.

PowerShell

1
$Time=New-.ScheduledTaskTrigger -At 4.00PM -Once

Powyższy cmd tworzy zaplanowany wyzwalacz zadania, który rozpoczyna się o 4PM i uruchamia się raz.

PowerShell

1
  $Time=New-.ScheduledTaskTrigger -At 4.00PM -Daily -DaysInterval 2

Powyższy cmd tworzy wyzwalacz zaplanowanego zadania, które rozpoczyna się co 2 dni o godzinie 16:00

Set Actions to be Performed During Execution:

New-SchdeuledTaskAction reprezentuje akcje, które są wykonywane, gdy Task Scheduler uruchamia zadanie. Zadanie może zawierać jedną akcję lub maksymalnie 32 akcje. W przypadku określenia wielu akcji, zadanie Scheduler wykonuje zadanie sekwencyjnie.    Â

To polecenie otwiera PowerShell i zmienia katalog na C:/Scripts, a następnie wywołuje skrypt MFAStatus.ps1.

Zapisz Scheduler:

Register-ScheduledTask zapisuje zaplanowane zadanie na komputerze lokalnym.

PowerShell

1
Register-…ScheduledTask -TaskName „Schedule MFA Status Report” -Trigger $Time -Action $Action -RunLevel Highest

Powyższy cmd zapisuje zaplanowane zadanie o nazwie „Schedule MFA Status Report” w folderze głównym. Zapisane zadanie używa wstępnie utworzonych wartości akcji i wyzwalacza, które są określone przez zmienne $Action i $Time.

Przypadki użycia:

Używając Harmonogramu zadań, możesz zaplanować skrypt PowerShell do okresowego uruchamiania. Dzięki temu nie trzeba ręcznie uruchamiać skryptu codziennie/tygodniowo/miesięcznie. Istnieje więcej skryptów dostępnych w Internecie, które są przyjazne dla harmonogramu (dane uwierzytelniające mogą być przekazywane jako parametr zamiast zapisywania wewnątrz skryptu). Podałem kilka przykładów tutaj.

  • Śledzenie historii logowania użytkowników Office 365 – zachowaj dziennik audytu przez ponad 90 dni
  • Raport okresowy stanu MFA użytkowników Office 365
  • Raport czasu ostatniego logowania użytkowników Office 365
  • Raport uprawnień skrzynki pocztowej Office 365
  • Raport licencji użytkowników Office 365
  • Skrypt PowerShell Skrypt PowerShell dotyczący członkostwa w grupach dystrybucyjnych
  • Skrypt PowerShell dotyczący członkostwa w dynamicznych grupach dystrybucyjnych
  • Raport okresowy dotyczący ostatniej aktywności użytkowników usługi Office 365
  • Raport PowerShell dotyczący historii logowania użytkowników usługi Office 365
  • Raport PowerShell dotyczący uprawnień do współdzielonej skrzynki pocztowej
  • Raport okresowy dotyczący uprawnień do skrzynki pocztowej niebędącejwłaściciela
  • Raport o wygaśnięciu hasła użytkowników Office 365

W tym blogu, zobaczyliśmy, jak zautomatyzować skrypt PowerShell za pomocą Harmonogramu zadań.Jakie jest Twoje preferowane podejście, jeśli chodzi o planowanie – GUI czy PowerShell? Daj nam znać w sekcji komentarzy.

Jak również, jeśli potrzebujesz jakichkolwiek ulepszeń, takich jak uzyskanie zaplanowanego raportu przez e-mail, lub cokolwiek innego, jesteśmy wszyscy uszy 🙒

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.