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

Użyj rozszerzenia 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 rozszerza funkcje zarządzania MDM i ułatwia przechodzenie na nowoczesne zarządzanie.

Uwaga

Aby uzyskać informacje o rozszerzeniu zarządzania usługi Intune dla systemu Windows, zobacz Rozszerzenie 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 z uprawnieniami administratora.

  • Użytkownicy końcowi nie muszą logować się na urządzeniu, aby wykonywać skrypty programu PowerShell.

  • Rozszerzenie do zarządzania usługi Intune sprawdza po każdym ponownym uruchomieniu komputera nowe skrypty i zmiany. Po przypisaniu zasad do grup usługi Microsoft Entra skrypt programu PowerShell zostanie uruchomiony, a wyniki uruchomienia zostaną zgłoszone. Po wykonaniu skryptu nie jest on wykonywany ponownie, chyba że nastąpi zmiana w skrypcie lub zasadach. Jeśli skrypt nie powiedzie się, rozszerzenie zarządzania usługą Intune ponawia próbę skryptu trzy razy w trzech kolejnych zaewidencjonowaniach rozszerzenia zarządzania usługą 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żytkowników 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.

  • Skrypty programu PowerShell przekraczają limit czasu po 30 minutach.

Ważna

Najważniejsze wskazówki dotyczące świadomości prywatności podczas korzystania ze skryptów programu PowerShell i skryptów korygujących obejmują:

  • Nie umieszczaj w skryptach żadnych typów informacji poufnych (takich jak hasła)
  • Nie uwzględniaj danych osobowych w skryptach
  • Nie używaj skryptów do zbierania danych osobowych z urządzeń
  • Zawsze przestrzegaj najważniejszych wskazówek dotyczących prywatności

Aby uzyskać pokrewne informacje, zobacz Korygowanie.

Wymagania wstępne

Ważna

Skrypty wdrożone na klientach z rozszerzeniem do zarządzania usługi Intune nie działają, jeśli zegar systemowy urządzenia jest wyjątkowo nieaktualny o miesiące lub lata. Po zaktualizowaniu zegara systemowego skrypt zostanie uruchomiony zgodnie z oczekiwaniami.

Tworzenie i przypisywanie zasad skryptów

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

  2. Wybierz urządzenia>Skrypty i środki zaradcze>Dodaj: skrypty> platformyDodaj>: system 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 i 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 i wybierz przycisk 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 systemowym. Wielu administratorów wybiera opcję Tak. Jeśli skrypt jest wymagany do uruchomienia w kontekście systemowym, wybierz pozycję Nie.

    • Wymuszaj sprawdzanie podpisu skryptu: Wybierz pozycję Tak (ustawienie domyślne), jeśli skrypt musi być podpisany przez zaufanego wydawcę. Wybierz pozycję Nie , jeśli nie ma potrzeby podpisywania 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. Wybranie pozycji Nie (domyślna) powoduje uruchomienie skryptu na 32-bitowym hoście programu PowerShell.

      W przypadku ustawiania wartości Tak lub Nie użyj poniższej tabeli dla nowych i istniejących zachowań zasad:

      Uruchamianie skryptu na hoście 64-bitowym Architektura klienta Nowy skrypt Skrypt istniejących zasad
      Nie Wersja 32-bitowa Obsługiwany host 32-bitowej wersji programu PowerShell Działa tylko na 32-bitowym hoście programu PowerShell, który działa w architekturach 32- i 64-bitowych.
      Tak Wersja 64-bitowa Uruchamia skrypt na hoście 64-bitowej wersji programu PowerShell dla architektur 64-bitowych. Po uruchomieniu skryptu w wersji 32-bitowej skrypt działa w 32-bitowej wersji hosta programu PowerShell. Uruchamia skrypt na 32-bitowym hoście programu PowerShell. Jeśli to ustawienie zmieni się na 64-bitowe, skrypt zostanie otwarty (nie uruchomiony) na 64-bitowym hoście programu PowerShell i podaje wyniki. Skrypt uruchamiany w wersji 32-bitowej działa w 32-bitowej wersji hosta programu PowerShell.
  5. Wybierz pozycję Tagi zakresu. Tagi zakresu są opcjonalne. Używanie kontroli dostępu opartej na rolach i tagów zakresu dla rozproszonego działu IT ma więcej informacji.

    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 zadania>Wybierz grupy do uwzględnienia. Zostanie wyświetlona istniejąca lista grup usługi Microsoft Entra.

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

      Uwaga

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

    • Wybierz pozycję Dalej.

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

  7. W obszarze Recenzja + dodaj zostanie wyświetlone podsumowanie skonfigurowanych ustawień. Wybierz pozycję Dodaj , aby zapisać skrypt. Po wybraniu pozycji Dodaj zasady zostaną wdrożone w wybranych grupach.

Scenariusz — niepowodzenie uruchamiania skryptu

godz. 8:00

  • Zaewidencjonuj się
  • Uruchom skrypt ConfigScript01
  • Skrypt kończy się niepowodzeniem

9:00

  • Zaewidencjonuj się
  • Uruchom skrypt ConfigScript01
  • Skrypt kończy się niepowodzeniem (liczba ponownych prób = 1)

godz. 10

  • Zaewidencjonuj się
  • Uruchom skrypt ConfigScript01
  • Skrypt kończy się niepowodzeniem (liczba ponownych prób = 2)

godz. 11

  • Zaewidencjonuj się
  • Uruchom skrypt ConfigScript01
  • Skrypt kończy się niepowodzeniem (liczba ponownych prób = 3)

godz. 12

  • Zaewidencjonuj się
  • Nie są podejmowane żadne inne próby uruchomienia skryptu ConfigScript01.
  • Jeśli nie wprowadzono żadnych innych zmian w skrypcie, nie są podejmowane żadne inne próby uruchomienia skryptu.

Monitorowanie stanu uruchamiania

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
  • Status użytkownika

Uwaga

Eksporty stanu urządzeń 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 skrypt prawym przyciskiem myszy i wybierz polecenie 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 logowaniu. Są one uruchamiane:

    • Gdy skrypt jest przypisany do urządzenia

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

      Porada

      Rozszerzenie zarządzania usługi Microsoft Intune jest usługą uruchamianą na urządzeniu, tak 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ć wszelkie przypisane skrypty programu PowerShell z usługą Intune. Jeśli usługa rozszerzenia zarządzania usługą Microsoft Intune jest ustawiona jako Ręcznie, usługa może nie zostać ponownie uruchomiona po ponownym uruchomieniu urządzenia.

  • Upewnij się, że urządzenia są połączone z usługą Microsoft Entra ID. Urządzenia zarejestrowane tylko w Twoim miejscu pracy lub organizacji w usłudze Microsoft Entra ID nie otrzymują skryptów.

  • Potwierdź, że rozszerzenie do zarządzania usługą Intune zostało pobrane do .%ProgramFiles(x86)%\Microsoft Intune Management Extension

  • W trybie S mode nie działają skrypty na urządzeniach Surface Hub ani w systemie Windows.

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

  • W przypadku ewentualnych 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ź także, czy zalogowany użytkownik ma odpowiednie uprawnienia do uruchomienia skryptu.

  • Aby wyizolować problemy ze skryptami, można wykonać następujące czynności:

    • 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 zarządzania usługi Intune. Na przykład utwórz C:\Scripts katalog i daj wszystkim pełną kontrolę. Uruchom następujący skrypt:

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

      Jeśli zostanie pomyślnie utworzony output.txt, powinien on zawierać tekst "Skrypt dział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 informuje, że operacja powiodła się, ale w rzeczywistości nie zakończyła się pomyślnie, możliwe, że usługa antywirusowa działa w 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łosi powodzenie, sprawdź, AgentExecutor.log aby potwierdzić dane wyjściowe błędu. Jeśli skrypt zostanie wykonany, jego długość powinna wynosić >2.

    • Aby przechwycić .error pliki i .output , poniższy fragment kodu wykonuje skrypt za pośrednictwem funkcji AgentExecutor do programu PowerShell x86 (C:\Windows\SysWOW64\WindowsPowerShell\v1.0). Zachowuje dzienniki do wglądu. Pamiętaj, że rozszerzenie do zarządzania usługą 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, edytor IME nie jest natychmiast usuwany. Edytor IME wykrywa, że system Windows nie jest zarządzany podczas następnego sprawdzania edytora IME (zwykle co 8 godzin) i anuluje uruchomienia skryptów. W międzyczasie można uruchomić wszelkie skrypty przechowywane lokalnie. Gdy edytor IME nie może się zaewidencjonować, ponawia próby zaewidencjonowania przez maksymalnie 24 godziny (czas czuwania urządzenia), a następnie usuwa się z urządzenia z systemem Windows.

Następne kroki

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