bugger
Goto Top

Powershell - Script wird über Aufgabe nicht ohne vorherige Anmeldung ausgeführt

Hallo,

ich habe folgendes Script:
Get-WMIObject -class Win32_UserProfile | Where {(!$_.Special) -and ($_.LocalPath -ne "C:\Users\Administrator") -and ($_.LocalPath -ne "C:\Users\Task") -and ($_.ConvertToDateTime($_.LastUseTime) -lt (Get-Date).AddHours(-1))} | Remove-WmiObject  

Die Aufgabe funktioniert nicht, wenn der Benutzer Task nicht vorher am Server angemeldet war. Wenn ich mich mit dem Benutzer einmal an- und wieder abmelde kann ich die Aufgabe mit dem Task Benutzer ausführen. Bin dann mit Admin angemeldet. Kann mir jemand erklären warum das so ist?
Ich habe das Script in eine exe umgewandelt und das funktioniert einwandfrei auch ohne vorherige Anmeldung. Würde trotzdem gerne wissen, warum das so ist face-smile

Gruß
Bugger

Content-Key: 517561

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

Printed on: April 23, 2024 at 06:04 o'clock

Member: SeaStorm
SeaStorm Nov 21, 2019 updated at 17:21:58 (UTC)
Goto Top
hi

wie führst du das Script denn aus? Also per powershell.exe -Path .... ?
Und wie genau sind da die parameter?
Mitglied: 141965
141965 Nov 21, 2019, updated at Nov 22, 2019 at 12:50:13 (UTC)
Goto Top
Würde trotzdem gerne wissen, warum das so ist
Wir würden gerne wissen was du so alles in deinem Task eingestellt hast. face-smile

Befehlszeile in der Action? Pfad/LW der ohne Anmeldung nicht verfügbar ist?

Die Sicherheitsoptionen des Task so einstellen dann klappt's auch mit dem Nachbarn face-wink

screenshot

Unter Aktionen dann:

  • Programm/Skript: powershell
  • Argumente: -EP Bypass -NoP -File "C:\script.ps1"
oder als Alternative den Einzeiler direkt als Command in die Argumente packen:

  • Argumente: -EP Bypass -NoP -C "Get-WMIObject -class Win32_UserProfile | Where {(!$_.Special) -and ($_.LocalPath -ne 'C:\Users\Administrator') -and ($_.LocalPath -ne 'C:\Users\Task') -and ($_.ConvertToDateTime($_.LastUseTime) -lt (Get-Date).AddHours(-1))} | Remove-WmiObject"
Member: Bugger
Bugger Nov 22, 2019 at 08:11:47 (UTC)
Goto Top
Ja, das hätte ich gestern wohl noch besser erwähnen sollen face-smile

Programm: powershell
Argument: -command "\\server\script.ps1"

Die Aufgabe beendet immer mit (0x1). Habe es auch mit deinen Argumenten probiert, gleiches Ergebnis. Ob die Datei auf dem Server liegt oder lokal ist auch egal. Auf System User habe ich auch geändert. OS ist Server2012R2.
Mitglied: 141965
141965 Nov 22, 2019 updated at 09:22:52 (UTC)
Goto Top
Bau ein Start-Transcript um den Code dann siehst du was schief läuft.
Member: Bugger
Bugger Nov 22, 2019 at 10:42:37 (UTC)
Goto Top
Habe
Start-Transcript -Path "C:\transcript.txt"  
am Anfang hinzugefügt, die Datei wird aber nicht erst erstellt.
Das Script ansich funktionniert ja auch, nur halt nicht unter den oben genannten Voraussetzungen.
Member: SeaStorm
SeaStorm Nov 22, 2019 at 11:50:30 (UTC)
Goto Top
Hi

du verwendest LastUseTime und versuchst das zu convertieren, auch wenn da nix drin steht. Wenn du einen user im System hast der aber noch nie mit einem Profil angemeldet war, dann steht da halt nix drin. Dann gibts eine Exception und das Script geht auf die Bretter.
Schau dir die Ausgabe von
Get-WMIObject -class Win32_UserProfile | ft -Property Special, Localpath, Lastusetime
an, dann siehst du wahrscheinlich eine Reihe ohne Datum

Das musst du entsprechend abfangen, dann sollte das passen
Member: Bugger
Bugger Nov 22, 2019 at 11:54:02 (UTC)
Goto Top
Habs gelöst, läuft jetzt.

Als Argument muss stehen:

-ExecutionPolicy ByPass -File "\\server\script.ps1"  

Mit -ExP Bypass hat es nicht funktioniert, ausgeschrieben schon. Trotzdem danke für die Hilfe face-smile
Mitglied: 141965
141965 Nov 22, 2019 updated at 12:55:12 (UTC)
Goto Top
Uups ist mir doch tatsächlich ein x dazwischen gerutscht, die Abkürzung dafür lautet natürlich -EP ByPass, sorry, ist oben korrigiert. Da ich momentan zwei Finger verbunden habe zählt jeder Buchstabe face-wink.

Naja, eigentlich sollte man sich schon mal mit der Executionpolicy auseinandersetzen wenn man schon PS Skripte einsetzt face-wink.
Member: Bugger
Bugger Nov 22, 2019 updated at 13:07:01 (UTC)
Goto Top
Ja, ExecutionPolicy ist mir nicht fremd, allerdings habe ich es halt nie abgekürzt und in einer Aufgabe verwendet. So kam halt eins zum anderen.^^ Und -ExP hat ja auch sinn gemacht :D