Execstudio per Script durch Aufgabenplanung klappt nicht

Betrieb der FHZ-Zentralen mit contronics homeputer Standard / homeputer Studio & WEB-Server

Moderator: Co-Administratoren

Antworten
fsommer1968
Beiträge: 230
Registriert: 16.02.2008, 17:05
Danksagung erhalten: 9 Mal

Execstudio per Script durch Aufgabenplanung klappt nicht

Beitrag von fsommer1968 » 05.01.2012, 11:38

Hallo,

ich möchte Execstudio per Windows 7 Aufgabenplanung starten. Dazu ist der Aufruf von Execstudio in einem Shell-Script gekapselt. FYI hier das Script:

Code: Alles auswählen

rem @echo off
set filename=c:\temp\sensoraktuell.dat
for /f "tokens=2 delims=," %%i in ('find "Druck" %filename% ') do set luftdruck=%%i
cd c:\progra~1\fhz1300pc
ExecStudioCo.exe SLuftdruck=%luftdruck% >c:\temp\execstudio.log 2>&1
:ende
Das ist die Aufgabendefinition:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2011-07-16T01:21:42.3596895</Date>
    <Author>hermes2\frank</Author>
  </RegistrationInfo>
  <Triggers>
    <LogonTrigger>
      <Repetition>
        <Interval>PT15M</Interval>
        <StopAtDurationEnd>false</StopAtDurationEnd>
      </Repetition>
      <Enabled>false</Enabled>
      <UserId>HERMES\frank</UserId>
    </LogonTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>HERMES\frank</UserId>
      <LogonType>Password</LogonType>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</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>
    <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
    <UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>c:\progra~1\tools\getwsdata.cmd</Command>
      <Arguments>>c:\temp\execstudiosh.log 2>&1</Arguments>
      <WorkingDirectory>c:\progra~1\tools</WorkingDirectory>
    </Exec>
  </Actions>
</Task>
Kurz gesagt: es klappt nicht. Wenn ich das Script manuell von einer Kommandozeile aus (oder via Windows Explorer) aufrufe geht es. Per Aufgabenplanung geht es nicht, es gibt auch keine Meldung in c:\temp\execstudio.log oder c:\temp\execstudiosh.log. Das Script wird auch mit "höchsten Berechtigungen gestartet" und der User ist der angemeldete User - nützt aber nichts. Allerdings ist die User Security von Windows aktiv - kann und will ich aber nicht ändern (falls jemand feststellt, daß es daran liegt bin ich für einen Hinweis dankbar)
Einen kleinen Hinweis gibts lediglich in der Ereignisanzeige von Windows 7. Dort taucht für jeden Aufruf via Aufgabenplanung ein Ereignis der Quelle "HHCTRL" mit der ID 1903 auf. Google hat mich da aber nicht weitergebracht (das Ereignis ist zwar gut bekannt, aber nicht im Zusammenhang speziell mit Homeputer und eine allgemeine Lösungsmöglichkeit sehe ich dort auch nicht).

Tank
Beiträge: 60
Registriert: 20.11.2011, 12:08

Re: Execstudio per Script durch Aufgabenplanung klappt nicht

Beitrag von Tank » 05.01.2012, 12:21

Hallo fsommer,

mein Ansatz: Die Umgebung im Aufgabenscheduler unterscheidet sich von der der normalen Command Shell.
Probier mal folgendes:
Erstell eine neue Aufgabe mit folgenden Einstellungen: Start in 3 Minuten, Programm: c:\windows\system32\cmd.exe (Klick Dich mit "Durchsuchen" durch bis zur cmd.exe)
Dann warte die 3 Minuten, bis die dos-Box auftaucht.
In der kannst Du dann Deine Batch Datei Schritt für Schritt debuggen da sie im gleichen Kontext läuft.
Um noch meine Tipp abzugeben: ich würde denken, Du musst ExecStudioCo.exe mit dem kompletten Pfad aufrufen. (Dass ist aber nur ein Schuss aus der Hüfte)

Viel Glück! Josef

fsommer1968
Beiträge: 230
Registriert: 16.02.2008, 17:05
Danksagung erhalten: 9 Mal

Re: Execstudio per Script durch Aufgabenplanung klappt nicht

Beitrag von fsommer1968 » 05.01.2012, 13:34

Hallo Tank et al,

Dein Tipp mit der sichtbaren, offenen CMD-Shell hat mich auf den richtigen Weg gebracht. Vielen Dank!

Um es kurz zu machen:
- Execstudio und ExecstudioCo funktioniert nur bei interaktivem User - es braucht, aus welchen Gründen auch immer, eine sichtbare Konsole.
- Wenn der Homeputerprozess mit einem "normalen" User läuft, darf Exestudio nicht mit "höchsten Berechtigungen" laufen.

Wenn man diese Einschränkungen beachtet, funktionierts auch mit der Aufgabenplanung.

Hier ist die passende Aufgabenkonfiguration:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2011-07-16T01:21:42.3596895</Date>
    <Author>hermes2\frank</Author>
  </RegistrationInfo>
  <Triggers>
    <LogonTrigger>
      <Repetition>
        <Interval>PT15M</Interval>
        <StopAtDurationEnd>false</StopAtDurationEnd>
      </Repetition>
      <Enabled>true</Enabled>
      <UserId>HERMES\frank</UserId>
    </LogonTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>HERMES\frank</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</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>
    <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
    <UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>c:\progra~1\tools\getwsdata.cmd</Command>
      <Arguments>>c:\temp\execstudiosh.log 2>&1</Arguments>
      <WorkingDirectory>c:\progra~1\tools</WorkingDirectory>
    </Exec>
  </Actions>
</Task>

Antworten

Zurück zu „homeputer Studio / Standard: allgemeine Fragen“