Skip to content

Need check OS version in installation packages and maybe binary #4315

@iSazonov

Description

@iSazonov

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions