対象のコンピューターのAdministratorsグループの一部であるドメインユーザーとしてWindows 2008 R2サーバーにログインしました。次のコマンドを実行すると、アクセス拒否のエラーが表示されます。
$> sc stop ServiceName
[SC] OpenService FAILED 5:
Access is denied.
奇妙なのは、まったく同じユーザーとして、サービスGUI([管理ツール]> [サービス])を開いて、まったく同じサービスを問題なく開始/停止できることです。これは、開始/停止しようとするallサービスで発生しているようで、このコンピューターの「管理」ユーザーとして発生します(ローカルの管理ユーザーを除いて、私は行いません)テストするための信用があります)。コマンドラインは失敗しますが、GUIは機能します。
サービス名のスペルが正しいことも知っています。それを別の名前に変更すると、別のエラー(「指定されたサービスが存在しません...」)が発生するためです。サービス名の大文字と小文字(ServiceNameとSERVICENAME)を変更すると、両方でアクセス拒否エラーが発生することに気づきました。
Scコマンドの代わりに「net start ServiceName」を使用すると、同様のアクセス拒否メッセージが表示されます。
ここで何が起こっているのでしょうか?スクリプト作成の目的でこれを機能させる必要があります。同じスクリプトがWin2003サーバーで正常に動作しています。
多くの人が嫌いな理由を発見したようです ユーザーアカウント制御 。
コマンドプロンプトアイコンを右クリックして、[管理者として実行]を選択する必要があります。これにより、実際に管理者権限を利用できるようになります。