Fix for implicit remote regression in restricted session (#4222)

This commit is contained in:
Paul Higinbotham 2017-07-14 12:28:22 -07:00 committed by Dongbo Wang
parent ea758a53af
commit 7fa0dd0549
2 changed files with 43 additions and 1 deletions

View file

@ -1220,7 +1220,10 @@ end
typeNameParameter.Attributes.Add(new ValidateLengthAttribute(0, 1000));
typeNameParameter.Attributes.Add(new ValidateCountAttribute(0, 1000));
return GetRestrictedCmdlet("Get-FormatData", null, "https://go.microsoft.com/fwlink/?LinkID=144303", typeNameParameter);
// This parameter is required for implicit remoting in PS V5.1.
ParameterMetadata powershellVersionParameter = new ParameterMetadata("PowerShellVersion", typeof(Version));
return GetRestrictedCmdlet("Get-FormatData", null, "https://go.microsoft.com/fwlink/?LinkID=144303", typeNameParameter, powershellVersionParameter);
}
private static CommandMetadata GetRestrictedGetHelp()

View file

@ -2076,3 +2076,42 @@ Describe "GetCommand locally and remotely" -tags "Feature" {
$localCommandCount | Should Be $remoteCommandCount
}
}
Describe "Import-PSSession on Restricted Session" -tags "Feature","RequireAdminOnWindows","Slow" {
BeforeAll {
# Skip tests for non Windows
if (! $IsWindows)
{
$originalDefaultParameters = $PSDefaultParameterValues.Clone()
$global:PSDefaultParameterValues["it:skip"] = $true
}
else
{
New-PSSessionConfigurationFile -Path $TestDrive\restricted.pssc -SessionType RestrictedRemoteServer
Register-PSSessionConfiguration -Path $TestDrive\restricted.pssc -Name restricted -Force
$session = New-PSSession -ComputerName localhost -ConfigurationName restricted
}
}
AfterAll {
if ($originalDefaultParameters -ne $null)
{
$global:PSDefaultParameterValues = $originalDefaultParameters
}
else
{
if ($session -ne $null) { Remove-PSSession -Session $session -ErrorAction SilentlyContinue }
Unregister-PSSessionConfiguration -Name restricted -Force -ErrorAction SilentlyContinue
}
}
It "Verifies that Import-PSSession works on a restricted session" {
$errorVariable = $null
Import-PSSession -Session $session -AllowClobber -ErrorVariable $errorVariable
$errorVariable | Should BeNullOrEmpty
}
}