Fix issue #1609 - Get-PSSession -computername fails on nano
Root cause: Microsoft.WSMan.Management and Microsoft.PowerShell.Commands.Diagnostics are not put in the default snapin list for win-ops, and thus when a runspace is created using RunspaceConfiguration, those 2 are not loaded as snapins by default, which is a behavior change compared to Nano PS. Fix: Replace the guard 'PORTABLE' to be 'UNIX' so that they are in the default snapin list when targeting windows platform.
This commit is contained in:
parent
70aea51cb1
commit
dc9b326587
2 changed files with 11 additions and 2 deletions
|
@ -1284,7 +1284,7 @@ namespace System.Management.Automation
|
|||
{
|
||||
s_defaultMshSnapins = new List<DefaultPSSnapInInformation>()
|
||||
{
|
||||
#if !PORTABLE // Microsoft.PowerShell.Commands.Diagnostics.dll needs to be ported
|
||||
#if !UNIX
|
||||
new DefaultPSSnapInInformation("Microsoft.PowerShell.Diagnostics", "Microsoft.PowerShell.Commands.Diagnostics", null,
|
||||
"GetEventResources,Description", "GetEventResources,Vendor"),
|
||||
#endif
|
||||
|
@ -1303,7 +1303,7 @@ namespace System.Management.Automation
|
|||
"SecurityMshSnapInResources,Description","SecurityMshSnapInResources,Vendor")
|
||||
};
|
||||
|
||||
#if !PORTABLE
|
||||
#if !UNIX
|
||||
if (!Utils.IsWinPEHost())
|
||||
{
|
||||
s_defaultMshSnapins.Add(new DefaultPSSnapInInformation("Microsoft.WSMan.Management", "Microsoft.WSMan.Management", null,
|
||||
|
|
|
@ -3,5 +3,14 @@ Describe 'Basic engine APIs' -Tags "CI" {
|
|||
It 'can create default instance' {
|
||||
[powershell]::Create() | Should Not Be $null
|
||||
}
|
||||
|
||||
It "can load the default snapin 'Microsoft.WSMan.Management'" -skip:(-not $IsWindows) {
|
||||
$ps = [powershell]::Create()
|
||||
$ps.AddScript("Get-Command -Name Test-WSMan") > $null
|
||||
|
||||
$result = $ps.Invoke()
|
||||
$result.Count | Should Be 1
|
||||
$result[0].PSSnapIn.Name | Should Be "Microsoft.WSMan.Management"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue