f1rehell
Goto Top

GPO scheduled user task ohne taskeng.exe

Hallo zusammen,

benötige einmal eure Hilfe, hier wird ein
- Windows Server 2008 R2 Standard
- Windows 7 Clientsysteme
eingesetzt. Auf dem Server habe ich nun eine GPO angelegt, dass in einem Intervall ein PowerShell-Skript gestartet wird.

Mein Problem dabei ist, dass die Taskeng.exe (ich vermute einmal dieses Fenster startet mein Skript), ein kleines PowerShell-Fenster, auf geht.
Dieses Fenster ist im Vordergrund ohne Fokus. Ich finde es störend, da nichts drin steht. Ich gehe davon aus, dass jeder User dies genauso finden wird, wenn er zum Beispiel gerade sein Word-Dokument bearbeitet. Ich bekomme es nicht ausgeblendet, hat jemand eine Idee wie es ausgeblendet oder wenigstens Minimiert startet?

Info: Mit dem -WindowStyle Minimized oder Hidden kann ich arbeiten. Jedoch beeinflusst dies nicht die taskeng.exe, die wahrscheinlich mein Skript startet.

Grüße
F!re

Content-ID: 170133

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

Ausgedruckt am: 23.11.2024 um 01:11 Uhr

DerWoWusste
DerWoWusste 21.07.2011 um 13:35:30 Uhr
Goto Top
Hi.

Beschreibe im Detail, wie Du den Task anlegst. Dein Problem ist auf jeden Fall lösbar.
F1rehell
F1rehell 21.07.2011 um 15:23:34 Uhr
Goto Top
Hallo,

dass freut mich face-smile
Auf dem Server im Group Policy Management - Meine Policy - Edit...
Im Editor unter User Configuration - Preferences - Control Panel Settings - Scheduled Task.
Hier auf New -> Scheduled Task (Windows Vista and later).

Im Reiter General:
Action: Create bzw. wenn was geändert wurde Update.
Name usw.

Security options
%LogonDomain%\%LogonUser%
Run only when user is logged on
Configure for: Windows 7

Im Reiter Triggers:
Begin the task: On a schedule
Weekly every 2 on Tuesday.
Delay task for up to 1 hour.
Stop task if it runs longer than 30 minutes
Enabled

(Zum testen hatte ich hier mal eingestellt täglich alle 5 Min. - selbes Problem)

Im Reiter Actions:
Start a program
Settings
Program/script: powershell.exe
Add arguments(optional): -file script.ps1

Im Reiter Conditions:
Start only if the following network connection is available: any connection (Das Script muss auf das Netzwerk schreiben.)

Im Reiter Settings:
Allow task to be run on demand
Run task as soon as possible after a scheduled start is missed
If the task fails, restart every 2 hours
If the task is already running, then the following rule applies: Do not start a new instance

Im Reiter common:
nichts

Die policy wird auch beim client angewendet und der Task landet im Task Scheduler in der Task Scheduler Libary. Manuell kann ich es auch starten. Aber es kommt immer dieses Fenster Taskeng.exe.

Grüße
F!re
DerWoWusste
DerWoWusste 21.07.2011 um 16:39:45 Uhr
Goto Top
Muss der Task im Userkontext laufen?
Wenn nein, leg ihn mit User system an.
Wenn ja, lies die Lösung von yomanfu: http://www.vistax64.com/general-discussion/185447-task-scheduler-tasken ...
F1rehell
F1rehell 21.07.2011 um 18:01:31 Uhr
Goto Top
Ich kann es dennoch morgen (Freitag) einmal testen. Aber ja es sollte als Userkontext laufen.
In dem einen Script lese ich die Drucker über WMI Objekte aus, die der User installiert hat.
In dem anderen lese ich die Netzlaufwerke über den Registry-Hive HKCU aus face-smile
Daher reichen auch 2 Wochen Intervalle...

Vielen Dank für den Link.
F1rehell
F1rehell 22.07.2011 um 10:43:33 Uhr
Goto Top
Das mit dem hstart.exe hört sich gut an. Denke es würde auch gut funktionieren im Userkontext.
Da ich aber vermeiden möchte ein extra Tool, in diesem Fall hstart.exe, zu verteilen, habe ich mir nun anders geholfen.

Ich habe die Einstellung gefunden:
Im Reiter Triggers - Edit/New Begin the Task at lock workstation.

Da die Anwender bei uns die regelmäßig machen, und eine andere GPO dies bei idle erzwingt, ist garantiert das das Skript regelmäßig läuft face-smile

Vielen vielen Dank für die Hilfe!
F1re
F1rehell
F1rehell 30.07.2011 um 16:15:31 Uhr
Goto Top
Hallo nochmal,

habe noch eine weitere Lösung gefunden:

Die Lösung besteht darin, dass der Task ein *.vbs Script startet. Mit diesem Skript kann es dann mein PowerShell *.ps1-Skript starten. Damit ist es unsichtbar face-smile

'my.vbs als Task ohne Argumente eingerichtet  
Set WshShell = WScript.CreateObject("WScript.Shell")  
WshShell.Run "powershell.exe & 'C:\temp\TestSkript.ps1' ", 0   
' 0=Hides the window and activates another window.  

Quelle: http://msdn.microsoft.com/en-us/library/d5fk67ky(v=vs.85).aspx

Grüße an die Community
F1re