管理者以外のユーザーにWindowsサービスの開始/停止を許可するにはどうすればよいですか?
デフォルトでは、一般的な(管理者以外の)ユーザーはWindowsサービスを管理できません。これは、ユーザーがWindowsサービスの設定/許可を停止、開始、再起動、または変更できないことを意味します。場合によっては、ユーザーが特定のサービスを再起動または管理するためのアクセス許可を持っている必要があります。この記事では、Windowsサービスのアクセス許可を管理するいくつかの方法を見ていきます。特に、管理者以外のユーザーが適切なアクセス許可を付与することにより、特定のWindowsサービスを開始、停止、および再起動できるようにする方法を示します。
ドメインアカウントにcontoso\ tuserを付与する必要があるとします。 Print Spoolerを再起動するための権限 サービス(サービス名– スプーラー) 。非管理者がサービスを再起動しようとすると、エラーが表示されます:
システムエラー5が発生しました。アクセスが拒否されました。
Windowsでサービスのアクセス許可を管理するためのシンプルで便利な組み込みツールはありません。ユーザーにサービスを管理するための権限を付与するいくつかの方法を検討します。
SC.exe(サービスコントローラー)ツールを使用したWindowsサービスのアクセス許可の設定
システムサービスのアクセス許可を管理するための標準の組み込みWindowsメソッドは、 sc.exeの使用を想定しています。 (サービスコントローラー)ツール。このユーティリティを使用する際の主な問題は、サービス許可形式( SDDL )の複雑な構文です。 format —セキュリティ記述定義言語)。
Windowsサービスの現在のアクセス許可は、次のようなSDDL文字列として取得できます。
sc.exe sdshow Spooler
D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)
(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
これらすべての記号はどういう意味ですか?
S:—システムアクセス制御リスト(SACL)D:—任意ACL(DACL)
角かっこの後の最初の文字は、次のことを意味します:許可( A )または拒否( D 。
次の一連の記号は、割り当て可能な権限です。
CC — SERVICE_QUERY_CONFIG(サービス設定の要求)LC — SERVICE_QUERY_STATUS(サービスステータスポーリング)SW — SERVICE_ENUMERATE_DEPENDENTSLO — SERVICE_INTERROGATECR — SERVICE_USER_DEFINED_CONTROLRC — READ_CONTROLRP — SERVICE_STARTWP — SERVICE_STOPDT — SERVICE_PAUSE_CONTIN最後の2文字は、アクセス許可が付与されているオブジェクト(ユーザー、グループ、またはSID)です。事前定義されたグループのリストがあります。
AU認証済みユーザーAOアカウントオペレーターRU以前のWindows2000ANを許可するエイリアス匿名ログオンAU認証済みユーザーBA組み込み管理者BG組み込みゲストBOバックアップオペレーターBU組み込みユーザーCA証明書サーバー管理者CGクリエーターグループCOクリエーター所有者DAドメイン管理者DCドメインコンピューターDDドメインコントローラーDGドメインゲストDUドメインユーザーEAエンタープライズ管理者EDエンタープライズドメインコントローラーWDEveryonePAグループポリシー管理者IUインタラクティブにログオンしたuserLAローカル管理者LGローカルguestLSローカルサービスアカウントSYローカルシステムNUネットワークログオンuserNOネットワーク構成オペレーターNSネットワークサービスアカウントPOプリンターオペレーターPSパーソナルselfPUパワーユーザーRSRASサーバーgroupRDターミナルサーバーユーザーREReplicatorRC制限付きコードSAスキーマ管理者SOサーバーオペレーターSUサービスログオンユーザー事前定義されたグループの代わりに、SIDでユーザーまたはグループを明示的に指定できます。現在のユーザーのSIDを取得するには、次のコマンドを使用できます。
whoami /user
または、Get-ADUserコマンドレットを使用して任意のドメインユーザーのSIDを見つけることができます:
Get-ADUser -Identity 'sadams' | select SID
Get-ADGroupコマンドレットを使用してADセキュリティグループのSIDを取得できます:
Get-ADGroup -Filter {Name -eq "ny-ithelpdesk"} | Select SID
特定のサービスにSDDL権限文字列を割り当てるには、 sc sdsetを使用できます。 指図。たとえば、次のコマンドを使用して、アクセス許可をユーザーに付与できます。
sc sdset Spooler "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;RPWPCR;;;S-1-5-21-2133228432-2794320136-1823075350-1000)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
SubInACLを使用してユーザーがサービスを開始/停止/再開できるようにする
コマンドラインツールSubInACLを使用する方が簡単です Sysinternals(Mark Russinovichによる)からサービス権限を管理します。このツールの構文ははるかに簡単で便利です。 SubInACLを使用してサービスの再起動権限を付与する方法は次のとおりです。
- subinacl.msiをダウンロード このWebページ(https://www.microsoft.com/en-us/download/details.aspx?id=23510)から、ターゲットシステムにインストールします。
- 管理者特権のコマンドプロンプトで、ツールが含まれているディレクトリに移動します:
cd “C:\Program Files (x86)\Windows Resource Kits\Tools\"
- 次のコマンドを実行します:
subinacl.exe /service Spooler /grant=contoso\tuser=PTO
注 。この場合、サービスを一時停止(一時停止/継続)、開始、停止(再開)する権限をユーザーに付与しました。利用可能なサービス権限の完全なリスト:F:Full ControlR:Generic ReadW:Generic WriteX:Generic eXecuteL:Read controLQ:Query Service ConfigurationS:Query Service StatusE:Enumerate Dependent ServicesC:Service Change ConfigurationT:Start ServiceO:Stop ServiceP:Pause / Continue ServiceI:Interrogate ServiceU:サービスユーザー定義の制御コマンドリモートコンピューターで実行されているサービスにアクセス許可を付与する必要がある場合は、subinaclコマンドの次の構文を使用します。
subinacl /SERVICE \\lon-prnt1\spooler /grant=contoso\tuser=F
- これで、ユーザーアカウントでコンピューターにログオンし、次のコマンドを使用してサービスを再起動するだけで済みます。
net stop spooler
net start spooler
またはsc stop spooler && sc start spooler
すべてが正しく行われた場合、サービスは再起動する必要があります。
割り当てられたサービス権限を取り消すには、/revoke
を使用します subinacl.exeツールのオプション。例:
subinacl.exe /service Spooler /revoke=contoso\tuser
Process Explorerを使用してWindowsサービスのアクセス許可を変更するにはどうすればよいですか? もう1つのSysinternalsユーティリティ– Process Explorer を使用して、Windowsサービスのアクセス許可を変更できます。 。管理者としてProcessExplorerを実行し、必要なサービスのプロセスを見つけます。この例では、これは spoolsv.exe (スプーラ実行可能ファイル–
C:\Windows\System32\spoolsv.exe
)。プロセスのプロパティを開き、サービスをクリックします タブ。
権限をクリックします ボタンをクリックして、開いたウィンドウにユーザーまたはグループを追加します。その後、割り当てる権限(フルコントロール/書き込み/読み取り)を選択します。
PowerShellを使用したWindowsサービスのアクセス許可の設定
TechNetギャラリーには、さまざまなWindowsオブジェクトのアクセス許可を管理するための個別の非公式PowerShellモジュール(PowerShellAccessControlモジュール)があります。 (ここからダウンロードできます)。このモジュールでは、サービスのアクセス許可を管理することもできます。このモジュールをインストールして、PSセッションにインポートします:
Import-Module PowerShellAccessControl
次のように、PowerShellから特定のWindowsサービスの有効なアクセス許可を取得できます。
Get-Service spooler | Get-EffectiveAccess -Principal corp\tuser
管理者以外のユーザーがスプーラサービスを開始および停止できるようにするには、次のコマンドを実行します。
Get-Service spooler | Add-AccessControlEntry -ServiceAccessRights Start,Stop -Principal corp\tuser
セキュリティテンプレートを使用したサービス権限の管理 サービスのアクセス許可を管理するための視覚的な(ただし、より多くのアクションが必要な)グラフィカルな方法は、セキュリティテンプレートを使用することです。 mmc.exeを開きます コンソールを開き、セキュリティテンプレートを追加します スナップイン。
新しいセキュリティテンプレート(新しいテンプレート)を作成します。
新しいテンプレートの名前を指定して、システムサービスに移動します セクション。サービスのリストで、サービス Print Spoolerを選択します プロパティを開きます。
起動モードを選択します(自動 )、[セキュリティの編集]をクリックします 。
追加の使用 ボタンをクリックして、権限を付与するユーザーアカウントまたはグループを追加します。この場合、開始、停止、一時停止 許可で十分です。
このテンプレートを保存します。
注 。セキュリティテンプレートの内容は、INFファイルとしてC:\ Users \%username%\ Documents \ Security\Templatesフォルダーに保存されます。このファイルを開くと、アクセス許可に関する情報が前述のSDDL形式で保存されていることがわかります。このようにして取得した文字列は、sc.exeコマンドの引数として使用できます。
[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[Service General Setting]
"Spooler",2,"D:AR(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;RPWPDTRC;;;S-1-5-21-3243688314-1354026805-3292651841-1127)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
これで、セキュリティを使用して新しいデータベース(データベースを開く)を作成するだけで済みます。構成と分析 スナップインして、ファイル SpoolerUserRights.inf。からセキュリティテンプレートをインポートします。
今すぐコンピュータを設定を選択して、このテンプレートを適用します コンテキストメニューのオプション。
ここで、ユーザーが非管理者アカウントでPrintSpoolerサービスの管理を許可できることを確認します。
GPOを使用してサービスを管理する権限をユーザーに付与するにはどうすればよいですか?
複数のサーバーまたはドメインコンピューターでサービスを開始/停止するためのアクセス許可をユーザーに付与する必要がある場合は、グループポリシー(GPO)機能を使用する方が簡単です。
Windowsサービスのセキュリティアクセス許可はどこに保存されますか?
- 新しいGPOを作成するか、既存のGPOを編集して、コンピューターオブジェクトを使用して必要なActive Directoryコンテナー(OU)にリンクします。ポリシーセクションコンピューターの構成->Windowsの設定->セキュリティの設定->システムサービスに移動します;
- Spoolerサービスを見つけて、上記の方法のようにユーザーに権限を付与します。変更を保存します;注。 以前、同じGPOを使用すると、すべてのユーザーから任意のWindowsサービスを非表示にできることを示しました。
- GPOがクライアントコンピューターに適用されるまで待ち、新しいサービスのアクセス許可が割り当てられていることを確認します。
デフォルトの権限を変更したすべてのサービスのセキュリティ設定は、独自のレジストリキー
HKLM\System\CurrentControlSet\Services\<servicename>\Security
に保存されます。 セキュリティ REG_BINARYタイプのパラメーター。これは、他のコンピューターでサービスのアクセス許可を設定する方法の1つは、このレジストリパラメーターをエクスポート/インポートすることです(GPOを介したものを含む)。
そこで、Windowsサービスのアクセス許可を管理するいくつかの方法を検討しました。これにより、管理者以外のユーザーにシステムサービスのアクセス許可を付与できます。ユーザーがローカルログオンまたはRDPアクセス許可を付与せずにサービスへのリモートアクセスを必要とする場合は、ユーザーがリモート接続してサービスコントロールマネージャーを介してサービスを列挙できるようにする必要があります。
-
Windows 11 ナレーターを停止または開始する方法
Windows 11 のナレーターは、視覚障害のある方が PC を操作できるように、画面上のテキストを読み上げます。ナレーターはオペレーティング システムに組み込まれた画面読み上げアプリなので、ダウンロードしてインストールする必要はありません。 このガイドでは、Windows 11 ナレーターを停止または開始する方法について説明します。 Windows 11 ナレーターのキーボード ショートカット Windows 11 (および Windows 10) でナレーターを停止または開始する最も簡単な方法は、Windows キー + Ctrl + Enter を使用することです。 キーボード シ
-
Windows 11 で Windows Update を停止する方法
Microsoft は、セキュリティ パッチ、新機能、および問題の修正で構成される Windows OS の更新プログラムを定期的に提供しています。これらの更新は強く推奨され、無期限に実行する必要があります。ただし、PC が従量制課金接続になっている場合や、Windows Update を一時的に無効にして、PC へのダウンロードとインストールを停止できる場合があります。 Windows の更新を停止する方法をいくつか紹介します。 Windows Update を停止するさまざまな方法 方法 1:Windows Update を一時停止する 最初の方法では、ユーザーは Windows 更新プ