saschadroemer
Goto Top

Bat - Aufgabenplanung geht nur mit "Nur ausführen, wenn Benutzer angemeldet ist"

Hallo,

wir haben hier eine kleine bat die einwandfrei funktioniert, auch in der Aufgabenplanung ausgeführt wenn "Nur ausführen, wenn Benutzer angemeldet ist" aktiviert ist. Schalten wir das ganze um auf "Unabhängig von der Benutzeranmeldung ausführen" funktioniert das ganze nicht mehr.

Das ganze ist ein Windows 7 System, dessen einzige Aufgabe es ist eine Filemaker Datenbank zur Verfügung zu stellen. System ist neu installiert, alle Updates aktuell. Die bat macht folgendes.

1. Sie ruft ein VB script auf, das die Datenbank/Filemaker schließt.
2. Es wird mittels DirSync.exe ein Backup ausgeführt.
3. Mittels CMAIL wird das erstellte logfile vom Backup per eMail versendet.
4. Mittels VB Script wird die Datenbank wieder gestartet.

Das ganze läuft wunderbar wenn wir es manuell öffnen. Ebenso in der Aufgabenplanung läuft es einwandfrei mit "Nur ausführen, wenn Benutzer angemeldet ist". Der Server hat kein eigenen Monitor und wir verbinden uns mittels Remote Desktop auf die Maschine, insofern muss das ganze auch laufen wenn keiner am System angemeldet ist.

Das ganze muss wohl etwas mit den Gruppenrichtlinien zu tun haben, soweit unsere recherche. Deswegen haben wir den Account Administrator aktiviert, verbinden uns inzwischen mit dem Account Administrator mit dem System und lassen damit den Task in der Aufgabenplanung laufen. Aber es funktioniert nicht.

Kann uns jemand helfen wie wir das Ding zum laufen bekommen ohne das ein Benutzer angemeldet ist?

Danke

Content-Key: 308130

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

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

Member: agowa338
agowa338 Jun 24, 2016 updated at 17:37:26 (UTC)
Goto Top
Hallo,
es tut mir leid, dir das sagen zu müssen, aber die Informationen reichen hierbei leider überhaupt nicht aus. Der Fehler könnte überall sein.

Startet das Skript überhaupt? Also wird es aufgerufen?
Füge doch einfach ein paar Zeilen ala "echo Befehl '<hier befehl der Vorzeile rein kopieren>' wurde ausgeführt mit dem Ergebnis %errorlevel% >> C:\log.txt"
und überprüfe, wo es abbricht. Der befehl, der nicht mehr im log steht, scheitert also.

Desweiteren wäre das Eventlog interessant. Erhälst du irgendeinen Eintrag?
Was wird dir nach dem Start der Aufgabe unter Status angezeigt (bzw. unter letzter Start)?
Und vieles mehr....
Member: saschadroemer
saschadroemer Jun 24, 2016 updated at 18:14:22 (UTC)
Goto Top
HI,

danke für deine Hilfe.

1. Das script startet und läuft einwandfrei wenn man es manuell startet.
2. Das script startet und läuft einwandfei in der Aufgabenplanung bei "Nur ausführen, wenn Benutzer angemeldet ist"
3. Das script läuft nicht wenn "Unabhängig von der Benutzeranmeldung ausführen" in der Aufgabenplanung gesetzt ist.

Der Status im Aufgabenplaner ist: "wird ausgeführt". Ergebnis der letzten Ausführung: "Aufgabe wird momentan ausgeführt (0X41301)

Das cmd Fenster öffnet nicht, ebenso das Fenster von DirSync, dem Backuptool. Das Backup scheint im Hintergrund zu laufen, jedenfalls wird ein aktuelles logfile erstellt, das auch versendet wird. Die eMail kommt an.

Das VB script zum beenden und das VB script zum starten läuft definitiv nicht.

Was genau soll ich anpassen? Und wo kann ich das Eventlog auslesen?

Hier die .bat:

@Echo off
chcp 1252>nul
@Echo.
@Echo  Backupprozess gestartet
@Echo  =======================
@Echo.
@Echo  1. Azuro Office wird beendet.
@Echo.
@ECHO  2. Das Backup wird gestartet.
@Echo.
@ECHO  3. eMail mit Logfile wird versand.
@Echo.
@ECHO  4. AZURO Office wird wieder gestartet.
@Echo.
@Echo  Bitte haben sie etwas gedult, das Fenster schliesst automatisch.
@Echo.
@Echo  Erst dann ist der Backupprozess beendet.
WScript.exe c:\AZURO\scripte\azuro_ende.vbs
WAIT 15 KEY
@"C:\AZURO\scripte\DirSync\DIRSYNC.EXE" -s "C:\AZURO\" -d "D:\taeglich\AZURO\" -start -exit -del -securelog -nospacecheck -prio high -logdir "D:\taeglich\logfiles\"  
cmail -host:smtp.***.de -to:***@***.de -from:***@***.de "-subject:Azuro Office Backup täglich - %date%" "-body:Hallo,"\n" "\n" logfile vom Backup %date% "\n" "\n" " "-a:d:\taeglich\logfiles\DirSync.log"  
WScript.exe c:\AZURO\scripte\azuro_start.vbs

Hier das VB Script beenden:

Set WshShell = WScript.CreateObject("WScript.Shell")  
WshShell.AppActivate ("FileMaker Pro Advanced - [_START]")  
WshShell.SendKeys "%{F4}"  

Hier das VB script starten:

Set WshShell = WScript.CreateObject("WScript.Shell")   
WshShell.Run("""" & "C:AZURO\daten\_START.fmp12" & """")  

Hier die Aufgabenplanung:

<?xml version="1.0" encoding="UTF-16"?>  
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">  
  <RegistrationInfo>
    <Date>2016-06-20T18:43:08.2750133</Date>
    <Author>AzuroServer\Azuro</Author>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <StartBoundary>2016-06-20T19:58:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByDay>
        <DaysInterval>1</DaysInterval>
      </ScheduleByDay>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">  
      <UserId>AZUROSERVER\Administrator</UserId>
      <LogonType>Password</LogonType>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">  
    <Exec>
      <Command>C:\Windows\SysWOW64\cmd.exe</Command>
      <Arguments>/c"c:\AZURO\scripte\backup_taeglich.bat"</Arguments>  
      <WorkingDirectory>c:\AZURO\scripte</WorkingDirectory>
    </Exec>
  </Actions>
</Task>
Member: Kraemer
Kraemer Jun 24, 2016 updated at 18:25:03 (UTC)
Goto Top
Zitat von @saschadroemer:
WScript.exe c:\AZURO\scripte\azuro_start.vbs
Die WScript - also alle - musst du definitiv mit einem absoluten Pfad aufrufen!
Member: agowa338
agowa338 Jun 24, 2016 at 18:25:56 (UTC)
Goto Top
Dein Fehler ist, du verwendest "WScript.exe" und nicht "Cscript.exe".

Der Shell (explorer.exe) Handler ist nicht verfügbar, wenn niemand angemeldet ist. Deshalb die Kommandozeilenversion verwenden.
Hier steht noch etwas mehr dazu: https://stackoverflow.com/questions/25733028/windows-task-scheduler-not- ...
Mitglied: 129813
129813 Jun 24, 2016 updated at 19:17:39 (UTC)
Goto Top
Hi.
Set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.AppActivate ("FileMaker Pro Advanced - [_START]") 
WshShell.SendKeys "%{F4}"
This will never work unattended because this UI automation works only if the session has an active explorer session...This is the reason why it is only working when someone is logged on.
You should could close it by WMI and the terminate command.

Regards
Member: saschadroemer
saschadroemer Jun 26, 2016 at 09:22:58 (UTC)
Goto Top
Danke euch für euren input, script läuft inzwischen....