Repository navigation
Description
I install PowerShell-6.0.0-beta.4-win10-win2016-x64.msi on Windows Server 2012 R2 and get an exception (see test below). The same package I install on Windows Server 2012 - no exception with the same test.
Conclusion: we should check OS version in our packages and block setup on inappropriate OS version.
Discussion: User can copy-paste folder with installed PowerShell Core from one OS to one with inappropriate version and get unpredictable results. We should to protect in some way. Maybe have a manifest to check dll versions at startup.
(Microsoft.Management.Infrastructure.Native.Unmanaged.DLL version is the same in Win10 and Win81 packagees).
I test Test-Connection computername on Windows Server 2012 R2. The Microsoft.Management.Infrastructure.Native.Unmanaged.DLL is present in root PowerShell Core folder.
TypeName : Microsoft.Management.Infrastructure.Native.ApplicationMethods
Message : The type initializer for 'Microsoft.Management.Infrastructure.
Native.ApplicationMethods' threw an exception.
Data : {}
InnerException : System.DllNotFoundException: Unable to load DLL
'Microsoft.Management.Infrastructure.Native.Unmanaged.DLL':
The specified module could not be found. (Exception from
HRESULT: 0x8007007E)
at
MI_ApplicationWrapper_Initialize(_MI_ApplicationWrapper* ,
UInt16* , IntPtr , IntPtr , IntPtr , IntPtr , IntPtr , IntPtr
, IntPtr , IntPtr , IntPtr , IntPtr , IntPtr , IntPtr ,
IntPtr )
at Microsoft.Management.Infrastructure.Native.MI_Applicatio
nWrapper_Initialize_Managed(_MI_ApplicationWrapper*
pmiApplicationWrapper)
at Microsoft.Management.Infrastructure.Native.ApplicationMe
thods.InitializeCore(InstanceHandle& errorDetails,
ApplicationHandle& applicationHandle)
at Microsoft.Management.Infrastructure.Native.ApplicationMe
thods..cctor()
TargetSite : Microsoft.Management.Infrastructure.Native.MiResult Initialize
(Microsoft.Management.Infrastructure.Native.InstanceHandle
ByRef,
Microsoft.Management.Infrastructure.Native.ApplicationHandle
ByRef)
StackTrace : at Microsoft.Management.Infrastructure.Native.ApplicationMe
thods.Initialize(InstanceHandle& errorDetails,
ApplicationHandle& applicationHandle)
at Microsoft.Management.Infrastructure.Internal.CimApplicat
ion.GetApplicationHandle()
at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
at System.Lazy`1.ExecutionAndPublication(LazyHelper
executionAndPublication, Boolean useDefaultConstructor)
at System.Lazy`1.CreateValue()
at Microsoft.Management.Infrastructure.Options.CimOperation
Options.<>c__DisplayClass9_0.<.ctor>b__0()
at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
at System.Lazy`1.ExecutionAndPublication(LazyHelper
executionAndPublication, Boolean useDefaultConstructor)
at System.Lazy`1.CreateValue()
at Microsoft.Management.Infrastructure.Options.CimOperation
Options.set_Timeout(TimeSpan value)
at Microsoft.PowerShell.Commands.TestConnectionCommand.Proc
essWSManProtocolForTestConnection()
at Microsoft.PowerShell.Commands.TestConnectionCommand.Proc
essRecord()
at System.Management.Automation.Cmdlet.DoProcessRecord()
at
System.Management.Automation.CommandProcessor.ProcessRecord()
HelpLink :
Source : Microsoft.Management.Infrastructure.Native
HResult : -2146233036
Activity
SteveL-MSFT commentedon Jul 25, 2017
The MSI should check to make sure it's the right OS. I think it should also check dependencies (Win10 URT and VC++ redist). However, if someone copies the expanded zip from one OS to another, I don't know how much effort we want to spend detecting that.
iSazonov commentedon Jul 26, 2017
It seems not only Windows issue but Unix too.
We have Issues to get universal packages #2608 (Windows) and #3961 (Linux) - maybe we can resolve the Issue there.
bergmeister commentedon Aug 14, 2017
Ilya (@iSazonov) Aditya Patwardhan (@adityapatwardhan) See here on how you could do this using functionality already built into WiX. It is not perfect but a good starting point.
iSazonov commentedon Aug 15, 2017
Christoph Bergmeister (@bergmeister) Thanks!
SteveL-MSFT commentedon Aug 28, 2017
Unassigning from Aditya Patwardhan (@adityapatwardhan) who is on leave
iSazonov commentedon Aug 29, 2017
Did we have a proper fix?
daxian-dbw commentedon Aug 29, 2017
Ilya (@iSazonov) this issue got closed because #4540 mentioned
'Fixes #4315 and #2608'. Please re-open it if you don't think that PR fixes this issue.daxian-dbw commentedon Aug 29, 2017
Ilya (@iSazonov) I think it's safer to reopen it directly and let you close if you think #4540 fixed it.
adityapatwardhan commentedon Sep 15, 2017
Ilya (@iSazonov) with beta.7, we have a single package for all Windows OSs. Is it ok to close this issue?
iSazonov commentedon Sep 16, 2017
I'll test this on next week.
iSazonov commentedon Sep 18, 2017
I get an error on Windows Server 2012 for Test-Connection with Beta.7. 😕 I guess we can catch more errors if we run full test set on all supported platforms.
adityapatwardhan commentedon Sep 18, 2017
Ilya (@iSazonov) What error do you get for Test-Connection?
iSazonov commentedon Sep 19, 2017
On Windows Server 2012 (not R2):
SteveL-MSFT commentedon Sep 19, 2017
That issue is #2777
For the purpose of this original issue, since we have unified Windows packages now. We can close this.
iSazonov commentedon Sep 19, 2017
The error is absent in previous builds - it is up with unified Windows packages.