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

Frage Entwicklung Batch & Shell

Mitglied: eccos01

eccos01 (Level 1) - Jetzt verbinden

12.08.2011, aktualisiert 12:57 Uhr, 4285 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
FIM Ordnerüberwachung Win2k8 PCI
Frage von connecthorWindows Server

Hi, im Zuge eines PCI Audith sollen gewisse Systemrelewandte Ordner auf ihre Integrität gemonitort werden. Die Ordnerüberwachung ist ja ...

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
Frage von E5tiopServer-Hardware15 Kommentare

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

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 4 StundenViren und Trojaner

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 8 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware7 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...