peterpanter
Goto Top

Dateiversion vs. FileVersion-Property - (ECM Detection)

Hallo zusammen,

ich verteile mit einem ECM-Paket eine Schrift an unsere Workstations. Funktioniert prinzipiell: Die .ttf wird nach C:\Windows\Fonts\ kopiert und in der Registry eingetragen. Alles OK, Schrift ist im System verfügbar.

Damit das ECM-SoftwareCenter erkennt, ob der Schrift-Pakete installiert ist, habe ich als Detection die Abfrage, ob im Filesystem die betreffende Datei AzoSans2-Regular.ttf mit der Datei-Version 2.003 vorhanden ist. Das erkennt ECM aber offenbar nicht. Zu Fuß nachgeguckt und die ttf ist da und "Dateiversion" stimmt (siehe Screenshot). In den Item-Properties der Datei ist "FileVersion" allerdings leer (s.u.).

Eine Detection auf das Datum der Datei funktioniert und reicht mir erstmal als Workaround.

Wisst ihr,
(1) auf welche Versionsinformation der Datei ECM prüft und
(2) warum die "Dateiversion" im Explorer nicht gleich der "FileVersion" in PS ist und
(3) wo ich in Item-Properties die "Dateiversion" aus dem Explorer wiederfinden würde ?

Vielen Dank und später schönes WoE
/pp


PS C:\Windows\Fonts> (get-item .\AzoSans2-Regular.ttf) | fl -Property *


PSPath            : Microsoft.PowerShell.Core\FileSystem::C:\Windows\Fonts\AzoSans2-Regular.ttf
PSParentPath      : Microsoft.PowerShell.Core\FileSystem::C:\Windows\Fonts
PSChildName       : AzoSans2-Regular.ttf
PSDrive           : C
PSProvider        : Microsoft.PowerShell.Core\FileSystem
PSIsContainer     : False
Mode              : -a----
VersionInfo       : File:             C:\Windows\Fonts\AzoSans2-Regular.ttf
                    InternalName:
                    OriginalFilename:
                    FileVersion:
                    FileDescription:
                    Product:
                    ProductVersion:
                    Debug:            False
                    Patched:          False
                    PreRelease:       False
                    PrivateBuild:     False
                    SpecialBuild:     False
                    Language:

BaseName          : AzoSans2-Regular
Target            : {}
LinkType          :
Name              : AzoSans2-Regular.ttf
Length            : 115660
DirectoryName     : C:\Windows\Fonts
Directory         : C:\Windows\Fonts
IsReadOnly        : False
Exists            : True
FullName          : C:\Windows\Fonts\AzoSans2-Regular.ttf
Extension         : .ttf
CreationTime      : 20.05.2022 09:08:04
CreationTimeUtc   : 20.05.2022 07:08:04
LastAccessTime    : 20.05.2022 09:08:05
LastAccessTimeUtc : 20.05.2022 07:08:05
LastWriteTime     : 22.04.2021 14:24:26
LastWriteTimeUtc  : 22.04.2021 12:24:26
Attributes        : Archive
2022-05-20 09_13_49-tbx106 - remotedesktopverbindung

Content-Key: 2841085141

Url: https://administrator.de/contentid/2841085141

Printed on: May 7, 2024 at 16:05 o'clock

Member: mbehrens
Solution mbehrens May 20, 2022 at 08:57:54 (UTC)
Goto Top
Probiere doch mal, ob folgendes die gewünschten Informationen liefert:
Add-Type -AssemblyName PresentationCore
$path = "C:\Windows\Fonts\arial.ttf"  
[System.Windows.Media.GlyphTypeface]::new([uri]::new($path))
Member: PeterPanter
PeterPanter May 20, 2022 at 10:23:30 (UTC)
Goto Top
Hi, danke für die Info.

Bringt tatsächlich die richtige "Version" 2,003 (mit Komma) aber das hat soweit ich sehe ja nicht zwingend mit der Version im Filesystem zu tun. Somit kann ECM das so ohne weiteres wahrscheinlich nicht auswerten.

FontUri                                         : file:///C:/Windows/Fonts/AzoSans2-Regular.ttf
FamilyNames                                     : {[en-US, Azo Sans 2]}
FaceNames                                       : {[en-US, Regular]}
Win32FamilyNames                                : {[en-US, Azo Sans 2]}
Win32FaceNames                                  : {[en-US, Regular]}
VersionStrings                                  : {[en-US, Version 2.003]}
Copyrights                                      : {[en-US, Copyright (c) 2018 by Rui Abreu, Portugal. All rights
                                                  reserved. Designed by Rui Abreu.]}
ManufacturerNames                               : {[en-US, Rui Abreu, Portugal]}
Trademarks                                      : {[en-US, Azo Sans 2 is a trademark of Rui Abreu, Portugal.]}
DesignerNames                                   : {[en-US, Rui Abreu]}
Descriptions                                    : {}
VendorUrls                                      : {[en-US, http://www.r-typography.com]}
DesignerUrls                                    : {[en-US, http://www.r-typography.com]}
LicenseDescriptions                             : {}
SampleTexts                                     : {}
Style                                           : Normal
Weight                                          : Normal
Stretch                                         : Normal
Version                                         : 2,003
Height                                          : 1,328125
Baseline                                        : 1,02490234375
CapsHeight                                      : 0,72412109375
XHeight                                         : 0,494140625
Symbol                                          : False
UnderlinePosition                               : -0,09521484375
UnderlineThickness                              : 0,0498046875
StrikethroughPosition                           : 0,29638671875
StrikethroughThickness                          : 0,0498046875
EmbeddingRights                                 : Editable
AdvanceWidths                                   : {[0, 0,60009765625], [1, 0,240234375], [2, 0,240234375], [3,
                                                  0,71484375]...}
AdvanceHeights                                  : {[0, 1], [1, 1], [2, 1], [3, 1]...}
LeftSideBearings                                : {[0, 0,1279296875], [1, 0], [2, 0], [3, 0,01318359375]...}
RightSideBearings                               : {[0, 0,1279296875], [1, 0,240234375], [2, 0,240234375], [3,
                                                  0,0126953125]...}
TopSideBearings                                 : {[0, 0,037109375], [1, 0,77197265625], [2, 0,77197265625], [3,
                                                  0,0478515625]...}
BottomSideBearings                              : {[0, 0,216796875], [1, 0,22802734375], [2, 0,22802734375], [3,
                                                  0,22802734375]...}
DistancesFromHorizontalBaselineToBlackBoxBottom : {[0, 0,01123046875], [1, 0], [2, 0], [3, 0]...}
CharacterToGlyphMap                             : {[32, 1], [33, 377], [34, 426], [35, 577]...}
StyleSimulations                                : None
GlyphCount                                      : 685
Member: colinardo
Solution colinardo May 20, 2022 updated at 11:42:02 (UTC)
Goto Top
Servus.
Wisst ihr,
(1) auf welche Versionsinformation der Datei ECM prüft und
k.A. benutze ich nicht.
(2) warum die "Dateiversion" im Explorer nicht gleich der "FileVersion" in PS ist und
Weil bei Schriftarten, der Explorer ein anderes Propertyset anzeigt das speziell für Schriftarten gedacht ist und die Metadaten direkt aus der TTF-Struktur verwendet statt den Filestream.
https://docs.microsoft.com/en-us/windows/win32/properties/props
https://docs.microsoft.com/en-us/windows/win32/menurc/versioninfo-resour ...
(3) wo ich in Item-Properties die "Dateiversion" aus dem Explorer wiederfinden würde ?
s.o. , oder so direkt in ein Version Object verwandelt
Add-Type -AssemblyName PresentationCore
[version][System.Windows.Media.GlyphTypeface]::new([uri]::new("C:\Windows\Fonts\arial.ttf")).Version.toString().replace(',','.')  
Grüße Uwe
Member: PeterPanter
PeterPanter May 24, 2022 at 13:56:49 (UTC)
Goto Top
Hallo und Danke an @mbehrens + @colinardo.

Wieder was gelernt. Dateiversion != Dateiversion... Dann werde ich mit der ECM-Condition auf's Datum leben müssen. Geht auch.

/pp