テキスト ファイル内の最初のコンピューターのサービスを返すコマンドしか取得できません。このタスクで for-each よりも良い方法はありますか?
Get-Service *vault* -ComputerName (Get-Content c:\users\sean\desktop\js.txt) | select name,status,machinename | sort machinename | format-table -autosize
テキスト ファイル内の最初のコンピューターのサービスを返すコマンドしか取得できません。このタスクで for-each よりも良い方法はありますか?
Get-Service *vault* -ComputerName (Get-Content c:\users\sean\desktop\js.txt) | select name,status,machinename | sort machinename | format-table -autosize
なしで試してみてくださいget-content
。これを試して:
Get-Service *vault* -ComputerName c:\users\sean\desktop\js.txt | select name,status,machinename | sort machinename | format-table -autosize
それでもうまくいかない場合は、次のことを試してください。
$Computers = Get-Content c:\users\sean\desktop\js.txt
Get-Service *vault* -computername $Computers | Select name,status,machinename |sort machinename |format-table -autosize
ワンライナーを熱望している場合は、これを試してください:
Get-Content c:\users\sean\desktop\js.txt | Get-Service *vault* | Select name,status,machinename |sort machinename |format-table -autosize
最初に一番上のものを試してみます。テストしたいのですが、今すぐ適切なテストを行うことができるものにアクセスできません。
$Computers = get-content .\desktop\test.txt
$Service = "Vault"
foreach ($computer in $computers) {
$computer
$Servicestatus = get-service -name $Service -ComputerName $computer
}
$Servicestatus | select-object Name,Status,MachineName | format-table -Autosize
これはうまくいき、テキスト ファイル内の各コンピューターが表示され、サービスが検索されます。
$servers = Get-Content .\servers.txt
Foreach ($server in $servers) {
"$server"
Get-Service -ComputerName $Server -name -like "*vault*"
"-------------------"
}
Get-Service -ComputerName ...
最初のコンピューターのみを返す PowerShell 2.0 のバグがあります。これは新しいバージョンでは修正されているため、PowerShell 3.0 以降にアップグレードすると、元のコードは正常に動作します。
回避策として、foreach ループを使用して、Get-Service
コンピューターごとに 1 回実行します。
Get-Content c:\users\sean\desktop\js.txt |
ForEach-Object { Get-Service -Name *vault* -ComputerName $_ } |
Select-Object -Property Name, Status, MachineName |
Sort-Object -Property MachineName |
Format-Table -AutoSize
ニックの解決策は私にとってはまったくうまくいきません。私は動作する迅速で汚いものを書くことになりました:
$servers = Get-Content .\servers.txt
Foreach ($server in $servers) {
"$server"
Get-Service *vault*
"-------------------"
}