0

ServiceController.GetServices() メソッドを使用して、すべてのサービスのリストを取得しようとしています。コンソール アプリケーションでは問題なく動作しますが、Windows サービスでこのメソッドを呼び出すと、空のリストが返されます。これは認証の問題のようですが、すべてのアカウント オプション (ローカル システム、ローカル サービス、ネットワーク サービス、ユーザー [これはローカル管理者です]) を使用しましたが、うまくいきませんでした。

何か提案はありますか?

ありがとう

4

1 に答える 1

1

同意しました、これはユーザー アカウントの権限の問題である必要があります。列挙は、ネイティブの OpenSCManager() API 関数を呼び出して開始する必要があります。これは非常に特権的な機能です。SDK ドキュメントには、管理者アクセスが必要であると記載されています。サービスを構成し、管理者ログインを付与する必要があります。あなたはすでにこれを試したようですね。UAC について少し心配してから、セキュリティ専門家の本拠地であると思われる serverfault.com でさらに質問してください。

于 2010-07-09T12:51:42.677 に答える