Używanie skryptów programu PowerShell na urządzeniach Windows 10/11 w Intune

Użyj rozszerzenia zarządzania Microsoft Intune, aby przekazać skrypty programu PowerShell w Intune. Następnie uruchom te skrypty na urządzeniach Windows 10. Rozszerzenie zarządzania rozszerza zarządzanie urządzeniami z systemem Windows (MDM) i ułatwia przejście do nowoczesnego zarządzania.

Ważna

Aby obsługiwać rozszerzone funkcje i poprawki błędów, użyj .NET Framework 4.7.2 lub nowszej z rozszerzeniem Intune Management na klientach systemu Windows. Jeśli klient systemu Windows będzie nadal używać starszej wersji .NET Framework, rozszerzenie zarządzania Intune będzie nadal działać. .NET Framework 4.7.2 jest dostępny od Windows Update od 10 lipca 2018 r., który jest uwzględniony w win10 1809 (RS5) i nowszych. Należy pamiętać, że na urządzeniu może współistnieć wiele wersji .NET Framework.

Ta funkcja ma zastosowanie do:

  • Windows 10 i nowsze (z wyłączeniem Windows 10 Home)

Uwaga

Po spełnieniu wymagań wstępnych rozszerzenia zarządzania Intune rozszerzenie Intune jest instalowane automatycznie po przypisaniu skryptu programu PowerShell lub aplikacji Win32, aplikacji ze Sklepu Microsoft, niestandardowych ustawień zasad zgodności lub proaktywnych korygowania do użytkownika lub urządzenia. Aby uzyskać więcej informacji, zobacz Intune Wymagania wstępne dotyczące rozszerzeń zarządzania.

Skrypty programu PowerShell, które nie są oficjalnie obsługiwane na urządzeniach dołączania do miejsca pracy (WPJ), można wdrożyć na urządzeniach WPJ. W szczególności skrypty programu PowerShell kontekstu urządzenia działają na urządzeniach WPJ, ale skrypty programu PowerShell kontekstu użytkownika są ignorowane z założenia. Skrypty kontekstu użytkownika będą ignorowane na urządzeniach WPJ i nie będą zgłaszane do centrum administracyjnego Microsoft Intune.

Przejście do nowoczesnego zarządzania

Przetwarzanie użytkowników przechodzi transformację cyfrową. Tradycyjna dział IT koncentruje się na jednej platformie urządzeń, urządzeniach należących do firmy, użytkownikach, którzy pracują z biura, oraz różnych ręcznych, reaktywnych procesach IT. Nowoczesne miejsce pracy korzysta z wielu platform należących do użytkowników i firm. Umożliwia użytkownikom pracę z dowolnego miejsca i zapewnia zautomatyzowane i proaktywne procesy IT.

Usługi MDM, takie jak Microsoft Intune, mogą zarządzać urządzeniami przenośnymi i stacjonarnymi z systemem Windows 10. Wbudowany klient zarządzania Windows 10 komunikuje się z Intune w celu uruchamiania zadań zarządzania przedsiębiorstwem. Mogą być potrzebne pewne zadania, takie jak zaawansowana konfiguracja urządzenia i rozwiązywanie problemów. W przypadku zarządzania aplikacjami Win32 możesz użyć funkcji zarządzania aplikacjami Win32 na urządzeniach Windows 10.

Rozszerzenie do zarządzania Intune uzupełnia wbudowane funkcje Windows 10 MDM. Skrypty programu PowerShell można tworzyć na urządzeniach Windows 10. Na przykład utwórz skrypt programu PowerShell, który wykonuje zaawansowane konfiguracje urządzeń. Następnie przekaż skrypt do Intune, przypisz skrypt do grupy Microsoft Entra i uruchom skrypt. Następnie możesz monitorować stan uruchomienia skryptu od początku do końca.

Przed rozpoczęciem

  • Gdy skrypty są ustawione na kontekst użytkownika, a użytkownik końcowy ma uprawnienia administratora, domyślnie skrypt programu PowerShell jest uruchamiany w ramach uprawnień administratora.

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

  • Agent rozszerzenia zarządzania Intune sprawdza po każdym ponownym uruchomieniu wszelkie nowe skrypty lub zmiany. 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 nie powiedzie się, agent rozszerzenia zarządzania Intune ponawia próbę użycia skryptu trzy razy przez kolejne trzy kolejne Intune zaewidencjonowania agenta rozszerzenia zarządzania.

  • W przypadku urządzeń udostępnionych skrypt programu PowerShell będzie uruchamiany dla każdego nowego użytkownika, który się zaloguje.

  • 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ą następujące kwestie:

  • Nie uwzględniaj żadnych informacji poufnych w skryptach (takich jak hasła)
  • Nie uwzględniaj danych osobowych (PII) 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

Rozszerzenie zarządzania Intune ma następujące wymagania wstępne. Po ich spełnieniu rozszerzenie zarządzania Intune jest instalowane automatycznie, gdy do użytkownika lub urządzenia zostanie przypisany skrypt programu PowerShell lub aplikacja Win32.

  • Urządzenia z systemem Windows 10 wersji 1607 lub nowszej. Jeśli urządzenie jest zarejestrowane przy użyciu automatycznej rejestracji zbiorczej, urządzenia muszą działać Windows 10 wersji 1709 lub nowszej. Rozszerzenie zarządzania Intune nie jest obsługiwane w Windows 10 w trybie S, ponieważ tryb S nie zezwala na uruchamianie aplikacji innych niż sklepowe.

  • Urządzenia przyłączone do Tożsamość Microsoft Entra, w tym:

  • Microsoft Entra zarejestrowane/przyłączone do miejsca pracy (WPJ): urządzenia zarejestrowane w Tożsamość Microsoft Entra, zobacz Dołączanie do miejsca pracy jako bezproblemowe uwierzytelnianie drugiego czynnika, aby uzyskać więcej informacji. Zazwyczaj są to urządzenia BYOD (Bring Your Own Device), na których dodano konto służbowe za pośrednictwem ustawień>Konta>Dostęp do pracy lub szkoły.

  • Urządzenia zarejestrowane w Intune, w tym:

    • Urządzenia zarejestrowane w zasadach grupy (GPO). Aby uzyskać wskazówki, zobacz Automatyczne rejestrowanie urządzenia Windows 10 przy użyciu zasady grupy.

    • Urządzenia ręcznie zarejestrowane w Intune, czyli wtedy, gdy:

      • Automatyczne rejestrowanie w Intune jest włączone w Tożsamość Microsoft Entra. Użytkownicy logują się do urządzeń przy użyciu lokalnego konta użytkownika i ręcznie dołączają urządzenie do Tożsamość Microsoft Entra. Następnie logują się do urządzenia przy użyciu konta Microsoft Entra.

      LUB

      • Użytkownik loguje się do urządzenia przy użyciu swojego konta Microsoft Entra, a następnie rejestruje się w Intune.
    • Współzarządzane urządzenia korzystające z Configuration Manager i Intune. Podczas instalowania aplikacji Win32 upewnij się, że obciążenie Aplikacje jest ustawione na Intune pilotażowe lub Intune. Skrypty programu PowerShell zostaną uruchomione, nawet jeśli obciążenie Aplikacje zostanie ustawione na Configuration Manager. Rozszerzenie do zarządzania Intune zostanie wdrożone na urządzeniu podczas kierowania skryptu programu PowerShell do urządzenia. Pamiętaj, że urządzenie musi być urządzeniem przyłączonym hybrydowo Tożsamość Microsoft Entra lub Microsoft Entra. Ponadto musi działać Windows 10 wersji 1607 lub nowszej. Aby uzyskać wskazówki, zobacz następujące artykuły:

  • Skrypty wdrożone dla klientów z uruchomionym rozszerzeniem zarządzania Intune nie będą uruchamiane, jeśli zegar systemowy urządzenia jest niezwykle nieaktualny przez miesiące lub lata. Po uaktualnieniu zegara systemowego skrypt będzie uruchamiany zgodnie z oczekiwaniami.

Uwaga

Aby uzyskać informacje na temat korzystania z maszyn wirtualnych z systemem Windows 10, zobacz Using Windows 10 virtual machines with Intune (Używanie maszyn wirtualnych Windows 10 z Intune).

Twórca zasady skryptu i przypisz je

  1. Zaloguj się do centrum administracyjnego 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 Windows 10.

  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. Więcej informacji zawiera użycie kontroli dostępu opartej na rolach (RBAC) i tagów zakresu dla rozproszonej infrastruktury IT.

    Aby dodać tag zakresu:

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

    2. Po zakończeniu wybierz pozycję Dalej.

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

    1. Wybierz co najmniej jedną grupę obejmującą użytkowników, których urządzenia odbierają skrypt. Zaznacz pozycję Wybierz. Wybrane grupy zostaną wyświetlone na liście i otrzymają twoje zasady.

      Uwaga

      Skrypty programu PowerShell w Intune mogą być przeznaczone do Microsoft Entra grup zabezpieczeń urządzeń lub Microsoft Entra grup zabezpieczeń użytkowników. Jednak w przypadku kierowania 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 zostanie zignorowane). Aby uzyskać więcej informacji, zobacz Obsługa aplikacji Win32 dla urządzeń dołączania do miejsca pracy (WPJ).

    2. Wybierz pozycję Dalej.

      Przypisywanie lub wdrażanie skryptu programu PowerShell do grup urządzeń w 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.

Przykład 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 dodatkowe próby uruchomienia skryptu ConfigScript01.
  • Jeśli skrypt nie wprowadzi żadnych dodatkowych zmian, nie zostaną podjęte żadne dodatkowe 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

dzienniki rozszerzenia zarządzania Intune

Dzienniki agenta na maszynie klienckiej są zwykle w programie C:\ProgramData\Microsoft\IntuneManagementExtension\Logs. Możesz użyć CMTrace.exe , aby wyświetlić te pliki dziennika.

Zrzut ekranu lub przykładowe dzienniki agenta cmtrace w Microsoft Intune

Usuwanie skryptu

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

Znane problemy i rozwiązania

Problem: rozszerzenie zarządzania Intune nie jest pobierane

Możliwe rozwiązania:

  • Urządzenie nie jest przyłączone do Tożsamość Microsoft Entra. Upewnij się, że urządzenia spełniają wymagania wstępne (w tym artykule).
  • Nie ma żadnych skryptów programu PowerShell ani aplikacji Win32 przypisanych do grup, do których należy użytkownik lub urządzenie.
  • Urządzenie nie może zaewidencjonować w usłudze Intune. Na przykład nie ma dostępu do Internetu, nie ma dostępu do usług powiadomień wypychanych systemu Windows (WNS) itd.
  • Urządzenie jest w trybie S. Rozszerzenie zarządzania Intune nie jest obsługiwane na urządzeniach działających w trybie S.

Aby sprawdzić, czy urządzenie zostało zarejestrowane automatycznie, możesz:

  1. Przejdź do pozycji Ustawienia>Konta>Dostęp do pracy lub szkoły.
  2. Wybierz dołączone informacje o koncie>.
  3. W obszarze Zaawansowany raport diagnostyczny wybierz pozycję Twórca Raport.
  4. Otwórz plik MDMDiagReport w przeglądarce internetowej.
  5. Search dla właściwości MDMDeviceWithAAD. Jeśli właściwość istnieje, urządzenie zostanie automatycznie zarejestrowane. Jeśli ta właściwość nie istnieje, urządzenie nie jest automatycznie rejestrowane.

Włączanie Windows 10 automatycznej rejestracji obejmuje kroki konfigurowania automatycznej rejestracji w Intune.

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 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 również zostać ponownie uruchomiona i sprawdzić, czy w usłudze Intune nie ma przypisanych skryptów programu PowerShell. Jeśli usługa rozszerzenia zarządzania Microsoft Intune jest ustawiona na ręczne, usługa może nie zostać ponownie uruchomiona po ponownym uruchomieniu urządzenia.

  • Upewnij się, że urządzenia są przyłączone do Tożsamość Microsoft Entra. Urządzenia przyłączone tylko do miejsca pracy lub organizacji (zarejestrowane w Tożsamość Microsoft Entra) nie otrzymają skryptów.

  • Upewnij się, że rozszerzenie zarządzania Intune jest pobierane do %ProgramFiles(x86)%\Microsoft Intune Management Extensionprogramu .

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

  • Przejrzyj dzienniki pod kątem błędów. Zobacz Intune dzienniki rozszerzeń zarządzania (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 zarządzania 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 skryptu bez Intune, uruchom skrypty na koncie systemowym przy użyciu narzędzia psexec lokalnie:

      psexec -i -s

    • Jeśli skrypt zgłasza, że powiodło się, ale faktycznie nie powiodło się, możliwe, że usługa antywirusowa może być piaskownicą AgentExecutor. Poniższy skrypt zawsze zgłasza błąd w 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 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
      

Następne kroki

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