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:
Przyłączone hybrydowo do usługi Microsoft Entra: urządzenia przyłączone do identyfikatora Entra firmy Microsoft, a także przyłączone do lokalnej usługi Active Directory (AD). Aby uzyskać wskazówki , zobacz Planowanie implementacji dołączania hybrydowego w usłudze Microsoft Entra .
Zarejestrowane w usłudze Microsoft Entra/Dołączone do miejsca pracy (WPJ): urządzenia zarejestrowane w identyfikatorze Microsoft Entra, zobacz Dołączanie do miejsca pracy jako bezproblemowe uwierzytelnianie dwuskładnikowe , 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 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
Zaloguj się do Centrum administracyjnego usługi Microsoft Intune.
Wybierz pozycję Urządzenia>Skrypty i korygowania Skrypty>>platformyDodaj>system Windows 10 lub nowszy.
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.
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.
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:
Wybierz pozycję Wybierz tagi> zakresu wybierz istniejący tag zakresu z listy >Wybierz.
Po zakończeniu wybierz pozycję Dalej.
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 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).
Wybierz pozycję Dalej.
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.
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:
- Przejdź do pozycji Ustawienia>Konta>Dostęp do pracy lub szkoły.
- Wybierz dołączone informacje o koncie>.
- W obszarze Zaawansowany raport diagnostyczny wybierz pozycję Utwórz raport.
- Otwórz plik
MDMDiagReport
w przeglądarce internetowej. - 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 Extension
usł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.