I'm trying to understand why Powershell would get back a different version number for a DLL file than what both the file properties page from Windows Explorer, and a WMI query shows. (I apologize in advance if this doesn't correctly qualify as a coding question.)
The scenario:
Running the following powershell command:
(get-item C:\windows\system32\rdpcorekmts.dll).VersionInfo.ProductVersion
This returns the following:
6.1.7600.16385
However, this version number is incorrect. When examining the version information from Windows Explorer, you see the following version (sorry, I tried posting a small screenshot of it, but I don't have enough rep; I'm new here):
6.1.7601.17767
In addition, a WMIC query shows the same results as Windows Explorer:
WMIC path CIM_DataFile WHERE (name="c:\\windows\\system32\\rdpcorekmts.dll") get Version
WMIC result:
Version
6.1.7601.17767
I really don't understand why they would be different. I would really like to return this value using Powershell, but now I'm not sure if I'm just overlooking something, or if I ran across some kind of odd bug, but the version mismatch between the two methods is confusing. As a note, I've run variations on the method to get this back in Powershell (e.g. Get-ItemChild and Get-ItemProperty), and I get the same incorrect version result.
Any ideas on why?
The problem is that you are using the
ProductVersion
propertie which seems to be hard coded somewhere, IE and WMI are just buildind the product version from :Same for
FileVersion
with : FileMajorPart, FileMinorPart, FileBuildPart, FilePrivatePartJust try :
You can test :
From CMD.EXE you can try :