Uruchamianie skryptów i ustawianie zasad wykonywania w programie Windows PowerShell

Zakończone

Przed rozpoczęciem modyfikowania skryptów programu Windows PowerShell lub tworzenia własnych, musisz wiedzieć, jak uruchomić skrypt programu Windows PowerShell. Możesz zapoznać się z ideą dwukrotnego kliknięcia pliku wykonywalnego lub wybrania go, a następnie wybrania Enter, aby go uruchomić, ale ten proces nie działa w przypadku skryptów programu Windows PowerShell.

Jednym z problemów z wieloma językami skryptowymi jest to, że uruchamianie skryptów przez przypadek jest zbyt łatwe. Użytkownicy mogą przypadkowo uruchomić skrypt, klikając go dwukrotnie lub wybierając go, a następnie wybierając Enter. Ta akcja jest szczególnie problematyczna, gdy rozszerzenie pliku jest ukryte, a złośliwe oprogramowanie jest dołączane jako załącznik wiadomości e-mail. Na przykład dołączony plik o nazwie receipt.txt.vbs będzie wyświetlany jako receipt.txt , a użytkownicy przypadkowo go uruchomią, myśląc, że jest to prosty plik tekstowy. To ustawienie nie jest problemem dla skryptów programu Windows PowerShell z powodu akcji wymaganych do uruchomienia skryptu.

Integracja z Eksplorator plików

Aby zapewnić bezpieczeństwo skryptów programu Windows PowerShell, rozszerzenie pliku ps1 jest skojarzone z Notatnikiem. W związku z tym po dwukrotnym kliknięciu pliku ps1 lub wybraniu go, a następnie wybraniu Enter, zostanie otwarty w Notatniku. To ustawienie oznacza, że użytkownicy nie mogą uruchomić skryptu programu Windows PowerShell, klikając go dwukrotnie lub wybierając go, a następnie wybierając Enter.

Po kliknięciu prawym przyciskiem myszy skryptu programu Windows PowerShell lub aktywowaniu menu kontekstowego dostępne są trzy opcje:

  • Otwórz. Ta opcja otwiera skrypt w Notatniku.
  • Uruchom z PowerShell. Ta opcja uruchamia skrypt, ale wiersz polecenia programu Windows PowerShell nie pozostaje otwarty po zakończeniu działania skryptu.
  • Edytuj. Ta opcja otwiera skrypt w środowisku Windows PowerShell ISE.

W większości przypadków chcesz, aby monit programu Windows PowerShell pozostał otwarty po uruchomieniu skryptu. Aby wykonać to zadanie, uruchom skrypt z poziomu wiersza polecenia programu Windows PowerShell, który jest już otwarty.

Uruchamianie skryptów w wierszu polecenia programu PowerShell

Po uruchomieniu pliku wykonywalnego w wierszu polecenia możesz wprowadzić jego nazwę, aby uruchomić go w bieżącym katalogu. Jeśli na przykład bieżący katalog to C:\app, możesz wprowadzić app.exe , aby uruchomić C:\app\app.exe. Nie można użyć tego procesu do uruchamiania skryptów programu Windows PowerShell, ponieważ nie wyszukuje bieżącego katalogu.

Aby uruchomić skrypt programu Windows PowerShell w wierszu polecenia programu Windows PowerShell, można użyć następujących metod:

  • Wprowadź pełną ścieżkę do skryptu; na przykład C:\Scripts\MyScript.ps1.
  • Wprowadź ścieżkę względną do skryptu; na przykład \Scripts\MyScript.ps1.
  • Odwołanie do bieżącego katalogu; na przykład .\MyScript.ps1.

Zasady wykonywania skryptu

Możesz kontrolować, czy skrypty programu Windows PowerShell można uruchamiać na komputerach z systemem Windows. To zadanie należy wykonać, ustawiając zasady wykonywania na komputerze. Domyślne zasady wykonywania na komputerze różnią się w zależności od wersji systemu operacyjnego. Aby upewnić się, że bieżąca konfiguracja jest aktualna, możesz użyć polecenia cmdlet Get-ExecutionPolicy .

Dostępne są następujące opcje zasad wykonywania:

  • Ograniczone. Nie można uruchamiać żadnych skryptów.
  • AllSigned. Skrypty można uruchamiać tylko wtedy, gdy są podpisane cyfrowo.
  • RemoteSigned. Pobrane skrypty można uruchamiać tylko wtedy, gdy są podpisane cyfrowo.
  • Nieograniczone. Wszystkie skrypty można uruchomić, ale podczas uruchamiania niepodpisanych skryptów wyświetlany jest monit o potwierdzenie.
  • Obejście. Wszystkie skrypty są uruchamiane bez monitów.

Uwaga

Ustawienie zasad wykonywania skryptu zapewnia sieć zabezpieczeń, która może uniemożliwić przypadkowe uruchamianie niezaufanych skryptów. Jednak zasady wykonywania zawsze można zastąpić.

Zasady wykonywania można ustawić na komputerze przy użyciu polecenia cmdlet Set-ExecutionPolicy . Jednak to ustawienie jest trudne do zarządzania na wielu komputerach. Podczas konfigurowania zasad wykonywania dla wielu komputerów można użyć ustawienia Konfiguracja komputera\Zasady\Szablony administracyjne\Składniki systemu Windows\Windows PowerShell\Włącz ustawienie zasad grupy wykonywania skryptu .

Można zastąpić zasady wykonywania dla pojedynczego wystąpienia programu Windows PowerShell. To ustawienie jest przydatne, jeśli zasady firmy wymagają ustawienia zasad wykonywania jako ograniczone, ale nadal trzeba uruchamiać skrypty od czasu do czasu. Aby zastąpić politykę wykonywania, uruchom PowerShell.exe za pomocą parametru -ExecutionPolicy.

Powershell.exe -ExecutionPolicy ByPass

Jeśli zmodyfikowano skrypt pobrany z Internetu, skrypt nadal zawiera atrybuty identyfikujące go jako pobrany plik. Aby usunąć ten stan ze skryptu, użyj polecenia cmdlet Unblock-File .