运行 脚本两次时,Powershell 隐式远程会话提示输入密码
Powershell Implicit Remoting Session prompts for password when running the script twice
我对 powershell 中的隐式远程处理功能有疑问,也许有人可以提供帮助。
我正在与
开启会话
$Session = New-PSSession -ComputerName $ComputerName -Credential $Credential -ErrorAction Stop
使用 $Credential 我提供了一个有效的凭证对象。
当 运行第一次在 powershell window(或 VS Code 集成控制台)中运行脚本时,一切都按预期工作,我的命令在远程机器上执行。当 运行 第二次使用同一个脚本时,我可以看到会话已打开,但它仍然提示输入密码(用户名已经存在)。当我关闭 VS Code 时,再次打开它 运行 脚本再次运行起来就像一个魅力。
当我 运行 在临时 PS 控制台中运行脚本时,它可以正常工作。
我要终止会话
Remove-PSSession $Session
也许有人有想法。
提前致谢!
如果有人遇到同样的问题。我找到了解决方案。
当 "importing" 隐式远程会话时,它作为模块导入。当 "reconnecting" 会话(在同一个脚本或同一个控制台中 window)然后执行远程命令时,它仍然使用 "old" 模块并因此提示输入凭据。
所以基本上解决方案是使用 "Remove-Module" 命令删除模块,在我的例子中是 Exchange-Online。
我对 powershell 中的隐式远程处理功能有疑问,也许有人可以提供帮助。
我正在与
开启会话$Session = New-PSSession -ComputerName $ComputerName -Credential $Credential -ErrorAction Stop
使用 $Credential 我提供了一个有效的凭证对象。
当 运行第一次在 powershell window(或 VS Code 集成控制台)中运行脚本时,一切都按预期工作,我的命令在远程机器上执行。当 运行 第二次使用同一个脚本时,我可以看到会话已打开,但它仍然提示输入密码(用户名已经存在)。当我关闭 VS Code 时,再次打开它 运行 脚本再次运行起来就像一个魅力。 当我 运行 在临时 PS 控制台中运行脚本时,它可以正常工作。
我要终止会话
Remove-PSSession $Session
也许有人有想法。
提前致谢!
如果有人遇到同样的问题。我找到了解决方案。
当 "importing" 隐式远程会话时,它作为模块导入。当 "reconnecting" 会话(在同一个脚本或同一个控制台中 window)然后执行远程命令时,它仍然使用 "old" 模块并因此提示输入凭据。
所以基本上解决方案是使用 "Remove-Module" 命令删除模块,在我的例子中是 Exchange-Online。