Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Prozess mit Admin Berechtigung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.10.2006, 09:41 Uhr
~kaasiro
Gast


Hallo,
ich versuche einen Prozess unter Admin Konto laufen zu lassen, bisher ohne Erfolg. Der angemeldete Benutzer hat eingeschränkte Rechte. Bei der Ausführung lautet die Fehlermeldung: "..faild with error 1326: Anmeldung fehlgeschlagen: unbekannter Benutzername oder falsches Kennwort." OS ist XP Prof. SP2.
Was stimmt hier nicht, hat jemand eine Idee?

Ein Beispiel:



C++:
#define _WIN32_WINNT 0x0500

#include <cstdlib>
#include <iostream>
#include <Windows.h>


using namespace std;


int main(int argc, char *argv[])
{
  
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    memset(&si,0,sizeof(STARTUPINFO));
    si.cb = sizeof(STARTUPINFO);
    si.wShowWindow = SW_SHOW;
    si.lpTitle = NULL;
    
    
    
     CreateProcessWithLogonW(
                              LPCWSTR ("abc"),                         //LPCWSTR lpUsername
                              LPCWSTR ("abc"),                          //LPCWSTR lpDomain
                              LPCWSTR ("abc"),                        //LPCWSTR lpPassword
                              0,                                        //DWORD dwLogonFlags
                              LPCWSTR ("C:\\WINDOWS\\notepad.exe"),     //LPCWSTR lpApplicationName
                              NULL,                      //LPWSTR lpCommandLine
                              CREATE_DEFAULT_ERROR_MODE,                //DWORD dwCreationFlags
                              NULL,                                     //LPVOID lpEnvironment
                              NULL,                                     //LPCWSTR lpCurrentDirectory
                              LPSTARTUPINFOW (&si),                     //LPSTARTUPINFOW lpStartupInfo
                              &pi                                       //LPPROCESS_INFORMATION lpProcessInfo
                              );

      
      //*** Fehlerausgabe
        
        LPVOID lpMsgBuf;
        LPVOID lpDisplayBuf;
        LPTSTR lpszFunction;
        lpszFunction = "CreateProcessWithLogonW";
        DWORD dw = GetLastError();
    
        FormatMessage(
            FORMAT_MESSAGE_ALLOCATE_BUFFER |
            FORMAT_MESSAGE_FROM_SYSTEM,
            NULL,
            dw,
            MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
            (LPTSTR) &lpMsgBuf,
            0, NULL );
    
        lpDisplayBuf = (LPVOID)LocalAlloc(LMEM_ZEROINIT,
            (lstrlen((LPCTSTR)lpMsgBuf)+lstrlen((LPCTSTR)lpszFunction)+40)*sizeof(TCHAR));
        wsprintf((LPTSTR)lpDisplayBuf,
            TEXT("%s failed with error %d: %s"),
            lpszFunction, dw, lpMsgBuf);
        MessageBox(NULL, (LPCTSTR)lpDisplayBuf, TEXT("Error"), MB_OK);
    
        LocalFree(lpMsgBuf);
        LocalFree(lpDisplayBuf);
        ExitProcess(dw);
      //***

      //Warten bis der Prozess beendet wird
      WaitForSingleObject (pi.hProcess, INFINITE);
            
      CloseHandle( pi.hProcess );
      CloseHandle( pi.hThread );      
    
    //system("PAUSE");
    return EXIT_SUCCESS;
}


Dieser Post wurde am 10.10.2006 um 11:39 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.10.2006, 11:58 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi, wenn er sich lokal anmelden soll muss in die "domain" ein "." rein. Evtl ist das der Grund.

Ansonsten schau dir mal das Beispiel in der MSDN an, das ist ganz gut erklärt.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.10.2006, 12:36 Uhr
~kaasiro
Gast


Hi FloSoft, danke für den Tipp. Ich habe es schon mit dem "." in "domain" versucht, mit der selben Fehlermeldung. Darüberhinaus der reihe nach Domänenadmin dann den lokalen Admin. Immer nur fehlgeschlagen. Mit "." in "domain" und "Domänenname\\Administratorname" als Username dauert es länger bis zur Fehlermeldung, sie kommt aber trotzdem. Die MSDN hatte ich von anfang an zu Rate gezogen, hat mir aber nicht weiter geholfen. Ich bin jetzt völlig auf dem Schlauch... :-[
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.10.2006, 22:05 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Ganz sicher das du dich bei Benutzernamen und Passwort nicht verschrieben hast? Auf Groß/Kleinschreibung geachtet? Welche sonderzeichen sind darin enthalten?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
10.10.2006, 22:50 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat von Guybrush Threepwood:
Welche sonderzeichen sind darin enthalten?

Wenn da ein \ drin ist, musst du den natürlich \\ angeben!
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
16.10.2006, 07:48 Uhr
~kaasiro
Gast


Hallo zusammen, sorry für die späte Antwort, aber ich musste das Krankenbett beglücken...
Ich habe es mit mehreren Benutzerkonten versucht, enschliesslich meinen eigenen (!), dabei kommt es jedesmal zu der oben erwähnten Fehlermeldung. Funktioniert es bei euch?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
16.10.2006, 09:09 Uhr
~kaasiro
Gast


Ein Test mit LogonUser liefert einen Rückgabewert gleich 1, d.h. die Anmeldung funktioniert...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: