CreateProcessAsUser
ITcUserManager::CreateProcessAsUser
ITcUserManager
Startet ein Prozess mit dem gewünschten Benutzerkonto.
HRESULT CreateProcessAsUser(
BSTR bstrUserName,
BSTR bstrPassword,
BSTR bstrProcessPath,
VARIANT varDomain
);
Parameters
bstrUserName | [in] Name des Benutzerkontos mit dem der Prozess gestartet werden soll. |
bstrPassword | [in] Passwort für das Benutzerkonto. |
varDomain | [in, optional] |
Return Values
HRESULT == S_OK | Prozess wurde erfolgreich gestartet. |
HRESULT != S_OK | Im Fehlerfall steht in HRESULT ein von Windows NT generierter Fehlercode. Um eine COM/OLE Fehlerbehandlung zu provozieren, wird aus dem Fehlercode ein HRESULT durch HRESULT_FROM_NT(nErrror) bzw. HRESULT_FROM_WIN32(nErrror) erzeugt. Zu beachten ist hierbei, dass der Windows NT Fehlercode in niederwertigen 16 Bit dargestellt wird. |
Bemerkungen
Die Methode CreateProcessAsUser startet ein Prozess mit den Rechten des angegebenen Benutzers. Der Prozess hat so auf alle Objekte (Partitionen, Verzeichnisse, Dateien, Netzwerk, etc.) Zugriff, die für den betreffenden Benutzer freigegeben sind. Eine Besonderheit tritt beim Windows Explorer ein. Standardmäßig gehören alle Explorerfenster zum selben Prozess, wird eine neue Instanz des Explorers mit CreateProcessAsUser gestartet, kommt es zum Konflikt, da der Explorerprozess schon aktiv ist und zu einem anderen Benutzerkonto gehört. Die Instanz beendet sich dann wieder ohne vom Benutzer bemerkt worden zu sein. Soll also eine Instanz des Explorers mit einem anderen Benutzerkonto gestartet werden, so muss der laufende Explorer-Prozess zuerst gestoppt werden. |