====== getMsVersionMap.opsiinc ======
\\
read OS version and OS Type...\\
Tested with opsi 4.0.4\\
requiredWinstVersion >= 4.11.2.\\
By //[[opsi@gei.de|GEI]] 2014/11/11 19:00//
placed in global library, such as %ScriptDrive$/lib ...
call with
include_insert %ScriptDrive%/lib/getmsversionmap.opsiinc
=== ===
; This sourcecode is partly owned by uib.de
; and published under the Terms of the General Public License.
; credits: http://www.opsi.org/en/credits/
;
; written by GEI (Detlef Krummel opsi@gei.de)
; FILE "%ScriptDrive%\lib\getmsversionmap.opsiinc"
requiredWinstVersion >="4.11.2"
; for debugging setLogLevel = 7
; based on:
; https://download.uib.de/opsi_stable/doc/html/opsi-winst-manual/opsi-winst-manual.html#opsi-winst-stringlist-maps
; http://msdn.microsoft.com/en-us/library/ms724834%28v=vs.85%29.aspx
; http://msdn.microsoft.com/en-us/library/ms724833%28v=vs.85%29.aspx
; for debugging setLogLevel = 7
DefStringList $MsVersionMap_List$
Set $MsVersionMap_List$ = GetMsVersionMap
setLogLevel = 6
; ----- sample values ------------------------------------------------------------------------
; 0)major_version=5 1)minor_version=1 2)build_number=2600
; 3)platform_id=2 4)csd_version=Service Pack 3 5)service_pack_major=3
; 6)service_pack_minor=0 7)suite_mask=256 8)product_type_nr=1
; 9)2003r2=false
DefVar $MsVersionMap_MajorVersion$
Set $MsVersionMap_MajorVersion$ = takeString( 0,$MsVersionMap_List$)
DefVar $MsVersionMap_MinorVersion$
Set $MsVersionMap_MinorVersion$ = takeString( 1,$MsVersionMap_List$)
DefVar $MsVersionMap_BuildNumber$
Set $MsVersionMap_BuildNumber$ = takeString( 2,$MsVersionMap_List$)
DefVar $MsVersionMap_PlatformId$
Set $MsVersionMap_PlatformId$ = takeString( 3,$MsVersionMap_List$)
DefVar $MsVersionMap_CsdVersion$
Set $MsVersionMap_CsdVersion$ = takeString( 4,$MsVersionMap_List$)
DefVar $MsVersionMap_ServicePackMajor$
Set $MsVersionMap_ServicePackMajor$ = takeString( 5,$MsVersionMap_List$)
DefVar $MsVersionMap_ServicePackMinor$
Set $MsVersionMap_ServicePackMinor$ = takeString( 6,$MsVersionMap_List$)
DefVar $MsVersionMap_SuiteMask$
Set $MsVersionMap_SuiteMask$ = takeString( 7,$MsVersionMap_List$)
DefVar $MsVersionMap_ProductTypeNr$
Set $MsVersionMap_ProductTypeNr$ = takeString( 8,$MsVersionMap_List$)
DefVar $MsVersionMap_2003r2$
Set $MsVersionMap_2003r2$ = takeString( 9,$MsVersionMap_List$)
; ---------------------- additional: define and set $WinOS$ -----------------------------------------
DefVar $WinOS$
Set $WinOS$ = "unknown"
; @UIB: spagetti code, a CASE structur is absolutely desirable ...
; https://forum.opsi.org/viewtopic.php?f=5&t=5303
if $MsVersionMap_ProductType$ = "1"
; Client OS
if $MsVersionMap_MajorVersion$ = "5"
Set $WinOS$ = "WinXP"
else
if $MsVersionMap_MajorVersion$ = "6"
if $MsVersionMap_MinorVersion$ = "0"
Set $WinOS$ = "WinVista"
else
if $MsVersionMap_MinorVersion$ = "1"
Set $WinOS$ = "Win7"
else
if $MsVersionMap_MinorVersion$ = "2"
Set $WinOS$ = "Win8"
else
if $MsVersionMap_MinorVersion$ = "3"
Set $WinOS$ = "Win8.1"
else
if $MsVersionMap_MinorVersion$ = "4"
set $WinOS$ = "Win9 ?"
endif
endif
endif
endif
endif
endif
; Major not 5 or 6
set $WinOS$ = "Client unknown"
endif
else
; Server OS
if $MsVersionMap_ProductType = "2"
Set $WinOS$ = "NT-Domaincontroler"
else
if $MsVersionMap_ProductType = "3"
Set $WinOS$ = "NT-Server"
else
Set $WinOS$ = "WinProductType unknown"
endif
endif
endif