PowerShell Cmdlet - Set-Service
 記事記号:[mg1992] 初版:2011/Sep/30

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

名前
    Set-Service
    
概要
    サービスを開始、停止、および中断し、そのプロパティを変更します。
    
構文
    Set-Service [-Name] <string> [-Description <string>] [-DisplayName <string>] 
    [-PassThru] [-StartupType {Automatic | Manual | Disabled}] [-Status <string>
    ] [-ComputerName <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]
    
    Set-Service [-Description <string>] [-DisplayName <string>] [-InputObject <S
    erviceController>] [-PassThru] [-StartupType {Automatic | Manual | Disabled}
    ] [-Status <string>] [-ComputerName <string[]>] [-Confirm] [-WhatIf] [<Commo
    nParameters>]
    
説明
    Set-Service コマンドレットは、状態、説明、表示名、開始モードなど、ローカル 
    サービスまたはリモート サービスのプロパティを変更します。このコマンドレット
    を使用すると、サービスを開始、停止、または中断 (一時停止) できます。サービス
    を識別するには、サービス名の入力、サービス オブジェクトの送信、あるいは Set-
    Service に対するサービス名またはサービス オブジェクトのパイプ処理を行います。

パラメーター
    -ComputerName <string[]>
        1 台以上のコンピューターを指定します。既定値はローカル コンピューターで
        す。
        
        リモート コンピューターの NetBIOS 名、IP アドレス、または完全修飾ドメイ
        ン名を入力します。ローカル コンピューターを指定するには、コンピューター
        名、ドット (.)、または「localhost」を入力します。
        
        このパラメーターは、Windows PowerShell リモート処理に依存しません。コン
        ピューターがリモート コマンドを実行するように構成されていない場合でも、S
        et-Service の ComputerName パラメーターを使用できます。
        
        必須                         false
        位置                         named
        既定値                       ローカル コンピューター
        パイプライン入力を許可する   true (ByPropertyName)
        ワイルドカード文字を許可する false
        
    -Description <string>
        サービスの新しい名前を指定します。
        
        サービスの説明は、[コンピューターの管理] の [サービス] に表示されます。D
        escription は Get-Service が取得する ServiceController オブジェクトのプ
        ロパティではありません。サービスの説明を表示するには、Get-WmiObject を使
        用してサービスを表す Win32_Service オブジェクトを取得します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -DisplayName <string>
        サービスの新しい表示名を指定します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -InputObject <ServiceController>
        変更するサービスを表す ServiceController オブジェクトを指定します。オブ
        ジェクトを格納する変数を入力するか、Get-Service コマンドなど、オブジェク
        トを取得するコマンドまたは式を入力します。パイプを使用してオブジェクトを 
        Set-Service に渡すこともできます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   true (ByValue)
        ワイルドカード文字を許可する false
        
    -Name <string>
        変更するサービスのサービス名を指定します。ワイルドカードは使用できません。
        Set-Service に対してサービス名をパイプ処理することもできます。
        
        必須                         true
        位置                         1
        既定値                       
        パイプライン入力を許可する   true (ByValue, ByPropertyName)
        ワイルドカード文字を許可する false
        
    -PassThru [<SwitchParameter>]
        変更されたサービスを表すオブジェクトを返します。既定では、このコマンドレ
        ットによる出力はありません。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -StartupType <ServiceStartMode>
        サービスの開始モードを変更します。スタートアップの種類で有効な値は以下の
        とおりです。
        
        -- Automatic: システムの起動時に、自動的に開始されます。
        -- Manual: ユーザーまたはプログラムによって開始されます。
        -- Disabled: 開始できません。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Status <string>
        サービスを開始、停止、または中断 (一時停止) します。有効な値は次のとおり
        です。
        
        -- Running: サービスを開始します。
        -- Stopped: サービスを停止します。
        -- Paused: サービスを中断します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Confirm [<SwitchParameter>]
        コマンドを実行する前に確認メッセージを表示します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -WhatIf [<SwitchParameter>]
        実際にコマンドを実行せずに、コマンドを実行すると何が起きるかを出力します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    <CommonParameters>
        このコマンドレットは、次の共通パラメーターをサポートします: Verbose、
        Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、
        OutBuffer、および OutVariable。詳細については、
        「get-help about_commonparameters」と入力してヘルプを参照してください。
    
入力
    System.ServiceProcess.ServiceController、System.String
        パイプを使用して、サービス名が含まれているサービス オブジェクトまたは文
        字列を Set-Service に渡すことができます。
    
出力
    なし
        このコマンドレットはオブジェクトを返しません。
    
メモ
        Windows Vista 以降のバージョンの Windows で、Set-Service を使用するには、
        Windows PowerShell を起動する際に [管理者として実行] を指定する必要があ
        ります。
        
        Set-Service では、現在のユーザーに権限がある場合のみサービスを制御できま
        す。コマンドが正常に機能しない場合は、必要な権限が与えられていない可能性
        があります。
        
        システム上のサービスのサービス名と表示名を参照するには、「get-service」と
        入力します。サービス名は [Name] 欄に表示され、表示名は [DisplayName] 欄に
        表示されます。
    
    -------------------------- 例 1 --------------------------
    
    C:\PS>set-service -name lanmanworkstation -DisplayName "LanMan Workstation"
    
    説明
    -----------
    このコマンドを実行すると、lanmanworkstation サービスの表示名が "LanMan Works
    tation" に変更されます。既定の表示名は "Workstation" です。
    
    -------------------------- 例 2 --------------------------
    
    C:\PS>get-wmiobject win32_service -filter "name = 'SysmonLog'"
    
    ExitCode  : 0
    Name      : SysmonLog
    ProcessId : 0
    StartMode : Manual
    State     : Stopped
    Status    : OK
    
    C:\PS> set-service sysmonlog -startuptype automatic
    
    C:\PS> get-wmiobject win32_service -filter "name = 'SysmonLog'"
    
    ExitCode  : 0
    Name      : SysmonLog
    ProcessId : 0
    StartMode : Auto
    State     : Stopped
    Status    : OK
    
    C:\PS> get-wmiobject win32_service | format-table Name, StartMode -auto
    
    Name                                  StartMode
    ----                                  ---------
    AdtAgent                              Auto
    Alerter                               Disabled
    ALG                                   Manual
    AppMgmt                               Manual
    ...
    
    説明
    -----------
    これらのコマンドを実行すると、Performance Logs and Alerts (SysmonLog) サービ
    スのスタートアップの種類が取得され、開始モードが [自動] に設定され、変更の結
    果が表示されます。
    
    これらのコマンドは、Get-WmiObject コマンドレットを使用してサービスの Win32_S
    ervice オブジェクトを取得します。これは、Get-Service が返す ServiceControlle
    r オブジェクトに開始モードが含まれていないためです。
    
    最初のコマンドでは、Get-WmiObject コマンドレットを使用して SysmonLog サービ
    スを表す Windows Management Instrumentation (WMI) オブジェクトを取得します。
    このコマンドの既定の出力では、サービスの開始モードが表示されます。
    
    2 番目のコマンドでは、Set-Service を使用して、開始モードを [自動] に変更しま
    す。次に、最初のコマンドを繰り返して変更内容を表示しています。
    
    最後のコマンドでは、コンピューター上のすべてのサービスの開始モードが表示され
    ます。
    
    -------------------------- 例 3 --------------------------
    
    C:\PS>set-service -name Schedule -computername S1 -description "Configures a
    nd schedules tasks."
    
    C:\PS> get-wmiobject win32_service -computername s1 | where-object {$_.Name 
    -eq "Schedule"} | format-list Name, Description
    
    説明
    -----------
    これらのコマンドを実行すると、S1 リモート コンピューター上の Task Scheduler 
    サービスの説明が変更され、結果が表示されます。
    
    これらのコマンドは、Get-WmiObject コマンドレットを使用してサービスの Win32_S
    ervice オブジェクトを取得します。これは、Get-Service が返す ServiceControlle
    r オブジェクトにサービスの説明が含まれていないためです。
    
    最初のコマンドでは、Set-Service コマンドを使用して説明を変更しています。サー
    ビスのサービス名 Schedule を使用してサービスを指定しています。
    
    2 番目のコマンドでは、Get-WmiObject コマンドレットを使用して、Task Scheduler 
    サービスを表す WMI Win32_Service のインスタンスを取得しています。コマンドの
    最初の要素が Win32_service クラスのすべてのインスタンスを取得します。
    
    パイプライン演算子 (|) により、結果が Where-Object コマンドレットに渡され、N
    ame プロパティの値が Schedule となっているインスタンスが選択されます。
    
    もう 1 つのパイプライン演算子により結果が Format-List コマンドレットに渡され、
    Name プロパティと Description プロパティだけのリストとして出力が書式設定され
    ます。
    
    -------------------------- 例 4 --------------------------
    
    C:\PS>set-service winrm -status Running -passthru -computername Server02
    
    説明
    -----------
    このコマンドを実行すると、Server02 コンピューターで WinRM サービスが開始され
    ます。このコマンドは、Status パラメーターを使用して目的の状態 (running) を指
    定し、PassThru パラメーターを使用して WinRM サービスを表すオブジェクトを返す
    ように Set-Service に指示します。
    
    -------------------------- 例 5 --------------------------
    
    C:\PS>get-service schedule -computername S1, S2 | set-service -status paused
    
    説明
    -----------
    このコマンドは、S1 および S2 リモート コンピューターの Schedule サービスを中
    断します。また、Get-Service コマンドレットを使用してサービスを取得します。サ
    ービスはパイプライン演算子 (|) によって Set-Service コマンドレットに渡され、
    ステータスが "一時停止" に変更されます。
    
    -------------------------- 例 6 --------------------------
    
    C:\PS>$s = get-service schedule
    
    C:\PS> set-service -inputobject $s -status stopped
    
    説明
    -----------
    これらのコマンドを実行すると、ローカル コンピューターの Schedule サービスが
    停止されます。
    
    最初のコマンドは、Get-Service コマンドレットを使用して Schedule サービスを取
    得します。このコマンドは、サービスを $s 変数に保存します。
    
    2 番目のコマンドは、Set-Service コマンドレットを使用して、Schedule サービス
    の状態を "停止" に変更します。このコマンドは InputObject パラメーターを使用
    して $s 変数に保存されているサービスを送信し、Status パラメーターを使用して
    目的の状態を指定します。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=113399
    Get-Service 
    Start-Service 
    Stop-Service 
    Restart-Service 
    Resume-Service 
    Suspend-Service 
    New-Service 
    	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Cmdlet、Set-Service
ご利用数: 1859011
感想・要望・問い合わせは こちら