tat1308
Goto Top

Asp.net Batch auf Webserver starten wird nicht ausgeführt

Hallo,

Win XP SP3, Visual Studio 10

Hoffentlich finde ich hier Hilfe, obwohl bestimmt dieses Thema schon mehrmals ausgelutscht wurde - aber ich bekomms nicht hin und benötige Hilfe.

Problem: Über den Click auf einen Button auf einer Intranet-Seite soll eine Batch-Datei auf dem Webserver gestartet werden. Jetzt ist es so, daß der Batch zwar gelesen, aber nicht ausgeführt wird (Batch und Fehlermeldung s.u.)

der dazugehörige Code in der aspx.vb, um den Batch aufzurufen sieht folgendermassen aus:
Dim strfilePath1 As String = "/c "
Dim strFilePath2 As String = "\\WEB1\AE\pdfmerge6.cmd"
Dim strfilePath3 As String = strfilePath1 & strFilePath2
''Dim strFilePath As String = Server.MapPath("\\WEB1\AE\pdfmerge.cmd")

' Create the ProcessInfo object
Dim psi2 As New System.Diagnostics.ProcessStartInfo("cmd.exe", strfilePath3)
psi2.UseShellExecute = False
psi2.RedirectStandardOutput = True
psi2.RedirectStandardInput = True
psi2.RedirectStandardError = True
psi2.WorkingDirectory = "\\WEB1\AE\"
'psi.WorkingDirectory = "\\WEB1\AE\"

' Start the process
Dim proc2 As System.Diagnostics.Process = System.Diagnostics.Process.Start(psi2)
proc2.WaitForExit()

'' Open the batch file for reading
Dim strm2 As System.IO.StreamReader = System.IO.File.OpenText(strFilePath2)

'' Attach the output for reading
Dim sOut2 As System.IO.StreamReader = proc2.StandardOutput
Dim sErr As System.IO.StreamReader = proc2.StandardError

'' Attach the in for writing
Dim sIn2 As System.IO.StreamWriter = proc2.StandardInput

'Write each line of the batch file to standard input
While strm2.Peek() <> -1
sIn2.WriteLine(strm2.ReadLine())
End While

strm2.Close()

' '' Exit CMD.EXE
'Dim stEchoFmt2 As String = "# {0} run successfully. Exiting"

'sIn2.WriteLine([String].Format(stEchoFmt2, strFilePath2))
'sIn2.WriteLine("EXIT")

''Close the process
proc2.Close()

' Read the sOut to a string.
Dim results2 As String = sOut2.ReadToEnd().Trim()
Dim results3 As String = sErr.ReadToEnd().Trim()

'' Close the io Streams;
'sIn2.Close()
'sOut2.Close()

'Write out the results.
Dim fmtStdOut As String = "<font face=courier size=0>{0}</font>"
Me.Response.Write([String].Format(fmtStdOut, results2.Replace(System.Environment.NewLine, "<br>")))

Dim fmtStdOut2 As String = "<font face=courier size=0>{0}</font>"
Me.Response.Write([String].Format(fmtStdOut2, results3.Replace(System.Environment.NewLine, "<br>")))
''
output3.Text = System.Security.Principal.WindowsIdentity.GetCurrent().Name

Dieser o.g. Code wird lokal auf meinen Rechner korrekt ausgeführt, aber nicht auf dem Webserver. Egal, ob ich mit impersonate=true mit AdminUser und Passwort oder ohne arbeite, der Batch führt die Befehle nicht auf dem Webserver aus. Auch der Netzwerkdienst hat genügend Rechte. Auch die Lokalen Sicherheitsrichtlinien und die Gruppenrichtlinien sind so eingestellt, daß die entsprechenden User Stapelverarbeitungsprogrammen ausführen können. Ich weiß nicht mehr weiter.

...jetzt zur Fehlermeldung:

hier noch mal der batch der ausgeführt wird:

net use T: /delete
net use T: \\SERVER\ORDNER /USER:SERVER\USER PW
copy T:\*.pdf \\web1\ae /Y
pdftk \\web1\ae\*.pdf cat output \\web1\AE\AE_GES.pdf
net use T: /delete


Fehlerausgabe bei der Ausführung im Intranet:

C:\WINDOWS>net use T: /delete
C:\WINDOWS>net use T: \\SERVER\ORDNER /USER:SERVER\USER PW
C:\WINDOWS>copy T:\*.pdf \\web1\ae /Y
C:\WINDOWS>pdftk \\web1\ae\*.pdf cat output \\web1\AE\AE_GES.pdf
C:\WINDOWS>net use T: /delete"\\WEB1\AE"

CMD.EXE wurde mit dem oben angegebenen Pfad als aktuellem Verzeichnis gestartet.
UNC-Pfade werden nicht untersttzt.
Stattdessen wird das Windows-Verzeichnis als aktuelles Verzeichnis gesetzt.
Die Netzwerkverbindung konnte nicht gefunden werden.

Sie erhalten weitere Hilfe, wenn Sie NET HELPMSG 2250 eingeben.

Systemfehler 85 aufgetreten.
Der lokale Ger„tename wird bereits verwendet.
Das System kann das angegebene Laufwerk nicht finden.

Error: Failed to open PDF file:
\\web1\ae\*.pdf
Errors encountered. No output created.
Done. Input errors, so no output created.
Die Netzwerkverbindung konnte nicht gefunden werden.

Sie erhalten weitere Hilfe, wenn Sie NET HELPMSG 2250 eingeben.


Ich habe gegoogelt und herausgefunden, daß Systemfehler 85 bedeutet, daß Netzlaufwerke schon verbunden sind und nicht noch mal verbunden werden können. Was eigentlich Quatsch ist, da ich im batch ja erstmal vorab zur Sicherheit evt existierende Netzlaufwerke (hier Tface-smile trenne/lösche.

Wie bekomme ich diesen batch auf dem Webserver zum Laufen???

Bitte Hilfe, Danke.

Gruss
Tobias

Content-Key: 163153

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

Ausgedruckt am: 29.03.2024 um 08:03 Uhr

Mitglied: Pjordorf
Pjordorf 22.03.2011 um 18:59:05 Uhr
Goto Top
Hallo,

Zitat von @tat1308:
Ich habe gegoogelt und herausgefunden, daß Systemfehler 85 bedeutet, daß Netzlaufwerke schon verbunden sind und nicht
noch mal verbunden werden können. Was eigentlich Quatsch ist, da ich im batch ja erstmal vorab zur Sicherheit evt
Na, ob das wirklich Quatsch ist?

==============================================================
net use T: /delete
net use T: \\SERVER\ORDNER /USER:SERVER\USER PW
copy T:\*.pdf \\web1\ae /Y
pdftk \\web1\ae\*.pdf cat output \\web1\AE\AE_GES.pdf
net use T: /delete
Dein Laufwerk T: brauchst du doch gar nicht. Lass es doch weg.
copy \\SERVER\ORDNER\*.PDF \\web1\ae /Y
pdftk \\web1\ae\*.pdf cat output \\web1\AE\AE_GES.pdf 
oder
pdftk \\SERVER1\ORDNER\*.pdf cat output \\web1\AE\AE_GES.pdf 

Gruß,
Peter
Mitglied: tat1308
tat1308 22.03.2011 um 19:11:37 Uhr
Goto Top
Hallo Peter,

werde das gleich morgen früh testen. Melde mich morgen früh nochmal dazu
Danke für Deinen Hinweis.

Gruss
Tobias
Mitglied: 60730
60730 23.03.2011 um 00:13:06 Uhr
Goto Top
Moin,
Ich habe gegoogelt und herausgefunden, daß Systemfehler 85 bedeutet, daß Netzlaufwerke schon verbunden sind und nicht noch mal verbunden werden können.
Was eigentlich Quatsch ist, da ich im batch ja erstmal vorab zur Sicherheit ....

  • teilweise antonymisierten Quatsch net use T: \\SERVER\ORDNER /USER:SERVER\USER PW und teilweise "echte" Daten copy T:\*.pdf \\web1\ae /Y (auch noch ohne Code Blöcke) geschrieben habe face-sad

Error: Failed to open PDF file:
\\web1\ae\*.pdf 

  • DAS ist doch die Fehlermeldung, der gegoogelte 85er ist doch B oder C Körbchen....

  • ich verwette - wenn der obige "Ausdruck" tatsächlich ungekürzt hier preisgegeben ist, dass da kein "copy" gelaufen ist.
Das System kann das angegebene Laufwerk nicht finden. - Die Zeile ist der Output vom Copybefehl.
Daran ändert zu 99.99999% der Tipp von Peter auch nix - denn ein richtig gemapptes Laufwerk t:\ mit tatsächlich dort vorhandenen pdfs würde nur dann nicht kopieren können - wenn man keine Leserechte auf der Quelle oder Schreibrechte auf dem Ziel hätte.

\\web1\ae\
ist der Punkt, wo du ansetzen mußt.

Gruß
Mitglied: tat1308
tat1308 23.03.2011 um 08:47:34 Uhr
Goto Top
Hallo Timo und Peter,
ich versuche anhand des Batches den Hintergrund zu erklären:


net use T: /delete
Hier soll das evt vorhandene Netzlaufwerk vorab gelöscht/getrennt werden

net use T: \\SERVER\ORDNER /USER:SERVER\USER PW
Hier muss ich die Daten von einer AS400 abholen und erstelle eine Netzlaufwerk T: damit ich auf diese Daten (pdf-Dateien) zugreifen kann

Wenn ich nur diese ersten beiden Befehle von der Intranetseite aus starte erhalte ich folgende Fehlermeldung:
(nochmal zur Info --> den Batch vom Destop aus starten klappt wunderbar)
C:\WINDOWS>net use T: /delete
C:\WINDOWS>net use T: \\SERVER\ORDNER /USER:SERVER\USER PW"\\WEB1\AE"
CMD.EXE wurde mit dem oben angegebenen Pfad als aktuellem Verzeichnis gestartet.
UNC-Pfade werden nicht untersttzt.
Stattdessen wird das Windows-Verzeichnis als aktuelles Verzeichnis gesetzt.
Die Netzwerkverbindung konnte nicht gefunden werden.
Sie erhalten weitere Hilfe, wenn Sie NET HELPMSG 2250 eingeben.
Systemfehler 85 aufgetreten.
Der lokale Ger„tename wird bereits verwendet.

Was mich verwundert ist auch das angehängte "\\WEB1\AE" in der zweiten Zeile der Fehlermeldung - woher hat er das? Jetzt klappt natürlich auch nicht der copy-Befehl, denn es ist ja nichts da...

copy T:\*.pdf \\web1\ae /Y
Kopieren aller pdf-Dateien auf ein anderes Netzlaufwerk

Der Rest des Codes ich dann nicht relevant

Danke.

Gruss
Tobias
Mitglied: Biber
Biber 23.03.2011 um 08:52:47 Uhr
Goto Top
Moin tat1308,

steht denn im Registryhive HKCU des batchausführenden Users unter..
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
...
"DisableUNCCheck"=dword:00000001
...

Falls nicht ->ändert sich etwas am Verhalten des Batches, wenn du es einfügst?

Grüße
Biber
Mitglied: tat1308
tat1308 23.03.2011 um 09:37:53 Uhr
Goto Top
Hallo Biber,

"DisableUNCCheck" (hoffe, das ist richtig geschrieben) fehlt in der Registry, Habe dies eingefügt.
Muss ich den Rechner nochmal durchstarten, damit das greift?

Danke

Gruss
Tobias
Mitglied: tat1308
tat1308 23.03.2011 um 10:27:42 Uhr
Goto Top
...auch mit diesem Registry-Eintrag bekomme ich dieselben Fehlermeldungen...

Gruss
Tobias
Mitglied: Biber
Biber 23.03.2011 um 11:11:24 Uhr
Goto Top
Moin tat1308,

Zitat von @tat1308:
...auch mit diesem Registry-Eintrag bekomme ich dieselben Fehlermeldungen...
Inclusive der "UNC-Pfade werden nicht untersttzt."-Fehlerzeile?

Bei den "net use"-Versuchen wollte ich mich nicht einmischen, die sind ja schon in Arbeit.
Ich wollte eigentlich nur diese UNC-Zeile anfassen.

Grüße
Biber
Mitglied: tat1308
tat1308 23.03.2011 um 11:18:58 Uhr
Goto Top
oh, jetzt eine etwas andere Fehlermeldung (jetzt mit Java???):
C:\WINDOWS>net use Z: /delete
C:\WINDOWS>net use Z: \\SERVER\ORDNER /USER:SERVER\USER PW
C:\WINDOWS>copy Z:\*.pdf \\web1\ae /Y C:\WINDOWS>pdftk \\web1\ae\*.pdf cat output \\web1\AE\AE_GES.pdf
C:\WINDOWS>net use Z: /delete"\\WEB1\AE"
CMD.EXE wurde mit dem oben angegebenen Pfad als aktuellem Verzeichnis gestartet.
UNC-Pfade werden nicht untersttzt.
Stattdessen wird das Windows-Verzeichnis als aktuelles Verzeichnis gesetzt.
Die Netzwerkverbindung konnte nicht gefunden werden.

Sie erhalten weitere Hilfe, wenn Sie NET HELPMSG 2250 eingeben.

Systemfehler 85 aufgetreten.
Der lokale Ger„tename wird bereits verwendet.

Das System kann das angegebene Laufwerk nicht finden.
Unhandled Java Exception:
java.lang.ArrayIndexOutOfBoundsException
at 0x005a3abe (Unknown Source)
at 0x005a3fb2 (Unknown Source)
at 0x005a4063 (Unknown Source)
at 0x005e3e8d (Unknown Source)
at 0x005b0dad (Unknown Source)
at 0x005afa3d (Unknown Source)
at 0x005e48ad (Unknown Source)
at 0x005fe9c7 (Unknown Source)
at 0x005dbefa (Unknown Source)
at 0x004b0e10 (Unknown Source)
at 0x004b296b (Unknown Source)
at 0x004f6328 (Unknown Source)
at 0x0052f8e6 (Unknown Source)
at 0x0052f788 (Unknown Source)
at 0x0052f6f1 (Unknown Source)
at 0x00536119 (Unknown Source)
at 0x004d1544 (Unknown Source)
at 0x004d1b2c (Unknown Source)
at 0x004d1770 (Unknown Source)
at 0x004d2139 (Unknown Source)
at 0x0040bd66 (Unknown Source)
Die Netzwerkverbindung konnte nicht gefunden werden.

Sie erhalten weitere Hilfe, wenn Sie NET HELPMSG 2250 eingeben.

Was soll ich jetzt tun?

Gruss
Tobias
Mitglied: 60730
60730 24.03.2011 um 12:12:18 Uhr
Goto Top
Moin,

du bist aber schon leicht beratungsresistent?
Zitat von @Biber:
Inclusive der "UNC-Pfade werden nicht untersttzt."-Fehlerzeile?

Zitat von @tat1308:
oh, jetzt eine etwas andere Fehlermeldung (jetzt mit Java???):
C:\WINDOWS>net use Z: /delete
C:\WINDOWS>net use Z: \\SERVER\ORDNER /USER:SERVER\USER PW
C:\WINDOWS>copy Z:\*.pdf \\web1\ae /Y C:\WINDOWS>pdftk \\web1\ae\*.pdf cat output \\web1\AE\AE_GES.pdf
C:\WINDOWS>net use Z: /delete"\\WEB1\AE"
CMD.EXE wurde mit dem oben angegebenen Pfad als aktuellem Verzeichnis gestartet.
UNC-Pfade werden nicht untersttzt.
/ snip
\ snap

Was soll ich jetzt tun?

  • 1) Uns vielleicht mal erklären, warum wir unsere Tasten so quälen, wenn bei dir nix davon ankommt?
  • 2) evtl. mal die Zeile mit dem 85er einfach als Information und nicht als Fehler sehen?
  • 3) kurz nachdenken, welchen Grund es gäbe ein benutztes Laufwerk zu trennen und dann wieder zu mappen - und evtl überlegen, ob man mit dem eh unnötigen Gedöhnse nicht einem anderen Intranetuser der wo auf deinen Link mit der vba die eine Bätsch ausführt klickert nicht mit dem dismounten des Laufwerks den Ast absägt, auf dem sein Job sitzt?
  • 4) Vielleicht mal in einer Dosbuxxe den neu dazugekommenen Befehl net use Z: /delete"\\WEB1\AE" eintippern und die Meldung durchackern, die im gegensatz zum 85er wirklich eine Fehlermeldung ist?

  • 5) Oder sollte ich es anders sagen - hätt ich doch im Urlaub nicht nach fremden Problemen gesucht, wäre der Tag erfreulicher...
(Da denkt man, man will jemandem helfen und merkt, das man keine Geduld mehr hat wenn man die simpelsten Sachen nicht auf Anhieb rüberbringen kann....)

Gruß
Mitglied: tat1308
tat1308 24.03.2011 um 13:32:08 Uhr
Goto Top
Hallo Timo Beil,

Dein Verhalten zeugt von Respektlosigkeit.
Es gibt genug Leute die die Größe und vor allen die Geduld mitbringen,
anderen zu helfen. Schade, daß Dein Niveau so weit unten liegt, daß habe ich nicht erwartet.

Durch den freundlichen Hinweis vom Biber bin ich gestern noch auf den richtigen Weg und Lösung gekommen.
Und zwar ist ein weiterer Registry-Eintrag im HKLM nötig gewesen: EnableDeviceNameCreateRetry
Den Batch noch im richtigen Ordner abgelegt und seither funktioniert es prima. Ich bin begeistert.

Vielen Dank an alle für ihre Hinweise, ich habe wieder einmal dazugelernt.
Mitglied: 60730
60730 24.03.2011 um 14:43:30 Uhr
Goto Top
Moin,

Zitat von @tat1308:
Hallo Timo Beil,

Dein Verhalten zeugt von Respektlosigkeit.
Es gibt genug Leute die die Größe und vor allen die Geduld mitbringen, anderen zu helfen. Schade, daß Dein Niveau so weit unten liegt, daß habe ich nicht erwartet.
Das du auf meine Punkte 3-5 nicht eingehst - diese dich aber wirklich zum nachdenken bringen sollten- jedoch schon leider Ich hab die mal oben nummeriert - vielleicht findest du ja doch noch etwas Zeit dafür.

  • Schade dass dein Niveau so weit unten liegt, dass du noch niemandem geholfen hast - das es sowas gibt, habe ich aber schon erwartet und wäre mir eigentlich keine einzige Silbe wert.....

Den Batch noch im richtigen Ordner abgelegt und seither funktioniert es prima. Ich bin begeistert.

Naja - wenn ich mir das genauer ansehe...
net use Z: /delete"\\WEB1\AE"

"So funktioniert das ja doch - denn der falsche Net Use löscht ja das Laufwerk nicht mehr"....

Vielen Dank an alle für ihre Hinweise, ich habe wieder einmal dazugelernt.

Bitte gern geschehen und nimms nicht auf die leichte Schulter - die Größe und vor allen die Geduld mitbringen ist nur die halbe Wahrheit - Wissen zu haben, das man vermitteln kann und jemand, der sich diesem vermittelten Wissen - wenn auch verpackt - selber aneignet - der Rest vom Fest..
Mitglied: tat1308
tat1308 24.03.2011 um 15:53:15 Uhr
Goto Top
nein

so wie hier
net use Z: /delete"\\WEB1\AE"
ist nicht das Problem gewesen. Dieses Netzlaufwerk wird vorher auf Existenz geprüft und dann blablabla, wenn blablabla
der eigentliche Prozess ist doch hier nicht wichtig. Und wenn ich das Ding lösche, mappe oder sonstige Gemeinheiten anstelle,
wen interessierts? Das war nicht zielrelevant.
Mitglied: 60730
60730 24.03.2011 um 19:49:35 Uhr
Goto Top
  • räusper
Zitat von @tat1308:
nein

so wie hier
net use Z: /delete"\\WEB1\AE"
ist nicht das Problem gewesen. Dieses Netzlaufwerk wird vorher auf Existenz geprüft und dann blablabla, wenn blablabla

sorry, aber wenn du uns - und mehr als das was du schreibst - wissen wir ja nicht - diese zeilen präsentierst:
Zitat von @tat1308:
oh, jetzt eine etwas andere Fehlermeldung (jetzt mit Java???):
C:\WINDOWS>net use Z: /delete
C:\WINDOWS>net use Z: \\SERVER\ORDNER /USER:SERVER\USER PW

Dann sehe ich da kein dann blabla wenn blabla - ich sehe nur das, was drunter steht:
Die Netzwerkverbindung konnte nicht gefunden werden.
  • Und glaub mir einfach - wie diese Fehlermeldung zustande kommt und das die nur in Verbindung mit Net Use auftaucht, das weiß ich.
  • Das deine präsentierte Net use Befehlskette löchrig wie ein schweizer Käse ist - auch das ist Fakt.

der eigentliche Prozess ist doch hier nicht wichtig. Und wenn ich das Ding lösche, mappe oder sonstige Gemeinheiten anstelle, wen interessierts? Das war nicht zielrelevant.
  • Man kann auch ein Stahlgerüst mit Uhu Kleber zusammen halten - wayne interessierts....
  • Zielrelevant - puh... siehe meine letzten Zeilen....

  • Ich wär ja aus diversen Gründen dafür, das uns Biber dem Fred ein Sicherheitsschloss verpasst und du dann mal in einem halben Jahr nochmal hier reinschaust und du dir sicher sein kannst, dass das was jetzt da steht, schon immer da stand und nicht verändert wurde.
Und dann wist du hoffentlich die Dinge etwas anders sehen.

Gruß