サービスのリストを受け取って次のスニペットを実行する汎用関数を作成しようとしています。 1つの値を送信すると、それが機能し、複数の値を送信しようとすると失敗します。powershellで問題が発生しましたwhere-objectフィルター
これについてもっと詳しく調べる方法はありますか?何か簡単なものがありませんか?
cls
$host_name = "."
#works
$ary_param = "sql"
#fails
#$ary_param = "sql,ftp"
$services = @($ary_param)
$colItems = Get-WmiObject -Class Win32_Service -ComputerName $host_name |
Select-Object Name, DisplayName, State, ProcessID, StartMode, StartName |
Where-Object{$_.Name -like '*' + $services + '*'}
$ServiceInfo = @()
foreach ($objItem in $colItems)
{
$tempServiceInfo = "" | Select Name, DisplayName, State, ProcessID, PriorityClass, StartMode, StartName
[string]$tempServiceInfo.Name = $objItem.Name.ToString()
[string]$tempServiceInfo.DisplayName = $objItem.DisplayName.ToString()
[string]$tempServiceInfo.State = $objItem.State.ToString()
[string]$tempServiceInfo.ProcessID = $objItem.ProcessID.ToString()
[string]$tempServiceInfo.StartMode = $objItem.StartMode.ToString()
[string]$tempServiceInfo.StartName = $objItem.StartName.ToString()
$svc_pid = $objItem.ProcessID
$priority_class = Get-Process -ComputerName $host_name | Select Id, PriorityClass | Where-Object{$_.Id -eq $svc_pid }
[string]$tempServiceInfo.PriorityClass = $priority_class.PriorityClass
$ServiceInfo += $tempServiceInfo
}
$ServiceInfo | Format-Table
あなたはそれが 'どこ-Object'フィルタに関連していると思いますか? – JNK