Powershellを使用してリモートでサービスを開始/停止する権限を付与するにはどうすればよいですか?


10

別のコンピューターでサービスを再起動するPowerShellスクリプトがあります。PowerShellの組み込みのサービスコントロールコマンドレットを使用すると、次のようになります。

$svc = Get-Service -Name MyService -ComputerName myservicehostname
Stop-Service -InputObject $svc
Start-Service -InputObject $svc

このエラーが返されます。

Stop-Service:コンピューター 'myservicehostname'でMyServiceサービスを開けません。

ただし、sc.exeを使用すると、次のようになります。

C:\Windows\System32\sc \\myservicehostname stop MyService
C:\Windows\System32\sc \\myservicehostname start MyService

開始と停止は成功します。

再起動しているユーザーは管理者ではありません。subinaclを使用して、サービスを開始/停止してクエリを実行するユーザー権限を付与します。

subinacl.exe /service MyService /GRANT=MyServiceControlUser=STO

PowerShellでサービスを停止できないのsc.exeはなぜですか?

回答:


20

十分な権限を与えていなかったことがわかりましたsubinacl。許可アクションの可能なアクセス値は次のとおりです。

    F : Full Control  
    R : Generic Read  
    W : Generic Write  
    X : Generic eXecute  
  or any following values  
    L : Read controL  
    Q : Query Service Configuration  
    S : Query Service Status  
    E : Enumerate Dependent Services  
    C : Service Change Configuration  
    T : Start Service  
    O : Stop Service  
    P : Pause/Continue Service  
    I : Interrogate Service  
    U : Service User-Defined Control Commands  

私が使っていたS(照会サービス状態)、T(スタートサービス)、およびO(サービスの停止)を。 E(列挙型依存サービス)も必要でした。 PowerShellコマンドレットは、起動/停止時に依存サービスを調べる必要があるようです。

これが私の更新されたsubinaclコマンドです:

subinacl.exe /service MyService /GRANT=MyServiceControlUser=STOE

をダウンロード/使用したくない場合はsubinacl.exeCarbonモジュールのGrant-ServiceControlPermission関数またはGrant-ServicePermission関数を介してPowerShellを使用できます。(免責事項:私はCarbonプロジェクトの所有者/管理者です。)


これを正解としてマークしてください。これはまったく同じ問題に対する私にとって大きな助けとなりました:)
Alain O'Dea

今まで聞いたことがありませんsubinacl。なんと便利なユーティリティでしょう。私たちの残りのためにこの情報を残すために戻ってきてくれてありがとう。
Dan

リモートコンピューター上のサービスを制御するために、Windows 2016サーバーを備えた非ドメイン環境で適切に機能します。
Doug Knudsen、

0

次のコマンドは、Windows Server 2008 R2マシンで期待どおりに機能します。

Start-Service -InputObject $(Get-Service -Computer [ComputerName] -Name spooler)  

この1回限りのコマンドを実行して、それが機能するかどうかを確認することもできますか?また、ユーザーがターゲットサーバーのUsersグループのメンバーであるグループのメンバーであることを確認しましたか?


あなたの盗んだものは私には効きません。セキュリティ要件のため、ユーザーをユーザーグループ(または組み込みのWindowsグループ)のメンバーにすることはできません。
飛び散ったビット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.