franz-josef-ii
Goto Top

Endpoint Manager - Powershellscript - Fehlersuche

Hello

Ich habe vor kurzem mit dem Endpoint Manager angefangen und komme zur Zeit nicht weiter. Ich habe ein einfaches PS-Script erstellt und hochgeladen. Die Execution Policy steht auf "Allow all Scripts" (Konfigurationsprofil) und die ist laut Admin Center von allen Geräte übernommen worden. Die Geräte sind AAD-joined.

Das Powershellscript hingegen ist im Gerätestatus bei allen Geräten auf "Fehler". Lokal läuft es durch, also sollte es kein Scriptfehler sein.

Wahrscheinlich sehe ich den Wald vor lauter Bäumen nicht mehr 😂 wie kann ich den Fehler etwas (viel) genauer bekommen? .... über den Endpoint Manager, weil zu den Geräten komme ich erst Ende nächster Woche.

Frohe Ostern wünscht alles
Franz

Content-ID: 6693438798

Url: https://administrator.de/contentid/6693438798

Ausgedruckt am: 21.11.2024 um 21:11 Uhr

CMDBlog
CMDBlog 08.04.2023 aktualisiert um 18:11:09 Uhr
Goto Top
Um den genauen Fehler für das Powershell-Skript zu erhalten, kannst du das Geräteprotokoll im Endpoint Manager überprüfen:

Öffne das Microsoft Endpoint Manager Admin Center.
Navigiere zum Bereich "Geräte".
Wähle das betreffende Gerät aus, für das das Powershell-Skript fehlschlägt.
Klicke auf "Geräteprotokoll anzeigen" in der oberen rechten Ecke des Bildschirms.
Suche dann im Protokoll nach Einträgen, die sich auf das Ausführen des Powershell-Skripts beziehen.

Alternativ kannst du auch die Intune Management Extension-Protokolldateien auf dem betreffenden Gerät überprüfen:

Öffnen das Intune-Portal auf dem betreffenden Gerät.
Gehe zu "C:\ProgramData\Microsoft\IntuneManagementExtension\Logs".
Suche nach den Protokolldateien, die mit dem Namen des Skripts beginnen
Schaue dann nach Fehlern oder Warnungen, die möglicherweise das Problem erklären.

Evtl. hilft die das weiterface-smile
Franz-Josef-II
Franz-Josef-II 08.04.2023 um 18:30:47 Uhr
Goto Top
Danke

Das mit der Log-Datei am Gerät weiß ich, darum schrieb ich, daß ich erst wieder zum Ende der Woche dorthinkomme.


Genau dieses "Geräteprotokoll anzeigen" ist das was ich suche ...... und nicht finde.

mdm
nEmEsIs
nEmEsIs 08.04.2023 um 22:38:07 Uhr
Goto Top
Hi

Lade dir mal PSexec runter
Dann führe psexec /is cmd oder Powershell aus
Und dann führe dein Skript nochmal aus.
Klappt das auch ? Wenn nein dann hängt es irgendwo, weil es mit systemrechten ausgeführt wird was der Endpoint Manager such macht.
Wenn Ja willst du uns mitteilen was das Skript beinhaltet vll kommt man so darauf ?

Mit freundlichen Grüßen Nemesis
6247018886
6247018886 09.04.2023 aktualisiert um 00:11:59 Uhr
Goto Top
Start-Transcript ist dein Freund.

Cheers briggs
Franz-Josef-II
Franz-Josef-II 09.04.2023 um 09:28:27 Uhr
Goto Top
Guten Morgen

Zitat von @nEmEsIs:
Lade dir mal PSexec runter

Mit dem Programm kann ich ein Powershellscript auf einem anderen PC ausführen. Mein Script funktioniert ja prinzipiell, nur über den Endpoint-Manager geht es aus irgendeinen Grund nicht und den will ich herausfinden.

Zitat von @6247018886:
Start-Transcript ist dein Freund.

Auch hier wird das Script lokal protokolliert.


Ich hoffe , ich habe da nichts mißverstanden.


Wie gesagt, lokal läuft es fehlerfrei durch und tut, was es tun soll. Konkret erzeugt es eine neue Aufgabe in der Aufgabenplanung. Nur über den Endpoint-Manager tut es eben nicht. Nachdem ich erst wieder Ende der Woche vorort bin, suche ich enen ein Logfile / Protokoll im Endpoint-Manager. Da sollte es doch auch etwas geben, oder?

Frohe Ostern
Franz
6247018886
6247018886 09.04.2023 aktualisiert um 09:39:47 Uhr
Goto Top
Zitat von @Franz-Josef-II:

Zitat von @6247018886:
Start-Transcript ist dein Freund.

Auch hier wird das Script lokal protokolliert.
Nö du kannst die Logdatei ablegen wo du willst, auch Remote auf Netzlaufwerken etc. ...
Franz-Josef-II
Franz-Josef-II 09.04.2023 um 09:48:20 Uhr
Goto Top
Zitat von @6247018886:
Nö du kannst die Logdatei ablegen wo du willst, auch Remote auf Netzlaufwerken etc. ...


Dazu muß ich aber das Script ausführen, oder? Genau darum geht es, es wird eben nicht ausgeführt, ..... zumindest, wenn es über den Endpoint Manager gestartet werden soll

Also Script lokal gestartet -> geht
Dasselbe Script über den Endpoint Manager:

unbenannt
6247018886
6247018886 09.04.2023 aktualisiert um 10:35:24 Uhr
Goto Top
Zitat von @Franz-Josef-II:
Genau darum geht es, es wird eben nicht ausgeführt,
Woraus schlussfolgerst du das konkret wenn du kein Zugriff auf die Clients hast? Intune sagt ja erst mal nur Erfolg oder nicht, nicht das das Skript nicht "gestartet" wäre. Start-Transcript loggt sobald es angelaufen ist.
Wenn es überhaupt nicht startet hast du wohl noch ein ExecutionPolicy-Problem auf deinen Clients.

Also Script lokal gestartet -> geht
Also hast du doch Zugriff auf einen Client. Dann schau in die PowerShell Dienstprotokolle.
nEmEsIs
nEmEsIs 09.04.2023 um 10:18:10 Uhr
Goto Top
Hi

Mit psexec /is cmd oder Powershell führst du dann die Tätigkeiten im Systemkontext aus. (Schalter /is)
Hieran kannst du erstmal testen ob dein Skript im Systemkontext überhaupt lauffähig ist.

Wie gesagt was macht das Skript ?
Vll ist hier der Fehler zu suchen ?

Mit freundlichen Grüßen Nemesis
6247018886
6247018886 09.04.2023 aktualisiert um 10:39:55 Uhr
Goto Top
Zitat von @Franz-Josef-II:
Genau dieses "Geräteprotokoll anzeigen" ist das was ich suche ...... und nicht finde.

mdm
Ich habe vor kurzem mit dem Endpoint Manager angefangen
RTFM in Ruhe über die Feiertage dann wird das schon
Sammeln von Diagnoseinformationen von einem Windows-Gerät
Franz-Josef-II
Franz-Josef-II 09.04.2023 um 16:17:40 Uhr
Goto Top
RTFM

Habe ich jetzt heruntergeladen ...... ich war "nur" zu ungeduldig ...... 42,3MB in einer gezippten Datei ...... der Inhalt nicht am Dateinamen zuordenbar, zumindest nicht alles und am ersten Blick, d.h. etwas "Bettlektüre". 🤣

Dann werde ich wohl etwas ..... Zeit brauchen.

Falls jemand etwas Mitleid mit mir hat und weiß wo man die Logs von Powershellscripten findet .... oder finden könnte ....


Frohe Ostern
6247018886
6247018886 09.04.2023 aktualisiert um 18:07:03 Uhr
Goto Top
Tja Intune Scheixxe halt. Kein Mitleid für den der sich der Cloud opfert face-big-smile. Schmerzen müssen wohl sein bevor man wieder zurück migriert face-wink.
Franz-Josef-II
Franz-Josef-II 09.04.2023 um 18:18:57 Uhr
Goto Top
🤣

Ich bin aber kein Flagellant
🤣
6247018886
6247018886 09.04.2023 aktualisiert um 18:22:59 Uhr
Goto Top
Lass doch einfach mal grep rekursiv auf die Files los, dann ist das auch keine Bettlektüre.
SomebodyToLove
SomebodyToLove 11.04.2023 um 09:39:39 Uhr
Goto Top
Hallo,

ich würde mal die empfohlenen Schritte von Microsoft durchführen dann findest du eventuell raus an welcher Stelle es fehlschlägt:

Quelle: https://learn.microsoft.com/en-us/mem/intune/apps/intune-management-exte ...
Issue: PowerShell scripts do not run
Possible resolutions:

The PowerShell scripts don't run at every sign in. They run:  

When the script is assigned to a device

If you change the script, upload it, and assign the script to a user or device

 Tip

The Microsoft Intune Management Extension is a service that runs on the device, just like any other service listed in the Services app (services.msc). After a device reboots, this service may also restart, and check for any assigned PowerShell scripts with the Intune service. If the Microsoft Intune Management Extension service is set to Manual, then the service may not restart after the device reboots.

Be sure devices are joined to Azure AD. Devices that are only joined to your workplace or organization (registered in Azure AD) won't receive the scripts.  

Confirm the Intune management extension is downloaded to %ProgramFiles(x86)%\Microsoft Intune Management Extension.

Scripts don't run on Surface Hubs or Windows 10 in S mode.  

Review the logs for any errors. See Intune management extension logs (in this article).

For possible permission issues, be sure the properties of the PowerShell script are set to Run this script using the logged on credentials. Also check that the signed in user has the appropriate permissions to run the script.

To isolate scripting problems, you can:

Review the PowerShell execution configuration on your devices. See the PowerShell execution policy for guidance.

Run a sample script using the Intune management extension. For example, create the C:\Scripts directory, and give everyone full control. Run the following script:

PowerShell

Copy
write-output "Script worked" | out-file c:\Scripts\output.txt  
If it succeeds, output.txt should be created, and should include the "Script worked" text.  

To test script execution without Intune, run the scripts in the System account using the psexec tool locally:

psexec -i -s

If the script reports that it succeeded, but it didn't actually succeed, then it's possible your antivirus service may be sandboxing AgentExecutor. The following script always reports a failure in Intune. As a test, you can use this script:  

PowerShell

Copy
Write-Error -Message "Forced Fail" -Category OperationStopped  
mkdir "c:\temp"   
echo "Forced Fail" | out-file c:\temp\Fail.txt  
If the script reports a success, look at the AgentExecutor.log to confirm the error output. If the script executes, the length should be >2.

To capture the .error and .output files, the following snippet executes the script through AgentExecutor to PowerShell x86 (C:\Windows\SysWOW64\WindowsPowerShell\v1.0). It keeps the logs for your review. Remember, the Intune Management Extension cleans up the logs after the script executes:

PowerShell

Copy
$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
Mr-Gustav
Mr-Gustav 11.04.2023 aktualisiert um 10:45:54 Uhr
Goto Top
Was passiert denn wenn du das Onboarding Powershellscript von MS direkt auf der Kiste als Admin ausführst ?
Du schreibst das du selber eins geschrieben hast. Du hast hoffentlich bedacht das dieses Script auch auf die Services zugreifen darf denn das muss es ggf. um Dienste zu starten/beenden/neuzustaren.
Ohne das kein Onboarding

Script kann hier Runtergeladen werden. Hier stehen dann auch deine Möglichkeiten des Onboarding
https://learn.microsoft.com/de-de/microsoft-365/security/defender-endpoi ...
Franz-Josef-II
Franz-Josef-II 12.04.2023 um 08:44:16 Uhr
Goto Top
Guten Morgen

Zunächst einmal ein großes Danke an alle.

Stand der Dinge:

Ich habe zunächst einmal getestet, ob die Scripts prinzipiell ausgeführt werden, nach der Microsoftanleitung 😂 Also ein Script mit:
write-output "Script worked" | out-file c:\script\output.txt  
genau nach Anleitung, lokal testen ist unnötig, ist ja von Microsoft 😂 ..... und gewartet, Fehler ..... geht nicht. Warum nicht? Ganz einfach, es kann kein Verzeichnis erstellen, nur die Datei. Also ein neues Script:
write-output "Script worked" | out-file c:\output.tx  
Das funktioniert (hoffentlich, ich bin nicht vorort, Endpoint Manager behauptet es)

Mein "echtes" Script geht aber (noch) nicht. Es soll eine Aufgabenplanung erstellen, herunterfahren des Systems. In den Diagnosedateien finde ich folgendes Passus:
[HKEY_LOCAL_MACHINE\software\microsoft\intunemanagementextension\Policies\0ada1917-c561-4486-9bc5-4ef525948469\295195c7-513a-49f4-b29b-492550b244c3]
"DownloadCount"=dword:00000001  
"Result"="Failed"  
"LastUpdatedTimeUtc"="11.04.2023 06:04:56"  
"PolicyHash"="fNyuE0nWSxlRBMqWSyKZbR58nYFHmrhZweHWxUqygJU="  
"ResultDetails"="{\"Version\":1,\"SigningCode\":649,\"EncryptionCode\":633,\"SigningMsg\":\"(Success) AccountId:9a256fc0-41fa-49d9-8865-542baf9c3a7f,PolicyId:295195c7-513a-49f4-b29b-492550b244c3,Type:1,Enforce: Enforcement2. OSVersion:10.0.19045,AgentVersion:1.64.106.0. \",\"EncryptMsg\":\"run in legacy mode\",\"ExecutionMsg\":\"Set-ExecutionPolicy : Die Ausführungsrichtlinien wurden von Windows PowerShell erfolgreich aktualisiert, die \\r\\nEinstellung wird jedoch von einer in einem spezielleren Bereich definierten Richtlinie überschrieben. Aufgrund der \\r\\nÜberschreibung wird die aktuelle geltende Ausführungsrichtlinie \\\"Unrestricted\\\" für die Shell beibehalten. Geben Sie \\r\\n\\\"Get-ExecutionPolicy -List\\\" ein, um die Ausführungsrichtlinieneinstellungen anzuzeigen. Weitere Informationen erhalten \\r\\nSie mit \\\"Get-Help Set-ExecutionPolicy\\\".\\r\\nIn C:\\\\Program Files (x86)\\\\Microsoft Intune Management \\r\\nExtension\\\\Policies\\\\Scripts\\\\0ada1917-c561-4486-9bc5-4ef525948469_295195c7-513a-49f4-b29b-492550b244c3.ps1:1 Zeichen:1\\r\\n+ Set-ExecutionPolicy -ExecutionPolicy Bypass\\r\\n+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\\r\\n    + CategoryInfo          : PermissionDenied: (:) [Set-ExecutionPolicy], SecurityException\\r\\n    + FullyQualifiedErrorId : ExecutionPolicyOverride,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand\\r\\nRegister-ScheduledTask : Zuordnungen von Kontennamen und Sicherheitskennungen wurden nicht durchgeführt.\\r\\n(40,4):UserId:\\r\\nIn C:\\\\Program Files (x86)\\\\Microsoft Intune Management \\r\\nExtension\\\\Policies\\\\Scripts\\\\0ada1917-c561-4486-9bc5-4ef525948469_295195c7-513a-49f4-b29b-492550b244c3.ps1:7 Zeichen:1\\r\\n+ Register-ScheduledTask -TaskName ShutDown -TaskPath \\\"\\\\SCH\\\" -Action $a ...\\r\\n+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\\r\\n    + CategoryInfo          : NotSpecified: (PS_ScheduledTask:Root/Microsoft/...S_ScheduledTask) [Register-ScheduledTa \\r\\n   sk], CimException\\r\\n    + FullyQualifiedErrorId : HRESULT 0x80070534,Register-ScheduledTask\\r\\n \\r\\n\\r\\n\"}"  
"InternalVersion"=dword:00000001  
"ErrorCode"=dword:00000063  
"TargetType"="Device"  
"RunAsAccount"="System"  


So ganz verstehe ich ihn nicht, vor allem diese Zeile:
Register-ScheduledTask : Zuordnungen von Kontennamen und Sicherheitskennungen wurden nicht durchgeführt.

Ein Powershellscript übern Endpoint Manager rennt doch mit Systemrechten? Oder? Also sollte es doch funktionieren. Lokal gehts.
Franz-Josef-II
Franz-Josef-II 13.04.2023 um 12:57:01 Uhr
Goto Top
Stand der Dinge:

So wie es ausschaut kann der User "System" keine Aufgabe in der Aufgabenplanung erstellen, außer er wird mit der User-ID .....
Ist zwar schon etwas älter, aber offensichtlich immer noch gültig.

Somit ergibt sich folgende Frage:

Hat schon jemand eine Aufgabe übern Endpoint Manager erstellt, egal ob Powershell oder anders? Es geht um Herunterfahren am Abend bzw Starten in der Früh.
SomebodyToLove
Lösung SomebodyToLove 13.04.2023 um 16:17:53 Uhr
Goto Top
Hiho Franz-Josef-II,

ich habe es leider bisher noch nicht konfiguriert.
Aber hier habe ich was beim Onkel Google gefunden, vielleicht hilft es dir ja weiter:
https://credibledev.com/how-to-deploy-a-scheduled-task-in-intune/

Grüße
Somebody
Franz-Josef-II
Franz-Josef-II 14.04.2023 um 08:32:21 Uhr
Goto Top
Guten Morgen

Das geht 🤣 Danke

Also, zusammengefaßt:
  • MDM: Windows Powershellscripts können hochgeladen werden und laufen
  • Auch erstellte Aufgaben laufen ...... sofern im Userkontext
  • Als "System" werden die Aufgaben nicht erstellt, weil man dazu die SID braucht .....
  • Also geht das nur, wenn man die Aufgabe als win32App verpackt ......
SomebodyToLove
SomebodyToLove 14.04.2023 um 08:34:51 Uhr
Goto Top
Jo macht absolut Sinn, oder so face-smile

Wenigstens läuft es.