2011-02-13 25 views
0

ImpersonateLoggedOnUserを使用するWindowsサービスがあり、システム権限を削除し、現在のユーザー権限で別のアプリケーションを実行しています。ImpersonateLoggedOnUserが失敗する条件

ImpersonateLoggedOnUserへの呼び出しが失敗した場合、サービスによって実行されるアプリケーションは、システムの権限を持っていなければなりません。私は戻り値をチェックしてこれを修正しました。

今、私は、その関数呼び出しを失敗させることが可能かどうかを判断しようとしています。

アプリケーションが変更されずに、管理者権限が必要な場合もありますか? (もちろん修正なし)

はいの場合はどうですか?

HANDLE hToken; 
OpenProcessToken(hProcess, MAXIMUM_ALLOWED, &hToken); 
ImpersonateLoggedOnUser(hToken); 
[...] 

ありがとうございます!

答えて

1

偽装権限がない場合、または問題のハンドルが無効な場合、ImpersonateLoggedOnUserは失敗します。

その他のAPIの障害モードがあるかどうかはわかりません。

関連する問題