Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Batchausführung als System bricht ab - Win2k8 Server

Mitglied: eccos01

eccos01 (Level 1) - Jetzt verbinden

12.08.2011, aktualisiert 12:57 Uhr, 4336 Aufrufe, 7 Kommentare

Hallo,

ich habe eine Batchdatei, die etliche Aktionen ausführt. Eine der Aktionen ist der Aufruf eines Hilfsprogramms eines DB-Herstellers um die DSN-Einträge auszulesen bzw. zu modifizieren.
Das Kommando liesst im ersten Schritt nur die DSN-Einträge und wertet dann mittels findstr aus, ob ein bestimmter Eintrag existiert.

Bisher gab es mit dem Skript keine Probleme... schon zig Kunden (auch mit Win2k8 64bit) arbeiten problemlos damit.

Bei dem einen Kunden läuft das Skript und das Hilfsprogramm auch völlig problemlos, wenn ich es als Benutzer mit Administrationsrechten ausführe.
Wird es aber - so wie es immer genutzt wird - aus einem Java-programm aufgerufen, welches als Dienst ausgeführt wird - gibt es Probleme.
Das heißt... sobald das Skript mit dem User "System" ausgeführt wird, wird die gesamte Skriptausführung sofort beim Aufruf des Hilfsprogramms ohne irgendwelche Ausgaben / Meldungen abgebrochen.

So einfach Dinge wie die Sicherheitseinstellungen der betroffenen Dateien (also Dateieigenschaften) habe ich schon kontrolliert. Alle verwendeten Umgebungsvariablen sind System-Variablen.

Jemand noch eine Idee?
Mitglied: mischn1980
12.08.2011 um 13:05 Uhr
Hi,

hab das gleiche Problem. Bei der Suche nach einer Lösung habe ich folgendes gefunden.

Beim Erstellen muss man in das Feld "Programm/Script:" C:\Windows\SysWOW64\cmd.exe reinschreiben und dann in das Feld "Argumente (optional):"/c" und die die Batchdatei mit dem Pfad.
Beispiel:
/c"c:\Programme\Batch\backup.bat"


Hier mal noch der Link

Pobiert habe ich die Lösung noch nicht aber vielleicht hilft es dir ja.

Gruss

Michael
Bitte warten ..
Mitglied: eccos01
12.08.2011 um 13:24 Uhr
Zitat von mischn1980:
Hi,

hab das gleiche Problem. Bei der Suche nach einer Lösung habe ich folgendes gefunden.

Beim Erstellen muss man in das Feld "Programm/Script:" C:\Windows\SysWOW64\cmd.exe reinschreiben und dann in das Feld
"Argumente (optional):"/c" und die die Batchdatei mit dem Pfad.
Beispiel:
/c"c:\Programme\Batch\backup.bat"


Hier mal noch der Link

Pobiert habe ich die Lösung noch nicht aber vielleicht hilft es dir ja.

Gruss

Michael


Hallo Micha,

erstens wüßte ich nicht, wie ich beim Aufruf aus JAVA das berücksichtigen kann... und innerhalb des Batch-Skriptes... beim Aufruf von dbdsn.exe (Aufruf erfolg mit Pfad-Angabe) ... seh ich nicht ganz den Sinn.
Meines Wissens wird eine EXE-Datei nicht mit vorangestelltem CMD aufgerufen, oder?

Hier der relevante Auszug aus der Batch-Datei:
01.
if /I NOT "%ASANYBIN%."=="%ASANY32BIN%." ( 
02.
   "%ASANY32BIN%\dbdsn.exe" -ls | FINDSTR /I /c:"myapp_32bit" > NUL 
03.
  IF ERRORLEVEL 1 ( 
04.
      "%ASANY32BIN%\dbdsn.exe" -y -ws myapp_32bit -c "eng=myapp;LINKS=TCPIP;Description=MyApp - 32bit" >> NUL 2>> NUL 
05.
   )    
06.
)
(Wie gesagt... die Umgebnungsvariablen sind gesetzt... das wurde auch nochmal mit Hilfsausgaben überprüft)
Bitte warten ..
Mitglied: Outface
12.08.2011 um 13:56 Uhr
Hallo,

als Erstes schaust Du Dir vielleicht erstmal die Ausgaben der einzelnen Kommandos an:

Hier ein Beispiel, wie Du eine Log-Datei erzeugen kannst:

01.
ECHO %date% %time% > "%~dpn0.log" 
02.
ECHO ASANYBIN: %ASANYBIN% >> "%~dpn0.log" 
03.
ECHO ASANY32BIN: %ASANY32BIN% >> "%~dpn0.log" 
04.
if /I NOT "%ASANYBIN%."=="%ASANY32BIN%." ( 
05.
   "%ASANY32BIN%\dbdsn.exe" -ls >> "%~dpn0.log" 
06.
   "%ASANY32BIN%\dbdsn.exe" -ls | FINDSTR /I /c:"myapp_32bit" >> "%~dpn0.log" 
07.
  ECHO ERRORLEVEL: %ERRORLEVEL% >> "%~dpn0.log" 
08.
  IF ERRORLEVEL 1 ( 
09.
      "%ASANY32BIN%\dbdsn.exe" -y -ws myapp_32bit -c "eng=myapp;LINKS=TCPIP;Description=MyApp - 32bit" >> "%~dpn0.log" 2>> "%~dpn0.log" 
10.
   )    
11.
12.
ECHO *-------------- >> "%~dpn0.log"
1. Es ist nicht immer gut, alles in's NUL-Nirwana zu senden, was Aufschluss über den Verlauf geben könnte.

2. Und was soll in dem Fall passieren, wenn "%ASANYBIN%." == "%ASANY32BIN%." ???

Die Log-Datei entsteht im Verzeichnis der Cmd-Datei. Poste die Log-Datei hier. Vielleicht steht ja ein Hinweis auf das Problem darin.

Ein möglicher Grund wäre z.B., daß der Benutzer "System" schlicht keinen Zugriff auf den DB-Server hat, bei der Erzeugung des DSN das Programm dbdsn.exe aber eine funktionierende Verbindung aufzubauen versucht... aber das ist lediglich eine Mutmaßung von mir.

Outface
Bitte warten ..
Mitglied: eccos01
12.08.2011 um 14:11 Uhr
Zitat von Outface:
Hallo,

als Erstes schaust Du Dir vielleicht erstmal die Ausgaben der einzelnen Kommandos an:

Hier ein Beispiel, wie Du eine Log-Datei erzeugen kannst:

01.
> ECHO %date% %time% > "%~dpn0.log" 
02.
> ECHO ASANYBIN: %ASANYBIN% >> "%~dpn0.log" 
03.
> ECHO ASANY32BIN: %ASANY32BIN% >> "%~dpn0.log" 
04.
> if /I NOT "%ASANYBIN%."=="%ASANY32BIN%." ( 
05.
>    "%ASANY32BIN%\dbdsn.exe" -ls >> "%~dpn0.log" 
06.
>    "%ASANY32BIN%\dbdsn.exe" -ls | FINDSTR /I /c:"myapp_32bit" >> "%~dpn0.log" 
07.
>   ECHO ERRORLEVEL: %ERRORLEVEL% >> "%~dpn0.log" 
08.
>   IF ERRORLEVEL 1 ( 
09.
>       "%ASANY32BIN%\dbdsn.exe" -y -ws myapp_32bit -c "eng=myapp;LINKS=TCPIP;Description=MyApp - 32bit" 
10.
> >> "%~dpn0.log" 2>> "%~dpn0.log" 
11.
>    )    
12.
> ) 
13.
> ECHO *-------------- >> "%~dpn0.log" 
14.
> 
1. Es ist nicht immer gut, alles in's NUL-Nirwana zu senden, was Aufschluss über den Verlauf geben könnte.
Oben gezeigter Code ist ein Ausschnitt und nur die Originalfassung. Um die fehlerstelle einzuschränken hatte ich diverse Hilfsausgaben eingebaut.
Ergebnis ist, dass die Zeile ["%ASANY32BIN%\dbdsn.exe" -ls | FINDSTR /I /c:"myapp_32bit"] den Fehler verursacht und danach nichts mehr vom Skript ausgeführt wird.
Die verwendeten Umgebungsvariablen werden vorher in eine Protokolldatei ausgegeben und sind korrekt.

2. Und was soll in dem Fall passieren, wenn "%ASANYBIN%." == "%ASANY32BIN%." ???
da soll nichts passieren.

Die Log-Datei entsteht im Verzeichnis der Cmd-Datei. Poste die Log-Datei hier. Vielleicht steht ja ein Hinweis auf das Problem
darin.

Ein möglicher Grund wäre z.B., daß der Benutzer "System" schlicht keinen Zugriff auf den DB-Server hat,
bei der Erzeugung des DSN das Programm dbdsn.exe aber eine funktionierende Verbindung aufzubauen versucht... aber das ist
lediglich eine Mutmaßung von mir.
Das Programm (dbdsn.exe) muss keinen Zugriff auf den DB-Server haben... es ließt die ODBC-Einträge von Windows aus. Bzw. im zweiten Kommando wird ein ODBC-Eintrag erzeugt... aber soweit kommt das Skripte bei dem Kunden nicht.

Gibt es eine Möglichkeit ein Batch-Skript als Benutzer=SYSTEM auszuführen? der Test Vorort im Produktivsystem ist aufwendig und ist nur nachts machbar.
Bitte warten ..
Mitglied: pieh-ejdsch
12.08.2011 um 14:20 Uhr
moin,

eventuell erscheint beim Kunden im Eigenschaftendialog der Fraglichen "Exe" oder "bat" bzw eher "cmd":
Die Datei stammt von einem Anderen Computer ... Zugriff erlauben -> Haken setzen.

Wird denn der Errorlevel in der if-Schleife auch dementsprechend gesetzt?
sonst die Klammer weglassen und mit einer Sprungmarke Arbeiten.

Gruß Phil
Bitte warten ..
Mitglied: eccos01
12.08.2011 um 14:32 Uhr
Zitat von pieh-ejdsch:
moin,

eventuell erscheint beim Kunden im Eigenschaftendialog der Fraglichen "Exe" oder "bat" bzw eher
"cmd":
> Die Datei stammt von einem Anderen Computer ... Zugriff erlauben -> Haken setzen.

Wird denn der Errorlevel in der if-Schleife auch dementsprechend gesetzt?
sonst die Klammer weglassen und mit einer Sprungmarke Arbeiten.

Gruß Phil
Hallo Phil,

alle Programme liegen lokal auf dem ausführenden System.
Bzgl. Errorlevel... dbdsn.exe würde normalerweise einen Errorlevel zurückgeben... aber auswerten kann man es nicht mehr... die Skriptausführung wird abgebrochen.

Und ich muß noch einmal draufhinweisen... das Skript mit dem programm und allen Variablen läuft auf zig Systemen. Auch auf Systemen mit demselben Betriebssystem.
Es muß also irgendeine Systemeinstellung / Richtlinie oder ähnliches sein, die dieses Problem verursacht.
Bitte warten ..
Mitglied: bastla
12.08.2011 um 14:50 Uhr
@PH
Wird denn der Errorlevel in der if-Schleife auch dementsprechend gesetzt?
Zu dieser Frage hat der TE ja schon geantwortet - an der Abfrage (es wird ja nicht %errorlevel% verwendet) sollte es aber jedenfalls auch innerhalb der Schleife nicht scheitern ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
DNS

Win2k8 R2 DNS-Server richtig konfigurieren

gelöst Frage von OlliSWEDNS5 Kommentare

Guten Tag liebes Forum, folgendes Problem habe ich: Wir haben 2 AD-Controller mit DNS-Server im Einsatz. Es sind sind ...

Windows Server

Virenschutz und Performance auf Server-System

Frage von steftsWindows Server9 Kommentare

Hallo, wir kämpfen schon seit einer Weile mit einem Thema rum, für das wir nicht so richtig eine Lösung ...

Server-Hardware

Beratung - Server - System

gelöst Frage von E5tiopServer-Hardware23 Kommentare

Guten Abend, wir sind eine Filmproduktion in Frankfurt und benötigen eine Lösung für unser bestehendes Speicherplatz - Problem. Aktuell ...

Suse

Tar bricht weg. Was kann das sein?

Frage von QQR700Suse29 Kommentare

Hallo, ich versuche, einen 20GB großen Ordner zu tarren (tar cvfz). Dabei bricht das Programm plötzlich mittendrin ohne weitere ...

Neue Wissensbeiträge
E-Mail
Email-Apps und Verhalten bei Pop3
Erfahrungsbericht von kfranzk vor 1 TagE-Mail6 Kommentare

Hallo Freunde, da mir mein diesbezüglicher Faden als gelöst markiert wurde, muss ich hier neu aufsetzen. Ich arbeite bewusst ...

Hyper-V

Optimiertes Ubuntu per Microsoft Hyper-V-Schnellerstellung verfügbar

Anleitung von Frank vor 1 TagHyper-V

Für Microsofts Virtualisierungssoftware Hyper-V ist ab sofort auch ein optimiertes Ubuntu 18.04.1 LTS verfügbar. In der "Hyper-V-Schnellerstellung" App, die ...

Sicherheits-Tools

Trend Micro WorryFree Business Security (WFBS) 10 - neuer Patch 1470 verfügbar

Tipp von VGem-e vor 1 TagSicherheits-Tools1 Kommentar

Servus, mal sehen, ob mit Patch 1470, zu finden unter dann die angeblich fehlerhafte Funktion, die unter W10 im ...

Server-Hardware

Lösung für Ersatz eines defekter Raid-Controllers

Anleitung von wellknown vor 1 TagServer-Hardware4 Kommentare

Hallo, da ich nichts gefunden habe und selbst eine Lösung brauchte, hier eine kleine Anleitung für alle die vor ...

Heiß diskutierte Inhalte
Windows Server
Mit der alten Domäneprofil anmelden ohne Server
gelöst Frage von SyosseWindows Server37 Kommentare

Hallo Jungs Folgendes Szenario: Ich habe bei einem sehr kleinen Unternehmen (2Personen) den Server migriert, soweit hat alles geklappt. ...

Sicherheits-Tools
Virenprogramm lässt Programme nicht starten
Frage von SurferGirlSicherheits-Tools23 Kommentare

Hallo, ich bin neu hier, ich hoffe ich habe die richtige Rubrik gewählt. Falls nicht, tut es mir leid. ...

Windows Server
SQL Server Instanz (Eplan) auf WIN 2008 RC2 Server frisst RAM ohne Limit
Frage von derinderinderinWindows Server17 Kommentare

Hallo Zusammen, Wir haben hier einen Windows 2008 RC2 Server. Darauf läuft ein SQL Server Express 2014 Version 12.0.4232.0. ...

Windows 10
Best Practice für Schulungsräume
Frage von Sn0wFoxWindows 1016 Kommentare

Hallo, leider bin ich auch nach langer Suche nicht auf eine zufriedenstellende Nicht-Cloud-Lösung gestoßen und wollte mal Fragen ob ...