Bar

PowerShell サービス取得・変更を行うコマンドレットのまとめ

Windows Server 2012 R2 Essentialsのサービスを調査・変更等を行うためのPowerShell コマンドレットをメモ。

2016/9/5 修正
一部パラメータに誤りがあったので修正しました。

サービスの調査

  • サービスの調査
    Get-Service xxx
  • このサービス「が」依存するシステム コンポーネントの調査
    Get-Service <サービス名> –RequiredServicesimage
  • このサービス「に」依存するシステム コンポーネントの調査
    Get-Service <サービス名> –DependentServices
    image
「が」「に」は分かりずらく、日本語は本当に難しい&英語は簡単だな~とつくづく思いました。

サービス一覧をxxxで並び替える

  • ステータスで並び替える
    Get-Service | Sort-Object status
  • サービス名で並び替える
    Get-Service | Sort-Object name
  • 表示名で並び替える
    Get-Service | Sort-Object displayname
  • 降順で並び替える
    Get-Service | Sort-Object displayname –Descending

サービスの開始・停止

  • サービスの開始
    Start-Service –Name <サービス名> –PassThru
  • サービスの停止
    Stop-Service –Name <サービス名> –PassThru
  • サービスの一時停止
    Suspend-Service –Name <サービス名> –PassThru
  • サービスの再起動
    Restart-Service –Name <サービス名> –PassThru
-Name以外に-DisplayNameも可能です。
-PathThruはサービスを表すオブジェクトが実行結果として返ってきます。
image
Xxx-Service以外に、Set-Serviceを使う事もできます。
ただし、Restart-Serviceコマンドレット相当のパラメータはないようですね。
Set-Serviceで再起動する場合は、Stopped→Runningを実行する事になりそうです。

スタートアップの種類の調査と変更

サービスの[スタートアップの種類]を取得するコマンドレット/パラメータを探すことが出来なかったので、Get-WmiObjectを使っています。
  • スタートアップの種類の調査
    (Get-WmiObject Win32_Service -filter "Name='<サービス名>'").StartMode
  • スタートアップの種類の変更~自動
    Set-Service <サービス名> -StartupType Automatic
  • スタートアップの種類の変更~手動
    Set-Service <サービス名> -StartupType Manual
  • スタートアップの種類の変更~無効
    Set-Service <サービス名> -StartupType Disabled

クライアントからリモートのサービスを確認する

Windows リモート管理(WinRM)サービスを使用してリモート先のサービスを確認します。
Enter-PSSessionコマンドレット等他の方法もありますが、今回はInvoke-Commandコマンドレットを使うための手順をメモ。
  1. 管理者権限でPowerShellを起動
  2. クライアントPCで[Enable-PSRemoting]を実行、[Y]を入力
    ※[Set-WSManQuickConfig]でもOK
    ※サードパーティ製ファイアウォールを使用していると途中エラーになる場合があります。
  3. クライアントでリモートホストを信頼(下記はすべてリモート先を信頼)
    Set-Item WSMan:\localhost\Client\TrustedHosts -Value *
  4. [Invoke-Command]コマンドレットを実行
[Invoke-Command]コマンドレットのサンプルは下記の通り。
Invoke-Command -ComputerName SERVER_NAME.DOMAIN.local -Credential DOMAIN\ADMINISTRATORS_GROUP_USER_NAME -ScriptBlock{Get-Service}
上記サンプルの場合、実行後にパスワード入力が求められます。
image
ConvertTo-SecureString コマンドレットを使用し、パスワード入力 プロンプトを表示させない方法もありますが、こちらは次回にします。
インターネットで調べていただければすぐに分かると思いますが。。。