-
Notifications
You must be signed in to change notification settings - Fork 7.7k
Need check OS version in installation packages and maybe binary #4315
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
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 @adityapatwardhan See here on how you could do this using functionality already built into WiX. It is not perfect but a good starting point. |
@bergmeister Thanks! |
Unassigning from @adityapatwardhan who is on leave |
Did we have a proper fix? |
@iSazonov with beta.7, we have a single package for all Windows OSs. Is it ok to close this issue? |
I'll test this on next week. |
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. |
@iSazonov What error do you get for Test-Connection? |
On Windows Server 2012 (not R2): PS C:\Program Files\PowerShell\6.0.0-beta.7> Test-Connection fs
Test-Connection : Unable to find an entry point named 'GetCurrentThread' in
DLL 'api-ms-win-core-processthreads-l1-1-2.dll'.
At line:1 char:1
+ Test-Connection fs
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Test-Connection], EntryPointN
otFoundException
+ FullyQualifiedErrorId : System.EntryPointNotFoundException,Microsoft.Pow
erShell.Commands.TestConnectionCommand
PS C:\Program Files\PowerShell\6.0.0-beta.7> $error[0].Exception | fl * -Force
Message : Unable to find an entry point named 'GetCurrentThread' in DLL
'api-ms-win-core-processthreads-l1-1-2.dll'.
TypeName :
Data : {}
InnerException :
TargetSite : Void* GetCurrentThread()
StackTrace : at GetCurrentThread()
at Microsoft.Management.Infrastructure.Native.SessionHandle
.ReleaseHandleAsynchronously(OnSessionHandleReleasedDelegate
completionCallback)
at Microsoft.Management.Infrastructure.Native.SessionHandle
.ReleaseHandle()
at
System.Runtime.InteropServices.SafeHandle.InternalDispose()
at Microsoft.Management.Infrastructure.CimSession.Dispose(B
oolean disposing)
at Microsoft.Management.Infrastructure.CimSession.Dispose()
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 : -2146233053
|
That issue is #2777 For the purpose of this original issue, since we have unified Windows packages now. We can close this. |
The error is absent in previous builds - it is up with unified Windows packages. |
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. TheMicrosoft.Management.Infrastructure.Native.Unmanaged.DLL
is present in root PowerShell Core folder.The text was updated successfully, but these errors were encountered: