2017-05-16 9 views
0

私は現在computers.txtを通過し、特定の名前(MYSERVICENAME)のサービスを各サーバで検索するスクリプトを持っています。ifステートメントのService StartTypeを変更するには?

Get-Content c:\servicelist\computers.txt | % { 
    if ($s = Get-Service -Computer $_ -Name MYSERVICENAME* -ErrorAction SilentlyContinue) { 
     $s | select MachineName, ServiceName, StartType 
    } else { 
     "Service is not available on $_" 
    } 
} 

私はリストを撮りたかったし、(私はスクリプトで指定した内容に応じて)手動または自動のいずれかに彼らの開始の種類を名前と変更することを持っているサーバの場合、私は何ができるか上の任意の提案。

私は私のような何かをスタートタイプを変更することができます知っている:

Set-Service –Name theservice –Computer thecomputer –StartupType “selectedType” 

しかし、上記のスクリプトでこれを実装するための最良の方法かどうかはわかりませんでした。

+0

「=」は等価演算子ではないことに注意してください。変数の値を設定します。 'If​​'ブロックで2つの変数を比較したい場合は、' -eq'を使う必要があります。 – BenH

答えて

2

Get-Service-ComputerNameパラメータは配列引数を受け入れ、そしてSet-Serviceは、あなたは、単にこのような何か行うことができますので、パイプラインから読み取ることができます。

$computers = Get-Content 'C:\servicelist\computers.txt' 
$service  = 'servicename' 
$startupType = 'Automatic' 

Get-Service -Computer $computers -Name $service -ErrorAction SilentlyContinue | 
    Set-Service -StartupType $startupType 
0

を私の意見では最良の方法は、PowerShellを使用することですワークフロー。あなたが初心者の場合、これがあまり進んでいないことを願っています。たとえそうであっても、恐れてはいけません。ワークフローは簡単で強力です。ワークフローは、同じコマンドを並行して、複数のマシンで実行します。シンプルで簡単。

workflow Set-ServiceStartType { 
    Set-Service -Name MYSERVICENAME -StartupType Manual 
} 

Set-ServiceStartType -PSComputerName (Get-Content c:\servicelist\computers.txt) 

あなたは以下のコマンドを実行し、そのワークフローの詳細「を参照してください」にしたい場合は、次の詳細についてはGet-Command Set-ServiceStartType | Select -ExpandProperty ScriptBlock

は、PowerShellのワークフローにHey, Scripting Guy! BlogまたはMS Docs pageを参照してください。

+0

ありがとう、私はこれで遊ぶだろう。 – Prox

-2
$startupType = 'Manual' # change to Automatic or Manual for changing Startup Type 


get-content c:\servicelist\computers.txt | % { 
    if ($s=get-service -computer $_ -name SERVICENAMEHERE* -ErrorAction SilentlyContinue) 
    { 
     $s | select MachineName, ServiceName, StartType | Set-Service -computer $_ -StartupType $startupType 
                  #Comment above if you don't want to change Startup Type 
    } 
    else {"Service is not available on $_"} 
    } 
+0

同時に複数のサービス名をどのように検索できるか知っていますか?おそらく、と - ステートメントを使用して?私は '-name servicename1とservicename2 'を追加してみました。 – Prox

関連する問題