penny.cilin
Goto Top

Starten und anzeigen einer Intranetseite mittels Powershell und Scheduled Task

Hallo,

ich habe ein Powershellscript, welches einmal am Tage eine Intranetseite auf einem Server mittels Scheduled Task starten und angezeigen werden soll. Nach 60 Sekunden wird die Seite wieder geschlossen.

Hintergrund ist folgender: Wenn der erste Anwender die Portalseite aufruft, dauert dieser ewig lange. Um dies zu umgehen, soll nun auf dem Server, wo die Anwendung aktiv ist, die Portalseite mittels Task Scheduler angezeigt werden.

Wenn ich die untenstehende Batchdatei bzw. das untenstehende Powershellscript direkt starte funktioniert es.

Inhalt der Batchdatei:
powershell -command "& 'D:\Program Files\...\...\CallIE.ps1' "  

Inhalt des Powershellscripts:
 $ie = new-object -com "InternetExplorer.Application"  
$ie.navigate("https://.../Portal/")  
$ie.visible = $true
Start-Sleep -s 60
$ie.quit()

Starte ich nun das Powershellscript mittels Task Scheduler, wird die Task zwar ordnungsgemäß ausgeführt und beendet, doch die Portalseite wird nicht angezeigt.

Wie bringe ich die Task nun dazu, daß die Portalseite angezeigt und wieder geschlossen wird?
Wer hat eine Idee?


Betriebsystem: Windows 2008 R2 Enterprise inkl. SP1


Gruss und danke Penny.

Content-Key: 207464

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

Printed on: April 25, 2024 at 15:04 o'clock

Member: DerWoWusste
DerWoWusste Jun 04, 2013 at 11:54:13 (UTC)
Goto Top
Hi.

Vermutlich die alte Leier: der Taskplaner wird etwas missverstanden face-smile
Wenn Du einen Task als anderer Nutzer ausführen lässt, wird er aus Sicherheitsgründen nicht interaktiv zugänglich gemacht.
Prüf also mal im Taskplaner wer ausführt und schau in den Taskmanager (alle Prozessen anzeigen lassen), ob die iexplore.exe zu sehen ist.
Member: Penny.Cilin
Penny.Cilin Jun 04, 2013 updated at 12:51:27 (UTC)
Goto Top
Hallo DWW,

ist Task manager sehe ich zwei task vom Iexpore.exe. Und beide werden unter dem Benutzerkontext ausgeführt, welcher auch die geplante Task startet.

Sollte dann doch funktionieren.
Member: DerWoWusste
DerWoWusste Jun 04, 2013 at 12:54:45 (UTC)
Goto Top
Ja, sollte es, wenn die Beschleunigung nicht im Namen des Benutzers gemacht werden muss, dann schon.
Member: Penny.Cilin
Penny.Cilin Jun 04, 2013 at 12:55:22 (UTC)
Goto Top
Ich habe mittlerweile folgendes rausgefunden:

Wenn man die Option "Run only, when user is logged on" setzt funktioniert es.
Setzt man die Option "Run whether user is logged on or not", dann werden die prozesse für den IE gestartet und sauber beendet, bleiben aber unsichtbar.
Member: Penny.Cilin
Penny.Cilin Jun 04, 2013 updated at 13:13:16 (UTC)
Goto Top
Zitat von @DerWoWusste:
Ja, sollte es, wenn die Beschleunigung nicht im Namen des Benutzers gemacht werden muss, dann schon.

Kannst Du mir dies bitte erklären? Deine die Aussage verstehe ich jetzt nicht. :-o
Member: DerWoWusste
DerWoWusste Jun 04, 2013 at 13:36:45 (UTC)
Goto Top
Kann ich Dir erklären. Wenn Du setzt "Run whether user is logged on or not", dann läuft der Task auch, wenn andere Nutzer den Rechner nutzen und muss somit unsichtbar sein, damit diese ihn nicht interaktiv für Identitätsdiebstahl gebrauchen könnten, denn sie würden im Kontext des ausführenden Nutzers handeln (Stichwort "shatter attack" spielt auch eine Rolle).

Meine andere Aussage zur Beschleunigung: Ich ging bis dato davon aus, dass der Task nicht im Kontext des Nutzers läuft. Somit wäre für den Nutzer nur dann eine Beschl. zu merken, wenn die Software sich nicht dafür interessiert, wer denn da zuvor den Task ausgeführt hat. Beispiel: Die Beschleunigung entsteht durch Caching von Daten nach %temp% - dann wäre es sinnlos, den Task als anderer Benutzer auszuführen.
Member: Penny.Cilin
Penny.Cilin Jun 07, 2013 at 07:41:22 (UTC)
Goto Top
Guten Morgen,

so die Task wird ausgeführt und auch der IE wird unter dem gleichen Benutzerkontext ausgeführt, wie die Task.
Trotzdem dauert der erste Aufruf des Portals auf einem Client ca. 30 Sekunden, bis die Seite geladen ist.

Welche Optimierungsmöglichkeiten gibt es noch?
Wie ist das mit dem Caching des IE?


Gruss Penny.
Member: DerWoWusste
DerWoWusste Jun 07, 2013 at 07:47:03 (UTC)
Goto Top
Wie ist das mit dem Caching des IE?
Verstehe die Frage nicht. Finde bitte erstmal raus, WAS genau die Beschleunigung fördert.
Member: Penny.Cilin
Penny.Cilin Jun 07, 2013 at 08:22:34 (UTC)
Goto Top
Zitat von @DerWoWusste:
> Wie ist das mit dem Caching des IE?
Verstehe die Frage nicht. Finde bitte erstmal raus, WAS genau die Beschleunigung fördert.

Wie kann man dies herausfinden? Im %temp% sehe ich keine Änderung.

Hm, jetzt steh ich auf'm Schlauch???

Zu den Fakten:
Auf dem Server, welcher das Portal bereitstellt, wird die Geplante Task unter dem Benutzerkontext Benutzer A (ist lokaler Admin) gestartet.
Der Benutzer B ruft das Portal als erster Anwender von seinem Client auf und hat bei dann eine Wartezeit von ca. 30 Sekunden bis die Seite geladen ist.

Danach wenn die anderen Benutzer von ihrem Client das Portal aufrufen, wird die Seite sofort angezeigt.
Member: DerWoWusste
DerWoWusste Jun 07, 2013 at 11:00:21 (UTC)
Goto Top
Und was passiert, wenn Du den Task auf einem Client ausführst? Ist es danach für einen weiteren Nutzer auf einem weiteren Client schnell?
Member: Penny.Cilin
Penny.Cilin Jun 07, 2013 at 11:17:09 (UTC)
Goto Top
Die Clients rufen ja die Portalseite direkt auf. Das langsame anzeigen der Portalseite ist soweit wir festgestellt haben immer nur beim ersten Aufruf eines Anwenders am Tage. Also nach den nächtlichen Aktivitäten (Sicherungen, Importe, usw.)

Danach ist der Aufruf von den anderen Anwendern auf ihren Clients in Ordnung.
Member: DerWoWusste
DerWoWusste Jun 07, 2013 at 12:09:43 (UTC)
Goto Top
Ja, ich kenne sowas von unserem Sharepoint-Suchserver, der einen SQL-basierten Suchindex bereitstellt. Der erste Aufruf dauert auch hier 20 Sekunden, danach ratzfatz. Ich denke, dass serverseitig irgendwas erzeugt wird, weiß aber nicht, was.
Auch bei uns werden in der Nacht zu Sicherungszwecken Dienste am Server runtergefahren.
HAben wir bislang ignoriert.
Member: Penny.Cilin
Penny.Cilin Jun 07, 2013 at 12:38:52 (UTC)
Goto Top
Es ist immer nur der erste Aufruf vom ersten Anwender danach ist der Aufruf OK. So wie Du es bei Euch beschrieben hast.

Dumm nur, daß der Projektverantwortliche eine Lösung dafür haben will. Er befürchtet, daß das Projekt dadurch in Mißkredit gebracht wird.
Und da die Problematik jeden Tag auftrtitt, will er nun eine Lösung.

Shit happens. ich werde es an den Softwareherstelleer triggern.
Member: DerWoWusste
DerWoWusste Jun 07, 2013 at 12:54:51 (UTC)
Goto Top
Ich hatte ja noch einen weiteren Lösungsvorschlag gemacht, gar nicht bemerkt? face-smile
Lass den Task mal auf einem Client laufen und nicht am Server.
Member: Penny.Cilin
Penny.Cilin Jun 07, 2013 at 13:01:57 (UTC)
Goto Top
Hm, ist daß nicht das Gleiche, als wenn der erste Anwender das Portal das erste Mal aufruft? Es ist immer nur der erste Aufruf.
Mit dem Powershellskript und dem Aufgabenplaner war eine Idee die eingebracht wurde.

Ich könnte natürlich einen VDI client nehmen. Mit einer Benutzeranmeldung, welcher die Task im interaktiven Modus startet.
Member: DerWoWusste
DerWoWusste Jun 07, 2013 at 13:05:52 (UTC)
Goto Top
Verwirr mich nicht face-smile !
Du schriebst:
Auf dem Server, welcher das Portal bereitstellt, wird die Geplante Task unter dem Benutzerkontext Benutzer A (ist lokaler Admin) gestartet.
...daher dachte ich, Du startest den Task serverseitig und deshalb empfehle ich, ihn testhalber mal clientseitig zu starten.
Member: Penny.Cilin
Penny.Cilin Jun 07, 2013 at 13:17:38 (UTC)
Goto Top
Ich will Dich ja nicht verwirren. Auf einem Server kann ich eine geplante Aufgabe entweder mit dem Systemkontext, oder einem Benutzerkonto ausführen. Ich verwende halt ein Benutzerkonto. Diese Benutzerkonto ist als lokaler Administrator auf dem Server eingerichtet.
Member: DerWoWusste
DerWoWusste Jun 07, 2013 updated at 13:24:00 (UTC)
Goto Top
Ich geb's auf.

Ein viertes Mal bitte ich dich nicht, es mal clientseitig mit dem Task zu versuchen.
Member: Penny.Cilin
Penny.Cilin Jun 07, 2013 at 13:26:16 (UTC)
Goto Top
Ich habe Dich schon verstanden. Das kan ich allerdings erst am Montag in der früh testen.