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-ID: 333355

Url: https://administrator.de/knowledge/batch-als-dienst-bei-systemstart-ohne-anmeldung-ausfuehren-333355.html

Ausgedruckt am: 25.12.2024 um 15:12 Uhr

Kraemer
Kraemer 27.03.2017 um 10:10:50 Uhr
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ß
muftypeter
muftypeter 27.03.2017 um 11:08:17 Uhr
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
tralveller
tralveller 27.03.2017 um 21:04:43 Uhr
Goto Top
Was wäre denn die aktuelle Alternative?
muftypeter
muftypeter 28.03.2017 aktualisiert um 10:04:38 Uhr
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
rubberman
rubberman 28.03.2017 aktualisiert um 20:26:14 Uhr
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
tralveller
tralveller 15.05.2017 um 17:01:49 Uhr
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