2016/9/5 修正
一部パラメータに誤りがあったので修正しました。
サービスの調査
- サービスの調査
Get-Service xxx - このサービス「が」依存するシステム コンポーネントの調査
Get-Service <サービス名> –RequiredServices - このサービス「に」依存するシステム コンポーネントの調査
Get-Service <サービス名> –DependentServices
サービス一覧を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
-PathThruはサービスを表すオブジェクトが実行結果として返ってきます。
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コマンドレットを使うための手順をメモ。
- 管理者権限でPowerShellを起動
- クライアントPCで[Enable-PSRemoting]を実行、[Y]を入力
※[Set-WSManQuickConfig]でもOK
※サードパーティ製ファイアウォールを使用していると途中エラーになる場合があります。 - クライアントでリモートホストを信頼(下記はすべてリモート先を信頼)
Set-Item WSMan:\localhost\Client\TrustedHosts -Value * - [Invoke-Command]コマンドレットを実行
Invoke-Command -ComputerName SERVER_NAME.DOMAIN.local -Credential DOMAIN\ADMINISTRATORS_GROUP_USER_NAME -ScriptBlock{Get-Service}上記サンプルの場合、実行後にパスワード入力が求められます。
ConvertTo-SecureString コマンドレットを使用し、パスワード入力 プロンプトを表示させない方法もありますが、こちらは次回にします。
インターネットで調べていただければすぐに分かると思いますが。。。