대부분의 Windows 실행 파일(DLL, EXE...)의 경우 버전 및 기타 세부 정보는 "속성"( Alt+ Enter)의 "세부 정보" 탭을 사용하여 볼 수 있습니다.
궁금합니다. 이 작업을 수행하는 명령줄 방법도 있나요? 특히 제품 버전에 관심이 있지만 다른 것들도 유용할 수 있습니다.
우선순위에 따라 다음 속성이 필요합니다.
- exe/dll 경로를 매개변수로 허용
- 표준 출력으로 출력(나머지는
|
파이프를 통해 처리할 수 있음) - 지원되는 모든 Windows(XP+)에서 기본적으로 사용 가능
- Windows Vista+에서는 기본적으로 사용 가능
- Windows XP에서는 기본적으로 사용 가능
- 상업 환경에서 사용 가능
- 무료 라이센스(GPL과 유사)
- 이식 가능(예: 독립 실행형 exe, DLL과 함께 제공될 수도 있음)
답변1
Powershell에서는 get-command "full-path-to-executable" | format-list
트릭을 수행합니다. Powershell은 Vista 이상 Windows의 새로운 명령줄이며 XP에 설치할 수 있습니다.
답변2
당신이 사용할 수있는sigcheck.exe
휴대용 도구의 일부입니다.시스인터널스 스위트, 예:
$ sigcheck.exe some_app.exe
Sigcheck v2.51 - File version and signature viewer
Copyright (C) 2004-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
C:/Program Files (x86)/Foo App\some_app.exe:
Verified: Signed
Signing date: 14:48 23/12/2015
Publisher: X
Company: X
Description: X
Product: Some App
Prod version: 5.0.0.1241
File version: 5.0.0.1241
MachineType: 32-bit
XP/2k/2003과 같은 이전 버전의 Windows(새 버전에서도 여전히 작동함)의 경우 다음을 사용하세요.filever.exe
도구(확인직접 링크~에exedll.info) 다음과 같은 파일에 대한 특정 정보를 얻기 위해
- 파일이 실행되는 플랫폼
- 파일 버전
- 파일의 속성
- 파일 유형
- 파일의 언어
- 파일이 배송 유형인지 디버그 유형인지 여부
- 파일 크기
- 파일이 생성된 날짜
- 파일의 경로
고려해야 할 다른 사항:
Microsoft COFF 바이너리 파일 덤퍼(DUMPBIN.EXE)
COFF(Common Object File Format) 바이너리 파일에 대한 정보를 표시합니다. DUMPBIN을 사용하여 COFF 개체 파일, COFF 개체의 표준 라이브러리, 실행 파일 및 DLL(동적 연결 라이브러리)을 검사할 수 있습니다.
binwalk
- 다양한 CPU 아키텍처에 공통적으로 적용되는 실행 가능한 opcode에 대해 지정된 파일을 검색합니다. 분석, 리버스 엔지니어링, 바이너리 파일에서 흥미로운 파일/데이터 추출을 위한 사용하기 쉬운 도구입니다.
더 많은 명령을 보려면 다음을 확인하세요.
답변3
Microsoft의DUMPBIN 유틸리티.
유용한 옵션이 많이 있지만 무엇을 하려는지에 따라 다릅니다.
하지만 무료는 아니지만 Windows SDK를 사용하면 무료로 얻을 수 있다고 생각합니다.
답변4
(Get-Item -Path "C:\path\to\file.exe").VersionInfo.ProductVersion
처음에 이 문제 영역을 조사했을 때 다음과 같은 간단한 명령을 사용하는 것을 발견했습니다.이 SO 질문— 모든 실행 파일에서 안정적으로 작동하지 않았습니다(빈 반환 값). 익스플로러도 알아봤는데하다주어진 실행 파일의 속성 시트에 값을 안정적으로 표시하므로 Explorer(아마도)가 속성을 검색하기 위해 수행하는 작업을 모방하는 Powershell 함수를 구성하기로 결정했습니다.
다음은 제품 버전을 포함하여 모든 확장 속성을 검색하는 Powershell 함수입니다.
function Get-AllExtendedProperties {
param (
[string]$FilePath
)
If (-not $FilePath) {
Throw "Error: missing `$FilePath parameter"
}
$file = Get-Item $FilePath
If ($file -and $file.Exists) {
$parentFolder = Split-Path $file.FullName -Parent
$shell = New-Object -ComObject Shell.Application
$folder = $shell.Namespace($parentFolder)
$fileItem = $folder.ParseName($file.Name)
# Get all extended properties
$extendedProperties = @{}
For ($i = 0; $i -lt 300; $i++) {
$propertyValue = $folder.GetDetailsOf($fileItem, $i)
if ($propertyValue) {
$propertyName = $folder.GetDetailsOf($folder.Items, $i)
$extendedProperties[$propertyName] = $propertyValue
}
}
# Sort the hashtable by property name
$sortedExtendedProperties = $extendedProperties.GetEnumerator() | Sort-Object Name | ForEach-Object { $_.Key = $_.Key.Trim(); $_ }
Write-Output $sortedExtendedProperties
} Else {
Throw "Error: missing file"
}
}
용법
이 기능을 사용하는 가장 간단한 방법은 Powershell 창에 복사하여 붙여넣고 키를 누르는 것입니다 Return ↵. 그런 다음 다음과 같이 사용할 수 있습니다.
Get-AllExtendedProperties -FilePath "C:\path\to\file.exe"
제품 버전과 같은 특정 속성 값을 얻으려면 다음과 같이 사용하십시오.
Get-AllExtendedProperties -FilePath "C:\path\to\file.exe" | Where-Object {$_.Name -eq 'Product Version'} | Select-Object -ExpandProperty Value