2012-01-27 28 views
4

.dllファイルを使用するアプリケーションがあります。このファイルには2つの異なる場所があり、200台を超えるマシンでどのファイルを使用しているか調べる必要があります。実行中のプロセスのdllパスを取得しています

私は電源シェルには非常に新しく、Get-Processメソッドを試しましたが、必要な情報を提供していません。パワーシェルでこれを取得する別の方法がありますか?

答えて

2

このarticleは、WMIプロバイダコールを使用する1つの方法を示します。最後に提供されたFunctionを使用することができます。クイックで汚れたものを探しているだけなら、これはうまくいくでしょう。

$modules = Get-Process | Where { $_.ProcessName -eq "process.name" } | Select Modules 
$modules.Modules 

+0

これは何も出力していない、私はあなたがここにアップしましたが、私のプロセス名 – KPS

+0

は、コードのタイプミスに気づいた変更とまったく同じことをしました。あなたのプロセスは標準プロセスですか? Get-Processを実行したときに表示される名前を使用しましたか? – GrayWizardx

+0

2番目のコマンドからFileNameを削除してください。 – GrayWizardx

3

プロセス用のDLLは、プロセスのモジュールプロパティに含まれているあなたのプロセス名でprocess.nameを置き換えます。もう少しで掘り

、これはあなたが望むものであるかもしれませんオブジェクトはGet-Processによって返されました。同じ名前を持つ多くのプロセスがあるかもしれないので、あなただけの明確なDLLの場所を表示するためにこれを使用することができ

Get-Process chrome| 
    select -ExpandProperty modules| 
    foreach { if($_.ModuleName -eq 'pdf.dll'){$_.Filename} } 

:あなたはこのような何かを行うことができ、特定のDLLを探しするには

Get-Process notepad| select -ExpandProperty modules| Format-Table -AutoSize 

Get-Process chrome| 
    select -ExpandProperty modules| 
    where {$_.ModuleName -eq 'pdf.dll'}| 
    group -Property FileName| 
    select name 
関連する問題