GetVersionInfoとpowershellでの引数例外
私はファイルのファイルバージョンを取得するためにpowershellを使用しようとしています。ファイルを右クリックしてバージョンを見ると、値が表示されます。ここで私はそれをやろうとしている方法です:
$path = “MSDE2000A”;
$info = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($path);
ここにそれが投げている例外情報があります:
Exception calling “GetVersionInfo” with “1” argument(s): “MSDE2000A.exe”
At line:1 char:58
+ $f = [system.diagnostics.fileversioninfo]::getversioninfo <<<< (“MSDE2000A.exe”)
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
私がチェックしたすべてのファイルにはsamesの結果があります。しかし、私のパスがc: windows notepad.exe(の例のように)の場合、期待どおりに動作します。どうしたの?
.NETとPowerShellの現在のディレクトリの概念は必ずしも同じではありません。絶対パスを渡してみてください。
[Diagnostics.FileVersionInfo]::GetVersionInfo(‘C:WindowsSystem32user32.dll’)
ProductVersion FileVersion FileName
————– ———– ——–
6.1.7600.16385 6.1.7600.1638… C:WindowsSystem32user32.dll
また、次のようにGet-ChildItemでこの情報を取得できます。
Get-ChildItem C:WindowsSystem32user32.dll | fl VersionInfo
source