CopyFile schlägt fehl
-
Hallo Gemeinde,
ich habe ein Problem mit einem Service der unter anderem Dateien in einem lokalem Netzwerk verteilen soll. Das Netzwerk besteht aus Windows 7 Rechnern in einer Domain und Windows XP Rechnern außerhalb der Domain. Der Service läuft auf einem Windows 7 Rechner mit den Account eines Domain Users der auf alle Maschinen Windows 7 wie Windows XP Schreibrechte hat.
Ich kopiere die Dateien in der folgenden Art
CopyFile("D:\\Folder\\xxx.txt", "\\\\10.100.25.23\\D$\\Folder\\xxx.txt", false);
Auf die Windows 7 Maschinen funktioniert das wunderbar aber auf den XP Maschinen schlägt der Befehl fehl und GetLastError liefert 1326 als Fehlercode.
Hat von Euch einer eine Idee,was ich machen muß damit ich auch die XP erreiche.
Gruß Andreas Georg
-
Steht doch im MSDN.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms681385(v=vs.85).aspx
ERROR_LOGON_FAILURE
1326 (0x52E)
The user name or password is incorrect.
-
http://msdn.microsoft.com/en-us/library/windows/desktop/ms681385(v=vs.85).aspx
**
ERROR_LOGON_FAILURE
**
1326 (0x52E)
The user name or password is incorrect.
EDIT: zu langsam
-
OK hätte ich dazu schreiben sollen, SORRY.
Das Problem ist das alles funktioniert wenn ich den Service nicht als Service laufen lasse sonden als normales Konsolenprogramm. Auch vom Explorer und auch von cmd auf mit copy ... funktioniert.
Die Frage ist was muß ich dem Service sagen damit ich zum Ziel komme.
-
Vorher mit Zugangsdaten verbinden, z.B. via
http://msdn.microsoft.com/en-us/library/windows/desktop/aa385413.aspx
könnte der Weg sein. Die Zugangsdaten wird das Benutzerkonto unter dem der Service läuft wohl nicht haben (oder geladen haben)
-
Wenn dein Programm als Service läuft, dann läuft es unter einem anderen Account. Welcher das ist, kannst du einstellen. Wenn du willst, kannst du das Service unter deinem Account laufen lassen, dann sollte auch das CopyFile wieder funktionieren.
Ansonsten...
LogonUser + ImpersonateLoggedOnUser(..., LOGON32_LOGON_NEW_CREDENTIALS, LOGON32_PROVIDER_WINNT50)