2017-08-11 10 views
0

私はコマンドGet-WmiObject win32_service|select name, osname|? name -match $a$a=cmd.exeを持っています。問題は私が$aを渡すとき、出力はすべてのプロセスを持っています。しかし、私が直接価値を渡すときGet-WmiObject win32_service|select name, osname|? name -match "cmd.exe"それは良い作品です。どのように変数のプロセス名を渡す必要がありますか?パラメータを使用してテキスト値を渡す

+2

'' cmd.exe ''と等しくなるように '$ a'を設定します。文字列にするには引用符で囲みます。 –

答えて

0

なぜネイティブPSコマンドとして存在するものに対してWMIコールを使用していますか?

Get-Process | ? Name -eq cmd.exe 
+0

ただし、そのコマンドレットを実行しようとすると、 'Invoke-Command -ComputerName $ ip -credential $ Credential -scriptblock {Get-WmiObject win32_process | select name、osname |? name -match $ a} 'を実行すると、出力にはすべてのプロセスが再度存在します。 – TraPS

+0

@TraPS 'Invoke-Command -ComputerName $ ip -credential $資格-scriptblock {$ a = 'cmd.exe'; Get-WmiObject win32_process |名前の選択、osname |? name -match $ a} ' – PetSerAl

+0

「$ a」だけでなく「cmd.exe」だけに渡したいのですが、入力引数に依存する可能性があります。つまり、 '' cmd.exe ''次回の '' powershell.exe ''など' '$ a'' – TraPS

関連する問題