2009-08-10 8 views
1

NtAllocateUuids経由でUuidを取得しようとしましたが、単にUuidCreateSequentialを呼び出していました。 Windowsは私のラップトップのイーサネットまたはトークンリングハードウェアアドレスを取得できませんでした。 したがって、システムが起動しているときに、WindowsはUuidSeedを指定されたMACではなく乱数に設定します。 - >一意性は、システムを次に再起動するまで保証されません。非LocalSystemプロセスから "NtSetUuidSeed"へのアクセスが必要

私はNtSetUuidSeedでUuidSeedを手動で設定しようとしていましたが、STATUS_ACCESS_DENIEDエラーが発生しました。 の「Windows NT/2000のネイティブAPIリファレンス」発言を以下ました: を呼び出し元のスレッドの--TheトークンがSYSTEM_LUID

のAuthenticationIdを持っている必要があり、管理者として実行し、プロセスからこれを実現する方法はありますか? ImpersonateLoggedOnUserのような 何かが()仕事ができるが、これはLocalSystemとしてものみアクセス可能である私の知る限り:/

Thxを;)

答えて

0

あなたはATコマンドを使用して、それを実行するためのプログラムやスケジュールを作成することができます。スケジューリングサービスは、ローカルシステムアカウントとして実行されます。 Vista上では状況が異なり、それが可能かどうかはわかりません。あなたはもちろんあなた自身のサービスを書くことができます。 // "システム" のプロセスからシステム・トークンを複製
または
BOOL CreatePureSystemToken //作成(&がhToken HANDLE)

HANDLE GetLSAToken():トークンハンドルから返されると

+0

http://www.codeproject.com/KB/system/RunUser.aspx これもあります方法、LocalSystemとして新しいプロセスを開始する。 しかし、私はむしろレジストリハードウェアIDを使用して、この回避策(新しいプロセスの開始)を使用して自分のUUIDを作成することを好む これは問題外ですが、これまでのところありがとうございます。 – 5andr0

関連する問題