这是我的代码。前两个选项有效,但不是第三个。我不确定我做错了什么。我是powershell的新手。感谢。
$opt = Read-Host "Type 1 to login | Type 2 to disconnect | Type 3 to Exit"
write-host $opt
If ($opt -eq '1') {
$user = "myusername"
$UserCredential = Get-Credential -credential $user
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session
}
ElseIf ($opt -eq '2') {
Get-PSSession | Remove-PSSession
}
ElseIf ($opt -eq '3') {
Exit
}
答案 0 :(得分:1)
如果您确实想要关闭shell而不是使用exit
,请改用它:
$Host.SetShouldExit(0)
感谢@PetSerAl指出此选项可以正常关闭PowerShell进程,而不是仅使用Stop-Process $pid
将其终止。
顺便说一下,任何碰到你的剧本的人都会发现你关闭他们的shell很粗鲁。也许3应该只是exit script
而4是exit and close shell
?