tralveller
Goto Top

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

Vorteile:
- Anmeldung von Benutzer nicht notwendig
- Kann bei Systemstart direkt ausgeführt werden
- Keine Aufgabenplanung notwendig
- Keine Nutzung von Drittanbieter-Tools/zusätzliche Software-Installation/Lizenzkosten

Nachteile:
- Dienst kontolliert nicht, ob Batch noch läuft, hängt oder ähnliches;
- Veraltete Technik...

Alternativen:
- Siehe Kommentare

Getestet auf OS:
- W7 x86
- W7 x64
- Server 2K08R2


Folgender Befehl erstellt den Dienst: Angabe vom Dienst-Prozess "srvany.exe" (in diesem Fall im Windows-Verzeichnis, kann aber auch woander sein), automatischer Start bei Systemstart, Fehler ignorieren, Anzeigename für GUI
SC CREATE Example_Batch binPath= "%windir%\Tools\srvany.exe" start= auto error= ignore DisplayName= "Example Batch Service"  
=> Wichtig: Leerzeichen hinter "=" nicht vergessen

Ggfs. noch eine Beschreibung hinzufügen:
SC DESCRIPTION Example_Batch "That's an example batch Service"  

Angabe der auszuführenden Datei/Kommandozeilen-Programm:
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\Example_Batch\Parameters" /V Application /D "C:\Windows\System32\cmd.exe" /F 2>&1  
Angabe der eigentlichen auszuführenden Batch als Option:
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\Example_Batch\Parameters" /V AppParameters /D "/C C:\Windows\Tools\batch.cmd >>C:\Windows\Tools\batch.log" /F 2>&1  
Angabe von Standard-Arbeitsverzeichnis:
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\Example_Batch\Parameters" /V AppDirectory /D "C:\Windows\tools" /F 2>&1  

Hinweise:
Die Batch wird deshalb als Option bzw. "AppParameters" angegben um z.B. andere ausführbare Dateien über Das Skript ausführen zu können. Ohne das kann es zu Problemen kommen.

Falls der Dienst während der Ausführung der Batch gelöscht werden soll (z.B. damit nach dem Neustart der Dienst nicht mehr startet, da nicht mehr benötigt), sollte man in der Batch folgendes angeben:
REG DELETE "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Example_Batch" /F 2>&1  
=> Damit wird der Dienst bist zum nächsten System-Neustart oder bis zur Beendigung des Dienstes ncoh weiter ausgeführt.
=> Die Verwendung von "SC DELETE Example_Batch 2>&1" hat zur Folge, dass keine anderen Kommando's in der Batch mehr abgearbeitet werden, da auch der Dienst vor dem Löschen explizit gestoppt wird


Weitere Info't zu "srvany.exe" (Micrososft Support-Eintrag):
support.microsoft.com/de-de/help/137890/how-to-create-a-user-defined-service
Parameter-Optionen hier gefunden:
stackoverflow.com/questions/165951/how-can-i-run-a-cli-application-as-a-windows-service

Content-Key: 333355

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

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

Member: Kraemer
Kraemer Mar 27, 2017 at 08:10:50 (UTC)
Goto Top
Moin,
Zitat von @tralveller:
Fehlt etwas?
Ja, nämlich der Hinweis, dass das Ganze total veraltet ist und auf einem aktuellen System meiner Meinung nach nichts mehr zu suchen hat.

Gruß
Member: muftypeter
muftypeter Mar 27, 2017 at 09:08:17 (UTC)
Goto Top
Hallo,
ist leider so:

https://support.microsoft.com/de-de/help/137890/how-to-create-a-user-def ...

Artikelnummer: 137890 – Letzte Überarbeitung: 30.06.2016 – Revision: 1
Die Informationen in diesem Artikel beziehen sich auf:
Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Professional Edition, Microsoft Windows NT Workstation 3.51, Microsoft Windows NT Workstation 4.0 Developer Edition, Microsoft Windows NT Server 3.51, Microsoft Windows NT Server 4.0 Standard Edition

Grüße peter
Member: tralveller
tralveller Mar 27, 2017 at 19:04:43 (UTC)
Goto Top
Was wäre denn die aktuelle Alternative?
Member: muftypeter
muftypeter Mar 28, 2017 updated at 08:04:38 (UTC)
Goto Top
Hallo,
mache das auf diese Weise für W7 und W10:
Scheduling a Task > Triggers : At startup

https://technet.microsoft.com/en-us/library/cc748993(v=ws.11).aspx
https://technet.microsoft.com/en-us/library/cc748841(v=ws.11).aspx

Grüße Peter
Member: rubberman
rubberman Mar 28, 2017 updated at 18:26:14 (UTC)
Goto Top
Hallo tralveller.

Als geplanter Task, etwa so erstellen:
  • Notepad Editor öffnen
  • folgender Inhalt:
<?xml version="1.0" encoding="UTF-16"?>  
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">  
  <RegistrationInfo>
    <Author>rubberman</Author>
    <Description>That's an example batch task.</Description>  
    <URI>\Example_Batch</URI>
  </RegistrationInfo>
  <Triggers>
    <BootTrigger>
      <Enabled>true</Enabled>
    </BootTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">  
      <UserId>S-1-5-18</UserId>
      <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>false</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>true</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
    <Priority>5</Priority>
  </Settings>
  <Actions Context="Author">  
    <Exec>
      <Command>C:\Windows\System32\cmd.exe</Command>
      <Arguments>/c "C:\Windows\Tools\batch.cmd"</Arguments>  
      <WorkingDirectory>C:\Windows\Tools</WorkingDirectory>
    </Exec>
  </Actions>
</Task>
  • Datei->Speichern unter ...
    • Dateiname: Example_Batch.xml
    • Dateityp: Alle Dateien (*.*)
    • Codierung: Unicode (wichtig!!)
    • Speichern

  • Batchdatei im gleichen Verzeichnis:
@echo off
cd /d "%~dp0"  
schtasks /create /xml "Example_Batch.xml" /tn "Example_Batch" /f  
pause
  • Rechtsklick->Als Administrator ausführen
  • SCHTASKS gibt eine Meldung über Erfolg oder Misserfolg des Erstellens der Aufgabe

Was wie wo anzupassen ist, sollte selbsterklärend sein.

Grüße
rubberman
Member: tralveller
tralveller May 15, 2017 at 15:01:49 (UTC)
Goto Top
Danke an alle für die weiterführenden Kommentare bzw. Ergänzungen face-smile
Im Artikel habe ich die Info's ergänzt bzw. auf die Kommentare verwiesen