1

シャットダウン、再起動などの操作をリモートで実行するための SNMP 拡張 DLL を開発しました。XP では正常に動作しています。現在、Windows 7 用の DLL を移行しています。MSDN のドキュメント「セッション 0 分離の影響」を読みました。 DLL 移行の指示に従いました。たとえば、システムをシャットダウンする方法 - msdnのリンクの指示に従い、シャットダウン操作についても同じようにコーディングしました。ただし、「AdjustTokenPrivileges」は常に Error:1300 を返します。参照されているすべての特権またはグループが呼び出し元に割り当てられているわけではありません。

このエラーを解決する方法はありますか? VC++ を使用して Windows 7 のシャットダウン権限を有効にするにはどうすればよいですか?

4

1 に答える 1

0

はい、1 つあります。権限を発信者に割り当てます (有効にするにはログオフが必要です)。これには、コンピュータまたはドメイン/AD の管理者が行動する必要があります。LsaAddAccountRights()とを使用してプログラムで実行することもできますLsaRemoveAccountRights()

これを考慮してください。すべてのユーザーには一連の権限が割り当てられています。割り当てられたものは、このユーザーを表すトークンに対して有効または無効にすることができます。あなたがやろうとしているのは、そもそもユーザーに割り当てられていない特権を有効にすることです。したがって、有効化/アクティブ化することはできません。

ただし、ローカル ユーザーがシステムをシャットダウンできないことは非常にまれであるため、コードを投稿することをお勧めします。通常、この権限はデフォルトでローカルにログオンするすべてのユーザーに付与されます。

于 2012-11-20T12:48:36.703 に答える