schauan
Goto Top

Code: 5: Unknown Error

Hallo zusammen,

ich versuche seit einiger Zeit, zwei Programme auf einem Windows Server 2008 R2 zum Laufen zu bekommen. Diese sollen sowohl im angemeldeten als auch im abgemeldeten Zustand laufen. Solange ich auf dem Server angemeldet bin, läuft das problemlos im Hintergrund. Sobald ich mich abmelde, bekomme ich den Code 5 - Fehler.
Auf W7-Clients funktioniert das sowohl in angemeldetem Zustand als auch im abgemeldeten Zustand problemlos.

Im Prinzip ist die Verfahrensweise so:

Programm1.exe als Task mit höchsten privilegien gestartet
Programm1.exe liegt im Verzeichnis C:\Tasks
Programm1.exe prüft alle 2 Minuten in einer Datenbank, ob bestimmte Aufgaben anliegen

Falls ja,
erfolgt Eintrag in einer Logdatei in C:\Tasks\logs\Programm1.log
*
wird Programm2.exe mit übergebenen Parametern gestartet
Programm2.exe liegt im Verzeichnis C:\Tasks
Programm2.exe loggt seinen Start in C:\Tasks\logs\Programm2.log
Programm2.exe führt weitere Aktionen aus und loggt diese

Auf dem Server bekomme ich den abgemeldeten Zustand nicht gebacken. Im Prinzip fehlt der zweite Teil (ab dem *). Das Programm1 loggt mir beim Aufruf von Programm2 den Code: 5:: Unknown Error, Programm2 wird nicht ausgeführt.

Der den Task ausführende user ist ein AD-User und Mitglied der Admin-Gruppe des Servers. Authentifizierte Benutzer haben im Verzeichnis und dessen Unterverzeichnissen Änderungsrechte. Der ausführende user hat das Verzeichnis und die Unterverzeichnisse erstellt, die Programme dort abgelegt und Vollzugriff.

In den Ereignisprotokollen sind keine Einträge zum Zeitpunkt des geloggten Fehlers.

Programm2 habe ich in unterschiedlichen Varianten getestet,
- als VBS
- als Exe VBS2EXE gewandelt
- als EXE mit VB / Konsolenanwendung in Visual Studio 2013 erstellt und dabei die codes für fso durch codes für ..StreamWriter und wsshell durch codes für ..ProcessStartInfo ersetzt
Dabei habe ich im Programm2 auch mal auf weitere Aktionen verzichtet und nur den eigenen Start geloggt.

Die Zusammenfassung von Programm1 und Programm2 ist auch keine Lösung, da in den Aktionen von Programm2 weitere Programme ausgeführt werden. Ich gehe davon aus, dass bei einer Zusammenfassung von Programm1 und Programm2 der Fehler dann beim Aufruf von Programm3 auftritt.

Content-ID: 318497

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

Ausgedruckt am: 25.11.2024 um 06:11 Uhr

ticuta1
ticuta1 20.10.2016 um 08:44:57 Uhr
Goto Top
Hallo,

mit welche Ausführungsrechten bzw. wie startest Du den Programm2.exe? (batchskript ? call / runas?)
LG,
ticuta1
schauan
schauan 20.10.2016 um 09:09:11 Uhr
Goto Top
Hallöchen,

gestartet wird Programm2 mit Shellexecute. Programm1 ist ein C#-Programm.
ShellExecute(NULL, NULL, "Programm2.exe", "\"" + ParamName + "\"", NULL, SW_SHOWNORMAL);
emeriks
emeriks 20.10.2016 um 09:23:02 Uhr
Goto Top
Hi,
den Code 5 - Fehler.
Den? Ach DEN! Ja .... Könnte "access denied" sein.

0x80000005
ERROR_ACCESS_DENIED

E.
schauan
schauan 24.10.2016 um 09:07:53 Uhr
Goto Top
Hallöchen,

wäre ja schön, wenn man den Nietenfehler im System vermeiden kann und nicht in der Anwendung face-sad
Ich habe mal weiter gegoogelt, nach ShellExecute und Code 5. Sieht problematisch aus. Wenn ich Programm2 seitens der Ausführungsrechte auf Admin stelle, bekomme ich die entsprechende Sicherheitsmeldung,
"Möchten Sie zulassen, dass ... Änderungen an diesem Computer vorgenommen werden?" ...
So wie es aussieht auch in abgemeldetem Zustand, und da drückt mir die keiner weg face-sad Programm2 wird jedenfalls trotzdem nicht ausgeführt, aber der Code 5 ist weg... Ich habe nun die Befürchtung, wenn das beim ShellExecute programmiert wird, kommt die Meldung auch face-sad Allerdings ist das Programm1 nicht von mir, da muss ich schauen, wann ich eine Änderung bekomme.

Habe außerdem noch einen gesonderten Test mit ProcessStartInfo gemacht und das hat funktioniert. Wenn sich was ergibt, melde ich mich wieder.