web-dev-qa-db-ja.com

リモートサービスクエリ(sc.exeクエリ)は、あるサービスでは「アクセスが拒否されました」で失敗しますが、他のサービスでは失敗しません

特定のサービスをリモートでアンインストールしようとしていますが、有名な「FAILED 5:アクセスが拒否されました」を取得します。メッセージ。テストケースを実行に減らしました

sc \\remotemachine.domain.local query "flexnet licensing service"

そして私は得る

[SC] EnumQueryServicesStatus:OpenService FAILED 5:
Access is denied.

興味深いのは、同じクライアントから他のほとんどすべてのサービスをリモートで照会でき、問題がないことです。ホストマシン

  • UACが無効になっていますか
  • LocalAccountTokenFilterPolicyが1に設定されています

マシンに直接ログオンしたときに同じユーザーを使用すると、この「flexnetライセンスサービス」を問題なく照会、開始、または停止できます。問題が発生するのは、リモートで実行しようとした場合のみです。

もともと、アンインストーラーがWindows C APIを使用してこのサービスをアンインストールできなかったときに、この問題に遭遇しました。アンインストーラーは、マシン上で直接実行すると正常に機能しますが、WMIを介してリモートで呼び出されると失敗します。テストケースは段階的に削減されてきましたが、これまでのところ、すべての場合において、この特定のサービスのクエリまたは停止または削除の試行は、リモートで試行すると失敗します。

また、次のコマンドを含むバッチスクリプトをリモートで呼び出してみました。

powershell.exe -Command "Start-process C:\myDeleteSvc.exe -Verb RunAs"

MyDeleteSvc.exeは、サービス Windows C APIを使用 を削除するためにターゲットマシンにインストールされた単純なプログラムでしたが、アクセスが拒否されたOpenService呼び出しでも失敗しました。繰り返しますが、マシン上で直接実行すると正常に動作します。

これは、Windows 7および2008R2マシンにインストールされたサービスで発生しました(他のプラットフォームではテストされていません)。

問題のサービスはサードパーティソフトウェア用です。 Windows Management Instrumentationサービスに依存関係がありますが、すべての依存関係(および依存関係)を手動で削除しても、リモートでクエリを実行することはできません。

誰かが調査(または解決策)のためのさらなる提案がありますか?

サービスをリモートでアンインストールできる場合が1つあります。この製品のサポートチームに問題を理解するように依頼しました。彼らも謎に包まれていましたが、リモートで実行すると問題のサービスをアンインストールするmsiファイルを提供していました。このmsiを生成するために使用されたスクリプトにはアクセスできませんが、「非常に単純で、サービスをアンインストールするだけでした」と言われました。調査の1つの可能な方法は、msiサービスのアンインストールがアンインストールを実行するときに「余分な」何かを行うかどうかを理解することです-誰か知っていますか?

いくつかの関連する質問は、すべてUACの同じテーマであり、管理者として実行されているように見えます。また、他のサービスをリモートで照会できるため、私の問題は少し異なるはずだと思います。リンクを含めると、ボットはこれがスパムであると見なすため、タイトルを検索するだけです。

  • Administrator/elevatedを実行している場合でも、サービスを開始しようとすると「アクセスが拒否されました」
  • psexec:「アクセスが拒否されました」?
  • リモートscOpenSCManagerクエリが失敗しました5アクセスが拒否されました
2
TheDuke

Craig620のおかげで、問題は確かにセキュリティ記述子に関連していました。

C:>sc sdshow "flexnet licensing service"

D:(D;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;NU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCLCSWRPLOCRRC;;;IU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

C:>sc sdshow myService

D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

そして、 SID構文 から、最初のエントリ((D;;...;;;NU)Disablesを見ることができます。ネットワーク(NU)。 SDを変更して、NUの無効化を除いた同じ権限を持つようにした場合、sc.exeコマンドを使用してリモートでサービスを照会および削除できました。

2
TheDuke