Exit 的行为与 Exit-PSSession 不同
Exit not behaving the same as Exit-PSSession
Example 3: Use the Exit keyword to stop a session
PS C:\> Enter-PSSession -computername Server01
Server01\PS> exit
PS C:\>
This example uses the Exit keyword to stop an interactive
session started by using Enter-PSSession. The Exit keyword has the
same effect as using Exit-PSSession.
这意味着 Exit
等同于 Exit-PSSession
。
但是,Exit
的行为与 Exit-PSSession
不同。
例如,以下输出 "blah" :
Exit-PSSession
Write-Host "blah"
但这不是 :
Exit
Write-Host "blah"
我是不是做错了什么?
如果您的 PowerShell 会话不是使用 Enter-PSSession
输入的 远程 会话,Exit-PSSession
是安静的无操作,即安静地执行无.
相比之下,exit
在本地和远程会话中都有效。
换句话说:
- 使用
Exit-PSSession
仅在 远程 会话[1] 和 中有意义
- 只有
exit
个等价物。
换句话说:
Exit-PSSession
似乎主要是为了与 Enter-PSSession
对称而存在。
- 您可以选择只使用
exit
,这也有在 local 会话中工作的优势。
至于PS远程计算机上的会话本身是否继续存在(注意最多[= 100=]v2 远程会话仅存在于 客户端 计算机上):
这取决于它最初是如何创建的:
如果会话是通过将计算机名称传递给 Enter-PSSession
(Enter-PSSession -ComputerName ...
) 隐式 创建的,它将自动关闭并在退出会话时丢弃(无论您使用的是 exit
还是 Exit-PSSession
)。
相比之下,如果您明确地首先创建了一个与New-PSSession
的会话并将其传递给Enter-PSSession
(Enter-PSSession -Session ...
),它将在您退出 interactive 会话后继续存在并保持打开状态(同样,无论退出方法如何),因此稍后可以重新进入(或使用 Invoke-Command
, 例如).
Get-PSSession
列出在本地明确创建的会话; Get-PSSession -ComputerName ...
列出给定远程计算机的会话。
[1] 正如 docs 所暗示的那样(强调):"Ends an interactive session with a remote computer." 和“Exit-PSSession
cmdlet 结束交互式会话 您使用 Enter-PSSession
cmdlet.
开始
Example 3: Use the Exit keyword to stop a session
PS C:\> Enter-PSSession -computername Server01 Server01\PS> exit PS C:\>
This example uses the Exit keyword to stop an interactive session started by using Enter-PSSession. The Exit keyword has the same effect as using Exit-PSSession.
这意味着 Exit
等同于 Exit-PSSession
。
但是,Exit
的行为与 Exit-PSSession
不同。
例如,以下输出 "blah" :
Exit-PSSession
Write-Host "blah"
但这不是 :
Exit
Write-Host "blah"
我是不是做错了什么?
如果您的 PowerShell 会话不是使用 Enter-PSSession
输入的 远程 会话,Exit-PSSession
是安静的无操作,即安静地执行无.
相比之下,exit
在本地和远程会话中都有效。
换句话说:
- 使用
Exit-PSSession
仅在 远程 会话[1] 和 中有意义
- 只有
exit
个等价物。
换句话说:
Exit-PSSession
似乎主要是为了与Enter-PSSession
对称而存在。- 您可以选择只使用
exit
,这也有在 local 会话中工作的优势。
至于PS远程计算机上的会话本身是否继续存在(注意最多[= 100=]v2 远程会话仅存在于 客户端 计算机上):
这取决于它最初是如何创建的:
如果会话是通过将计算机名称传递给
Enter-PSSession
(Enter-PSSession -ComputerName ...
) 隐式 创建的,它将自动关闭并在退出会话时丢弃(无论您使用的是exit
还是Exit-PSSession
)。相比之下,如果您明确地首先创建了一个与
New-PSSession
的会话并将其传递给Enter-PSSession
(Enter-PSSession -Session ...
),它将在您退出 interactive 会话后继续存在并保持打开状态(同样,无论退出方法如何),因此稍后可以重新进入(或使用Invoke-Command
, 例如).
Get-PSSession
列出在本地明确创建的会话; Get-PSSession -ComputerName ...
列出给定远程计算机的会话。
[1] 正如 docs 所暗示的那样(强调):"Ends an interactive session with a remote computer." 和“Exit-PSSession
cmdlet 结束交互式会话 您使用 Enter-PSSession
cmdlet.