5

テキスト ファイル内の最初のコンピューターのサービスを返すコマンドしか取得できません。このタスクで for-each よりも良い方法はありますか?

Get-Service *vault* -ComputerName (Get-Content c:\users\sean\desktop\js.txt) | select name,status,machinename | sort machinename | format-table -autosize
4

8 に答える 8

6

なしで試してみてください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

最初に一番上のものを試してみます。テストしたいのですが、今すぐ適切なテストを行うことができるものにアクセスできません。

于 2012-09-20T16:15:29.920 に答える
3
$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

これはうまくいき、テキスト ファイル内の各コンピューターが表示され、サービスが検索されます。

于 2016-05-14T22:37:50.753 に答える
1
$servers = Get-Content .\servers.txt
Foreach ($server in $servers) {
  "$server"
  Get-Service -ComputerName $Server -name -like "*vault*"
  "-------------------"
}
于 2016-08-10T14:18:31.460 に答える
0

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
于 2016-05-18T07:30:04.750 に答える
-1

ニックの解決策は私にとってはまったくうまくいきません。私は動作する迅速で汚いものを書くことになりました:

$servers = Get-Content .\servers.txt
Foreach ($server in $servers) {
"$server"
Get-Service *vault*
"-------------------"
}
于 2016-05-13T18:03:50.583 に答える