Udostępnij za pośrednictwem


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

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 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 programu .NET Framework 4.7.2 lub nowszego z rozszerzeniem do zarządzania usługi Intune na klientach systemu Windows. Jeśli klient systemu Windows będzie nadal używać starszej wersji programu .NET Framework, rozszerzenie do zarządzania usługi Intune będzie nadal działać. Program .NET Framework 4.7.2 jest dostępny w usłudze Windows Update od 10 lipca 2018 r., który jest uwzględniony w systemie Win10 1809 (RS5) i nowszym. Należy pamiętać, że wiele wersji programu .NET Framework może współistnieć na urządzeniu.

Ta funkcja ma zastosowanie do:

  • Windows 10 lub nowszy (z wyłączeniem systemu Windows 10 Home)

Uwaga

Po spełnieniu wymagań wstępnych rozszerzenia do zarządzania usługi Intune rozszerzenie do zarządzania usługi Intune jest instalowane automatycznie, gdy do użytkownika lub urządzenia zostanie przypisany skrypt programu PowerShell lub aplikacja Win32, aplikacje ze Sklepu Microsoft, niestandardowe ustawienia zasad zgodności lub proaktywne korygowanie. Aby uzyskać więcej informacji, zobacz Wymagania wstępne dotyczące rozszerzeń zarządzania usługi Intune.

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 usługi 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 systemu Windows 10 komunikuje się z usługą 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żna użyć funkcji zarządzania aplikacjami Win32 na urządzeniach z systemem Windows 10.

Rozszerzenie do zarządzania usługi Intune uzupełnia wbudowane funkcje mdm systemu Windows 10. Skrypty programu PowerShell można tworzyć do uruchamiania na urządzeniach z systemem Windows 10. Na przykład utwórz skrypt programu PowerShell, który wykonuje zaawansowane konfiguracje urządzeń. Następnie przekaż skrypt do usługi 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 usługi 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 usługi Intune ponawia próbę użycia skryptu trzy razy w przypadku kolejnych trzech kolejnych zaewidencjonowania agenta rozszerzenia zarządzania usługi Intune.

  • 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 do zarządzania usługi Intune ma następujące wymagania wstępne. Po ich spełnieniu rozszerzenie do zarządzania usługi Intune jest instalowane automatycznie po przypisaniu skryptu programu PowerShell lub aplikacji Win32 do użytkownika lub urządzenia.

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

  • Urządzenia przyłączone do usługi Microsoft Entra ID, w tym:

  • Urządzenia zarejestrowane w usłudze Intune, w tym:

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

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

      • Automatyczna rejestracja w usłudze Intune jest włączona w usłudze Microsoft Entra ID. Użytkownicy logują się do urządzeń przy użyciu lokalnego konta użytkownika i ręcznie dołączają urządzenie do identyfikatora 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 konta Microsoft Entra, a następnie rejestruje się w usłudze Intune.
    • Współzarządzane urządzenia korzystające z programu Configuration Manager i usługi Intune. Podczas instalowania aplikacji Win32 upewnij się, że obciążenie Aplikacje jest ustawione na pilotażową usługę Intune lub Intune. Skrypty programu PowerShell będą uruchamiane, nawet jeśli obciążenie Aplikacje jest ustawione na program Configuration Manager. Rozszerzenie do zarządzania usługi Intune zostanie wdrożone na urządzeniu, gdy na urządzeniu zostanie skierowany skrypt programu PowerShell. Pamiętaj, że urządzenie musi być urządzeniem przyłączonym hybrydowo do usługi Microsoft Entra lub Microsoft Entra. Ponadto musi być uruchomiony system Windows 10 w wersji 1607 lub nowszej. Aby uzyskać wskazówki, zobacz następujące artykuły:

  • Skrypty wdrożone dla klientów z rozszerzeniem do zarządzania usługi 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 (Korzystanie z maszyn wirtualnych z systemem Windows 10 w usłudze Intune).

Tworzenie zasad skryptu i przypisywanie ich

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

  2. Wybierz pozycję Urządzenia>Skrypty i korygowania Skrypty>>platformyDodaj>system Windows 10 lub nowszy.

    Zrzut ekranu przedstawiający tworzenie nowego skryptu dla urządzenia z systemem 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 usłudze Intune mogą być kierowane do grup zabezpieczeń urządzeń Microsoft Entra lub grup zabezpieczeń użytkowników usługi Microsoft Entra. Jednak w przypadku kierowania urządzeń przyłączonych do miejsca pracy (WPJ) mogą być używane tylko grupy zabezpieczeń urządzeń Microsoft Entra (określanie wartości docelowej użytkowników zostanie zignorowane).

    2. 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.

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 rozszerzeń zarządzania usługi 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 usłudze Microsoft Intune

Ponadto można użyć pliku dziennika AppWorkload.log , aby ułatwić rozwiązywanie problemów i analizowanie zdarzeń zarządzania aplikacjami Win32 na kliencie. Ten plik dziennika zawiera wszystkie informacje rejestrowania związane z działaniami wdrażania aplikacji prowadzonymi przez program IME.

Usuwanie skryptu

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

Znane problemy i rozwiązania

Problem: Rozszerzenie do zarządzania usługi Intune nie jest pobierane

Możliwe rozwiązania:

  • Urządzenie nie jest przyłączone do usługi Microsoft Entra ID. 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 do zarządzania usługi 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ę Utwórz raport.
  4. Otwórz plik MDMDiagReport w przeglądarce internetowej.
  5. Wyszukaj właściwość 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 automatycznej rejestracji w systemie Windows 10 obejmuje kroki konfigurowania automatycznej rejestracji w usłudze 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 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 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 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 identyfikatora Usługi Microsoft Entra. Urządzenia przyłączone tylko do miejsca pracy lub organizacji (zarejestrowane w identyfikatorze Microsoft Entra) nie otrzymają 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 10 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ł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 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
      

Następne kroki

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