簡體   English   中英

在 Linux 上遠程處理時如何轉發 Powershell.Exiting 事件

[英]How to forward Powershell.Exiting event when remoting on Linux

我在 linux 上有一個連接到遠程的腳本。 退出時,我必須退出兩次(一次從遠程,一次從本地)。 我想把這兩個連接起來,這樣我只需要退出一次。

這是我希望的工作:

pwsh -NoExit -Command '
Register-EngineEvent -SourceIdentifier PowerShell.Exiting -Action {
  Write-Host "Received Exiting"
}
$creds = Get-Credential -UserName sysadm;
$pss = New-PSSession -ComputerName remote-pc -Authentication Negotiate -Credential $creds;
Invoke-Command -Session $pss {
  Register-EngineEvent -SourceIdentifier PowerShell.Exiting -Forward;
}
Enter-PSSession $pss
'

根據Register-EngineEvent 文檔,我希望看到該消息 - 手動創建事件有效:

...
[remote-pc] PS C:\Users\sysadm\Documents> $null = New-Event PowerShell.Exiting
Received Exiting
[remote-pc] PS C:\Users\sysadm\Documents> exit
# Expecting a message here...
PS /home/local-user > $null = New-Event PowerShell.Exiting
Received Exiting
PS /home/local-user > exit
Received Exiting

我希望我能夠描述我的問題。

  • 為什么不退出會話發送PowerShell.Exiting事件?

  • 如果不是通過PowerShell.Exiting ,是否可以通過其他方式實現“雙退出”?

我認為您的情況不需要事件處理:
只需在Enter-PSSession $pss之后放置一個exit語句,您的外部 PowerShell 會話也會退出:

pwsh -NoExit -Command '
  $creds = Get-Credential -UserName sysadm;
  $pss = New-PSSession -ComputerName remote-pc -Authentication Negotiate -Credential $creds;
  Enter-PSSession $pss
  exit
'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM