gpt4 book ai didi

powershell - 退出行为与Exit-PSSession不同

转载 作者:行者123 更新时间:2023-12-02 23:53:04 26 4
gpt4 key购买 nike

Microsoft documentation说:

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.



这意味着 ExitExit-PSSession等效。

但是, Exit的行为与 Exit-PSSession不同。

例如,以下输出“blah”:
Exit-PSSession
Write-Host "blah"

但这不是:
Exit
Write-Host "blah"

难道我做错了什么?

最佳答案

如果您的PowerShell session 不是使用Enter-PSSession输入的远程 session ,则Exit-PSSession是安静的无操作,即,安静地不执行任何操作。

相比之下,exit在本地和远程 session 中均有效。

换一种说法:

  • Exit-PSSession的使用仅在远程 session 中有意义[1],而
  • 只有等效的exit

  • 换句话说:
  • Exit-PSSession似乎主要是为了与Enter-PSSession对称而存在。
  • 您可能选择只使用exit,这也具有在本地 session 中工作的优势。


  • 关于远程计算机本身上的PS session 是否继续存在(请注意,最多PSv2远程 session 仅在客户端计算机上存在):

    这取决于最初创建它的方式:
  • 如果 session 是通过将计算机名传递给Enter-PSSession(Enter-PSSession -ComputerName ...)隐式创建的,则它将在退出 session 时自动关闭并丢弃(无论您使用exit还是Exit-PSSession)。
  • 相反,如果您首先使用New-PSSession显式创建了一个 session ,并将该 session 传递给Enter-PSSession(Enter-PSSession -Session ...),则该 session 将继续存在并在退出交互式 session 后保持打开状态(同样,无论退出方法如何),因此可以稍后重新输入(或与Invoke-Command重用)。
  • Get-PSSession列出在本地显式创建的 session ; Get-PSSession -ComputerName ...列出给定远程计算机的 session 。

    [1]如 docs所言(加重)所暗示:“结束与远程计算机的交互式 session 。”和“ Exit-PSSession cmdlet结束您使用 Enter-PSSession cmdlet启动的交互式 session 。

    关于powershell - 退出行为与Exit-PSSession不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54037433/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com