Udostępnij przez


Używanie skryptów programu PowerShell na urządzeniach z systemem Windows w usłudze Intune

14 października 2025 r. Windows 10 dobiegło końca wsparcia i nie otrzyma aktualizacji dotyczących jakości i funkcji. Windows 10 jest dozwoloną wersją w usłudze Intune. Urządzenia z tą wersją mogą nadal rejestrować się w usłudze Intune i korzystać z kwalifikujących się funkcji, ale funkcjonalność nie będzie gwarantowana i może się różnić.

Użyj rozszerzenia do zarządzania usługi Microsoft Intune, aby przekazać skrypty programu PowerShell w usłudze Intune. Następnie uruchom te skrypty na urządzeniach z systemem Windows. Rozszerzenie zarządzania zwiększa możliwości zarządzania urządzeniami przenośnymi i ułatwia przejście do nowoczesnego zarządzania.

Uwaga

Aby uzyskać informacje o rozszerzeniu do zarządzania usługi Intune dla systemu Windows, zobacz Rozszerzenie do zarządzania usługi Intune dla systemu Windows.

Przed rozpoczęciem

  • Skrypty ustawione na kontekst użytkownika z uprawnieniami administratora domyślnie uruchamiają program PowerShell w obszarze uprawnienia administratora.

  • Użytkownicy końcowi nie muszą logować się do urządzenia w celu wykonywania skryptów programu PowerShell.

  • Rozszerzenie zarządzania usługi Intune sprawdza po każdym ponownym uruchomieniu pod kątem nowych skryptów lub zmian. Po przypisaniu zasad do grup Microsoft Entra zostanie uruchomiony skrypt programu PowerShell i zostaną zgłoszone wyniki przebiegu. Po wykonaniu skryptu nie zostanie on wykonany ponownie, chyba że nastąpi zmiana w skryptze lub zasadach. Jeśli skrypt zakończy się niepowodzeniem, rozszerzenie zarządzania usługi Intune ponawia próbę użycia skryptu trzy razy w przypadku kolejnych trzech kolejnych zaewidencjonowania rozszerzeń zarządzania usługi Intune.

  • Skrypty programu PowerShell przypisane do urządzenia są uruchamiane dla każdego nowego użytkownika, który się loguje, z wyjątkiem jednostek SKU z wieloma sesjami, w których ewidencjonowanie użytkownika jest wyłączone.

  • Skrypty programu PowerShell są wykonywane przed uruchomieniem aplikacji Win32. Innymi słowy, skrypty programu PowerShell są wykonywane jako pierwsze. Następnie aplikacje Win32 są wykonywane.

  • Limit czasu skryptów programu PowerShell po 30 minutach.

Ważna

Najlepsze rozwiązania dotyczące rozpoznawania prywatności podczas korzystania ze skryptów programu PowerShell i skryptów korygowania obejmują:

  • Nie dołączaj żadnych informacji poufnych do skryptów (takich jak hasła)
  • Nie uwzględniaj danych osobowych w skryptach
  • Nie używaj skryptów do zbierania danych osobowych z urządzeń
  • Zawsze postępuj zgodnie z najlepszymi rozwiązaniami dotyczącymi prywatności

Aby uzyskać powiązane informacje, zobacz Korygowanie.

Wymagania wstępne

Ważna

Skrypty wdrożone na klientach z uruchomionym rozszerzeniem do zarządzania usługi Intune nie mogą działać, jeśli zegar systemowy urządzenia jest niezwykle nieaktualny przez miesiące lub lata. Po uaktualnieniu zegara systemowego skrypt jest uruchamiany zgodnie z oczekiwaniami.

Tworzenie zasad skryptu i przypisywanie ich

  1. Zaloguj się do Centrum administracyjnego usługi Microsoft Intune.

  2. Wybierz pozycję Urządzenia>Skrypty i korygowania SkryptyplatformyDodaj>Windows 10 i nowsze>>.

    Zrzut ekranu przedstawiający tworzenie nowego skryptu dla urządzenia z systemem Windows.

  3. W obszarze Podstawy wprowadź następujące właściwości, a następnie wybierz pozycję Dalej:

    • Nazwa: wprowadź nazwę skryptu programu PowerShell.
    • Opis: wprowadź opis skryptu programu PowerShell. To ustawienie jest opcjonalne, ale zalecane.
  4. W obszarze Ustawienia skryptu wprowadź następujące właściwości, a następnie wybierz pozycję Dalej:

    • Lokalizacja skryptu: przejdź do skryptu programu PowerShell. Skrypt musi być mniejszy niż 200 KB (ASCII).

    • Uruchom ten skrypt przy użyciu poświadczeń logowania: wybierz pozycję Tak (ustawienie domyślne), aby uruchomić skrypt z poświadczeniami użytkownika na urządzeniu. Wybierz pozycję Nie , aby uruchomić skrypt w kontekście systemu. Wielu administratorów wybiera pozycję Tak. Jeśli skrypt jest wymagany do uruchomienia w kontekście systemu, wybierz pozycję Nie.

    • Wymuszaj sprawdzanie podpisu skryptu: wybierz pozycję Tak (wartość domyślna), jeśli skrypt musi być podpisany przez zaufanego wydawcę. Wybierz pozycję Nie , jeśli nie ma wymogu podpisania skryptu.

    • Uruchom skrypt na 64-bitowym hoście programu PowerShell: wybierz pozycję Tak , aby uruchomić skrypt na 64-bitowym hoście programu PowerShell w 64-bitowej architekturze klienta. Wybierz pozycję Nie (ustawienie domyślne) uruchamia skrypt na 32-bitowym hoście programu PowerShell.

      W przypadku ustawienia wartości Tak lub Nie użyj poniższej tabeli, aby uzyskać nowe i istniejące zachowanie zasad:

      Uruchamianie skryptu na hoście 64-bitowym Architektura klienta Nowy skrypt Istniejący skrypt zasad
      Nie 32-bitowy Obsługiwany 32-bitowy host programu PowerShell Działa tylko na 32-bitowym hoście programu PowerShell, który działa w architekturach 32-bitowych i 64-bitowych.
      Tak 64-bitowe Uruchamia skrypt na 64-bitowym hoście programu PowerShell dla architektur 64-bitowych. Po uruchomieniu w wersji 32-bitowej skrypt jest uruchamiany na 32-bitowym hoście programu PowerShell. Uruchamia skrypt na 32-bitowym hoście programu PowerShell. Jeśli to ustawienie zmieni się na 64-bitowe, skrypt zostanie otwarty (nie zostanie uruchomiony) na 64-bitowym hoście programu PowerShell i zgłosi wyniki. Po uruchomieniu 32-bitowego skrypt jest uruchamiany na 32-bitowym hoście programu PowerShell.
  5. Wybierz pozycję Tagi zakresu. Tagi zakresu są opcjonalne. Aby uzyskać więcej informacji, użyj kontroli dostępu opartej na rolach i tagów zakresu dla rozproszonej infrastruktury IT .

    Aby dodać tag zakresu:

    • Wybierz pozycję Wybierz tagi> zakresu wybierz istniejący tag zakresu z listy >Wybierz.

    • Po zakończeniu wybierz pozycję Dalej.

  6. Wybierz pozycję Przypisania>Wybierz grupy do uwzględnienia. Zostanie wyświetlona istniejąca lista grup Microsoft Entra.

    • Wybierz co najmniej jedną grupę obejmującą użytkowników, których urządzenia odbierają skrypt. Zaznacz pozycję Wybierz. Wybrane grupy są wyświetlane na liście i otrzymują zasady.

      Uwaga

      Skrypty programu PowerShell w usłudze Intune mogą być przeznaczone do Microsoft Entra grup zabezpieczeń urządzeń lub Microsoft Entra grup zabezpieczeń użytkowników. Jednak w przypadku określania wartości docelowej urządzeń przyłączonych do miejsca pracy (WPJ) można używać tylko Microsoft Entra grup zabezpieczeń urządzeń (określanie wartości docelowej użytkowników jest ignorowane).

    • Wybierz pozycję Dalej.

      Przypisywanie lub wdrażanie skryptu programu PowerShell do grup urządzeń w usłudze Microsoft Intune

  7. W obszarze Przeglądanie i dodawanie zostanie wyświetlone podsumowanie skonfigurowanych ustawień. Wybierz pozycję Dodaj , aby zapisać skrypt. Po wybraniu pozycji Dodaj zasady są wdrażane w wybranych grupach.

Scenariusz — nie można uruchomić skryptu

8:00

  • Zamelduj się
  • Uruchamianie skryptu ConfigScript01
  • Skrypt kończy się niepowodzeniem

9:00

  • Zamelduj się
  • Uruchamianie skryptu ConfigScript01
  • Skrypt kończy się niepowodzeniem (liczba ponawiania prób = 1)

10:00

  • Zamelduj się
  • Uruchamianie skryptu ConfigScript01
  • Skrypt kończy się niepowodzeniem (liczba ponawiania prób = 2)

11:00

  • Zamelduj się
  • Uruchamianie skryptu ConfigScript01
  • Skrypt kończy się niepowodzeniem (liczba ponawiania prób = 3)

12:00

  • Zamelduj się
  • Nie są podejmowane żadne inne próby uruchomienia skryptu ConfigScript01.
  • Jeśli w skryptze nie zostaną wprowadzone żadne inne zmiany, nie są podejmowane żadne inne próby uruchomienia skryptu.

Monitorowanie stanu uruchomienia

Możesz monitorować stan uruchamiania skryptów programu PowerShell dla użytkowników i urządzeń w portalu.

W skryptach programu PowerShell wybierz skrypt do monitorowania, wybierz pozycję Monitoruj, a następnie wybierz jeden z następujących raportów:

  • Stan urządzenia
  • Stan użytkownika

Uwaga

Eksporty stanu urządzenia z centrum administracyjnego usługi Intune dla skryptów platformy używają teraz interfejsu API eksportu usługi Intune, a nazwy kolumn CSV są zgodne ze schematem interfejsu API.

Usuwanie skryptu

W skryptach programu PowerShell kliknij prawym przyciskiem myszy skrypt, a następnie wybierz pozycję Usuń.

Znane problemy i rozwiązania

Problem: Skrypty programu PowerShell nie są uruchamiane

Możliwe rozwiązania:

  • Skrypty programu PowerShell nie są uruchamiane przy każdym logowanie. Uruchamiają:

    • Gdy skrypt jest przypisany do urządzenia

    • Jeśli zmienisz skrypt, przekaż go i przypiszesz skrypt do użytkownika lub urządzenia

      Porada

      Rozszerzenie zarządzania usługi Microsoft Intune to usługa działająca na urządzeniu, podobnie jak każda inna usługa wymieniona w aplikacji Usługi (services.msc). Po ponownym uruchomieniu urządzenia ta usługa może zostać ponownie uruchomiona i sprawdzić, czy w usłudze Intune nie ma przypisanych skryptów programu PowerShell. Jeśli usługa Rozszerzenia zarządzania usługi Microsoft Intune ma ustawioną wartość Ręczne, usługa może nie zostać ponownie uruchomiona po ponownym uruchomieniu urządzenia.

  • Upewnij się, że urządzenia są przyłączone do Microsoft Entra identyfikatora. Urządzenia zarejestrowane tylko w miejscu pracy lub organizacji w Microsoft Entra identyfikatorze nie otrzymują skryptów.

  • Upewnij się, że rozszerzenie do zarządzania usługi Intune zostało pobrane do %ProgramFiles(x86)%\Microsoft Intune Management Extensionusługi .

  • Skrypty nie są uruchamiane na urządzeniach Surface Hubs ani w systemie Windows w trybie S.

  • Przejrzyj dzienniki pod kątem błędów. Zobacz Dzienniki rozszerzeń zarządzania usługi Intune (w tym artykule).

  • W przypadku możliwych problemów z uprawnieniami upewnij się, że właściwości skryptu programu PowerShell są ustawione na Run this script using the logged on credentials. Sprawdź również, czy zalogowany użytkownik ma odpowiednie uprawnienia do uruchamiania skryptu.

  • Aby wyizolować problemy ze skryptami, możesz:

    • Przejrzyj konfigurację wykonywania programu PowerShell na urządzeniach. Aby uzyskać wskazówki, zobacz zasady wykonywania programu PowerShell .

    • Uruchom przykładowy skrypt przy użyciu rozszerzenia do zarządzania usługi Intune. Na przykład utwórz C:\Scripts katalog i nadaj wszystkim pełną kontrolę. Uruchom następujący skrypt:

      write-output "Script worked" | out-file c:\Scripts\output.txt
      

      Jeśli to się powiedzie, należy utworzyć output.txt i uwzględnić tekst "Skrypt zadziałał".

    • Aby przetestować wykonywanie skryptów bez usługi Intune, uruchom skrypty na koncie systemowym przy użyciu narzędzia psexec lokalnie:

      psexec -i -s

    • Jeśli skrypt zgłosi, że powiodło się, ale nie powiodło się, możliwe, że usługa antywirusowa będzie obsługiwać tryb piaskownicy AgentExecutor. Poniższy skrypt zawsze zgłasza błąd w usłudze Intune. W ramach testu możesz użyć tego skryptu:

      Write-Error -Message "Forced Fail" -Category OperationStopped
      mkdir "c:\temp"
      echo "Forced Fail" | out-file c:\temp\Fail.txt
      

      Jeśli skrypt zgłasza powodzenie, zapoznaj się z poleceniem AgentExecutor.log , aby potwierdzić dane wyjściowe błędu. Jeśli skrypt zostanie wykonany, długość powinna wynosić >2.

    • Aby przechwycić .error pliki i .output , poniższy fragment kodu wykonuje skrypt za pośrednictwem agentaExecutor do programu PowerShell x86 (C:\Windows\SysWOW64\WindowsPowerShell\v1.0). Przechowuje dzienniki do przeglądu. Pamiętaj, że rozszerzenie zarządzania usługi Intune czyści dzienniki po wykonaniu skryptu:

      $scriptPath = read-host "Enter the path to the script file to execute"
      $logFolder = read-host "Enter the path to a folder to output the logs to"
      $outputPath = $logFolder+"\output.output"
      $errorPath =  $logFolder+"\error.error"
      $timeoutPath =  $logFolder+"\timeout.timeout"
      $timeoutVal = 60000
      $PSFolder = "C:\Windows\SysWOW64\WindowsPowerShell\v1.0"
      $AgentExec = "C:\Program Files (x86)\Microsoft Intune Management Extension\agentexecutor.exe"
      &$AgentExec -powershell  $scriptPath $outputPath $errorPath $timeoutPath $timeoutVal $PSFolder 0 0
      

Problem: Dlaczego skrypty są uruchomione, mimo że system Windows nie jest już zarządzany?

Gdy urządzenie z systemem Windows z przypisanymi skryptami nie jest już zarządzane, program IME nie zostanie natychmiast usunięty. Program IME wykrywa, że system Windows nie jest zarządzany podczas następnego zaewidencjonowania ime (zwykle co 8 godzin) i anuluje uruchamianie skryptów. W międzyczasie można uruchomić wszystkie skrypty przechowywane lokalnie. Gdy program IME nie może się zaewidencjonować, ponawia próbę zaewidencjonowania przez maksymalnie 24 godziny (czas przebudzenia urządzenia), a następnie usuwa się z urządzenia z systemem Windows.

Następne kroki

Monitorowanie profilów i rozwiązywanie problemów z nimi.