[Bug 46895] New: SIMATIC WinCC V15.1 Runtime installer (.NET 4.0) fails due to missing 'OperatingSystemSKU' property of ' Win32_OperatingSystem' WMI class
wine-bugs at winehq.org
wine-bugs at winehq.org
Sun Mar 24 10:57:53 CDT 2019
https://bugs.winehq.org/show_bug.cgi?id=46895
Bug ID: 46895
Summary: SIMATIC WinCC V15.1 Runtime installer (.NET 4.0) fails
due to missing 'OperatingSystemSKU' property of
'Win32_OperatingSystem' WMI class
Product: Wine
Version: 4.4
Hardware: x86-64
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: wmi&wbemprox
Assignee: wine-bugs at winehq.org
Reporter: focht at gmx.net
Distribution: ---
Hello folks,
continuation of bug 46894
--- snip ---
$ pwd
/home/focht/Downloads/SIMATIC WinCC Runtime Advanced V15.1
$ WINEDEBUG=+loaddll,+process,+seh,+wbemprox,+msi,+relay wine ./Start.exe
>>log.txt 2>&1
...
0032:Call KERNEL32.CreateProcessW(00175248 L"C:\\Program Files\\Common
Files\\Siemens\\Automation\\Siemens Installer
Assistant\\406\\SIA2.exe",004f1f58 L"\"C:\\Program Files\\Common
Files\\Siemens\\Automation\\Siemens Installer Assistant\\406\\SIA2.exe\"
/starter /bundlepath=\"Z:\\HOME\\FOCHT\\DOWNLOADS\\SIMATIC WINCC RUNTIME
ADVANCED
V15.1\\InstData\"",00000000,00000000,00000001,00000000,00000000,00000000,0033fae8,0033fb2c)
ret=00418015
...
0052:Ret KERNEL32.__wine_kernel_init() retval=7b472c58 ret=7bc72119
0032:trace:process:CreateProcessInternalW started process pid 0051 tid 0052
0032:Ret KERNEL32.CreateProcessW() retval=00000001 ret=00418015
...
0052:trace:wbemprox:class_object_Get 0x1e8190, L"OperatingSystemSKU", 00000000,
0x32ebf8, 0x1080188, 0x108018c
...
0052:trace:wbemprox:wbem_services_ExecQuery 0x1e9ac0, L"WQL", L"select
OperatingSystemSKU from Win32_OperatingSystem", 0x00000010, (nil), 0x32eb9c
...
0052:trace:wbemprox:grab_table returning 0x7c6c8594
0052:trace:wbemprox:parse_query wql_parse returned 0
..
0052:trace:wbemprox:fill_os created 1 rows
...
0052:trace:wbemprox:EnumWbemClassObject_create 0x32eb9c
...
0052:trace:wbemprox:EnumWbemClassObject_create returning iface 0x1e7a20
...
0052:trace:wbemprox:enum_class_object_Next 0x1e7a58, -1, 1, 0x1e8178, 0x107de18
0052:trace:wbemprox:create_class_object L"Win32_OperatingSystem", 0x1e8178
...
0052:trace:wbemprox:create_class_object returning iface 0x1e8190
...
0052:trace:wbemprox:class_object_Get 0x1e8190, L"OperatingSystemSKU", 00000000,
0x32ebf8, 0x1080188, 0x108018c
...
0052:Call KERNEL32.RaiseException(e0434352,00000001,00000005,0032eb3c)
ret=791cac08
0052:trace:seh:raise_exception code=e0434352 flags=1 addr=0x7b44c142
ip=7b44c142 tid=0052
0052:trace:seh:raise_exception info[0]=80131501
0052:trace:seh:raise_exception info[1]=00000000
0052:trace:seh:raise_exception info[2]=00000000
0052:trace:seh:raise_exception info[3]=00000000
0052:trace:seh:raise_exception info[4]=79140000
0052:trace:seh:raise_exception eax=7b43a4ad ebx=00000005 ecx=00000000
edx=0032eaf8 esi=0032eaf8 edi=0032eac0
0052:trace:seh:raise_exception ebp=0032ea98 esp=0032ea34 cs=320023 ds=32002b
es=f7c0002b fs=f7c00063 gs=f7c0006b flags=00200212
0052:trace:seh:call_vectored_handlers calling handler at 0x791f5a7c
code=e0434352 flags=1
--- snip ---
Managed CLR backtrace:
--- snip ---
Exception object: 00f10aa0
Exception type: System.Management.ManagementException
Message: Error code: 0x80041002
InnerException: <none>
StackTrace (generated):
<none>
StackTraceString: <none>
HResult: 80131501
OS Thread Id: 0x30 (0)
Child SP IP Call Site
0032ebe8 7b44c142 [HelperMethodFrame: 0032ebe8]
0032ec38 05001411
System.Management.ManagementException.ThrowWithExtendedInfo(System.Management.ManagementStatus)
0032ec78 04ff8da8 System.Management.PropertyData.RefreshPropertyInfo()
0032ec84 04ff8d0a
System.Management.PropertyDataCollection.get_Item(System.String)
0032ec98 0500046e Siemens.Automation.Setup.Core.Tools.OsVersion.GetVistaSku()
0032ecc8 0515f20a Siemens.Automation.Setup.Core.Tools.OsVersion..ctor()
0032ecf0 04ffe84b
Siemens.Automation.Setup.Sia.Engine.Prop.GlobalProperties..ctor()
0032ef98 04ffe11f
Siemens.Automation.Setup.Sia.Engine.Prop.GlobalProperties.GetInstance()
0032efc4 04825ab8
Siemens.Automation.Setup.Sia.Engine.Installer.InitInstallerInternal(System.String[])
0032f268 04823d03
Siemens.Automation.Setup.Sia.Engine.Installer.InitInstaller(System.String[])
0032f298 04823abe Siemens.Automation.Setup.Sia.Gui.Controller.Initiate()
0032f2cc 03fb5bf7 Siemens.Automation.Setup.Sia.Gui.BusinessLogic.Initialize()
0032f2ec 037b2794 Siemens.Automation.Setup.Sia.Gui.Program.Main()
0032f538 791421db [GCFrame: 0032f538]
--- snip ---
The relevant piece of C# code from calling assembly:
--- snip ---
// Type: Siemens.Automation.Setup.Core.Tools.OsVersion
// Assembly: Setup.Core, Version=102.0.146.1, Culture=neutral,
PublicKeyToken=229591fa2d4059f2
// MVID: 0F0EB668-D0EE-4D52-8B03-80AFA252A799
// Assembly location: Z:\home\focht\Downloads\Setup.Core.dll
// Compiler-generated code is shown
using Microsoft.Win32;
using Siemens.Automation.Setup.Core.Tools.ApiNativeFunctions;
using System;
using System.Collections.Generic;
using System.Management;
namespace Siemens.Automation.Setup.Core.Tools
{
public class OsVersion
{
...
private OsSKU m_SKU;
...
public OsVersion()
{
base.\u002Ector();
OperatingSystem osVersion1 = Environment.OSVersion;
Version version = osVersion1.Version;
this.m_Alias = string.Format("Windows{0}{1}", (object) version.Major,
(object) version.Minor);
this.m_Description = osVersion1.VersionString;
if (osVersion1.Platform == PlatformID.Win32NT && version.Major > 4)
{
this.m_Description = "Microsoft ";
OsNativeFunc.OSVERSIONINFOEX osVersionInfoEx = new
OsNativeFunc.OSVERSIONINFOEX();
int versionEx = (int) OsNativeFunc.GetVersionEx(osVersionInfoEx);
this.m_ServicePack = (int) osVersionInfoEx.ServicePackMajor;
ProcessorArchitecture platform = OsNativeFunc.GetPlatform();
switch (platform)
{
case ProcessorArchitecture.PROCESSOR_ARCHITECTURE_IA64:
case ProcessorArchitecture.PROCESSOR_ARCHITECTURE_AMD64:
this.m_Platform = OsPlatform.x64;
break;
}
this.m_Product = osVersionInfoEx.ProductType;
this.m_Mask = osVersionInfoEx.SuiteMask;
if (version.Major > 5)
{
this.m_Description = OsNativeFunc.GetOSFriendlyName();
this.m_Family = version.Major > 6 || version.Major == 6 &&
version.Minor > 0 ? OsFamily.WindowsNewer : (osVersionInfoEx.ProductType !=
ProductType.VER_NT_WORKSTATION ? OsFamily.Windows2008 : OsFamily.WindowsVista);
OsNativeFunc.GetProductInfo(6, 1, 0, 0, out this.m_ProductInfo);
OsVersion osVersion2 = this;
osVersion2.m_Description = osVersion2.m_Description + " " +
OsNativeFunc.GetProductInfoDescription(this.m_ProductInfo);
this.m_SKU = this.GetVistaSku();
this.m_UBR = this.GetUBR();
}
if (version.Major == 5 && version.Minor == 2)
{
...
}
if (version.Major == 5 && version.Minor == 1)
{
...
}
if (version.Major == 5 && version.Minor == 0)
{
...
}
if (!string.IsNullOrEmpty(osVersionInfoEx.CSDVersion))
{
OsVersion osVersion2 = this;
osVersion2.m_Description = osVersion2.m_Description + ", " +
osVersionInfoEx.CSDVersion;
}
if (this.m_Platform == OsPlatform.x64)
this.m_Description += ", 64-bit";
else
this.m_Description += ", 32-bit";
OsVersion osVersion3 = this;
osVersion3.m_Description = osVersion3.m_Description + ", build " +
osVersionInfoEx.BuildNumber.ToString();
}
else
this.m_Description = osVersion1.VersionString;
if (string.IsNullOrEmpty(this.m_Name))
this.m_Name = this.m_Family.ToString();
if (this.m_Platform != OsPlatform.x64)
return;
this.m_Name += "64";
this.m_Alias += "64";
}
private OsSKU GetVistaSku()
{
using (ManagementObjectCollection.ManagementObjectEnumerator enumerator =
new ManagementObjectSearcher((ObjectQuery) new SelectQuery("SELECT
OperatingSystemSKU FROM Win32_OperatingSystem")).Get().GetEnumerator())
{
if (enumerator.MoveNext())
return (OsSKU)
Convert.ToInt32(enumerator.Current.Properties["OperatingSystemSKU"].Value);
}
return OsSKU.Undefined;
}
...
--- snip ---
Microsoft docs:
https://docs.microsoft.com/en-us/windows/desktop/cimwin32prov/win32-operatingsystem
--- quote ---
OperatingSystemSKU
Data type: uint32
Access type: Read-only
Qualifiers: MappingStrings ("WMI")
Stock Keeping Unit (SKU) number for the operating system. These values are
the same as the PRODUCT_* constants defined in WinNT.h that are used with the
GetProductInfo function.
The following list lists possible SKU values.
...
--- quote ---
Wine source:
https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/wbemprox/builtin.c#l576
$ sha1sum SIMATIC_WinCC_Runtime_Advanced_V15_1.exe
db1f97bb648b62fa1c5d974d7f2bcb6b4a9fd786
SIMATIC_WinCC_Runtime_Advanced_V15_1.exe
$ du -sh SIMATIC_WinCC_Runtime_Advanced_V15_1.exe
1.3G SIMATIC_WinCC_Runtime_Advanced_V15_1.exe
$ wine --version
wine-4.4-188-gc988910cae
Regards
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list