web-dev-qa-db-ja.com

64および32プロセスのリストを返すWindowsコマンドはありますか?

Windows Seven 64システムで64を超えて実行されているプロセスと、32ビットで実行されているプロセスを見つけるためのソリューションを探しています。これを行うために使用できる簡単なWindowsシェルコマンドがありますか?

5
Diogo

少し考えてみたところ、WMICの方法は一種の趣味であることに気づきました。これを行うためのはるかに優れた方法は、次のようなPowerShellスクリプトを使用することです。

[System.Diagnostics.Process[]] $processes64bit = @()
[System.Diagnostics.Process[]] $processes32bit = @()

foreach($process in get-process) {
    $modules = $process.modules
    foreach($module in $modules) {
        $file = [System.IO.Path]::GetFileName($module.FileName).ToLower()
        if($file -eq "wow64.dll") {
            $processes32bit += $process
            break
        }
    }

    if(!($processes32bit -contains $process)) {
        $processes64bit += $process
    }
}

write-Host "32-bit Processes:"
$processes32bit | sort-object Name | format-table Name, Id -auto

write-Host ""
write-Host "64-bit Processes:"
$processes64bit | sort-object Name | format-table Name, Id -auto

これをPowerShellスクリプトにコピーし、process-width.ps1と呼び、PowerShellで実行すると、すべての32ビットプロセスとそれに続く64ビットプロセスが一覧表示されます。

これは、プロセスのプロセススペースにモジュールとしてwow64.dllがロードされているかどうかを確認することによって行われます。 wow64.dllは、64ビットオペレーティングシステム用のWindows32ビットエミュレーションレイヤーです。 32ビットプロセスによってのみロードされるため、プロセスが32ビットであるかどうかを確認するための確実な方法です。

これは、長期的な解決策としてはるかにうまく機能するはずです。

10
Matt Holmes
wmic process get

システム上のすべてのプロセスを一覧表示します。パラメータを渡して、WMIWin32_Processプロパティを取得できます。あなたはここでそのリストを見つけることができます:

http://msdn.Microsoft.com/en-us/library/aa394372(v = vs.85).aspx

それらの1つは、プロセスが64ビットか32ビットかを示している場合があります。

e:直接のプロパティはありませんが、次のことができます。

wmic process get Name, MaximumWorkingSetSize

MaximumWorkingSetSizeによって返される数が3096より大きい場合、それは間違いなく64ビットプロセスです。私のマシンでは、64ビットプロセスのMaximumWorkingSetSizeは32768(別名32GB)ですが、32ビットプロセスのMaximumWorkingSetSizeは1380で、これはスワップファイルの調整済みサイズです。とにかく、簡単なチェックは次のとおりです。

MaximumWorkingSetSize > 3096 == 64-bit
4
Matt Holmes

Visual Studioがインストールされている場合は、Visual Studioコマンドプロンプトからdumpbin.exeを使用して、実行可能ヘッダーをダンプできます。

dumpbin.exe /HEADERS file.exe

マシンヘッダーは、x86バイナリの場合は14C、x64の場合は8664になります。

x86:

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
         14C machine (x86)

x64

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
        8664 machine (x64)
3
bneal

タスクマネージャを起動するだけで簡単です。 * 32のプロセスは32ビットアプリです

enter image description here

2
Dzung Nguyen