我正在编写一个用于与远程服务交互的 PowerShell 模块。连接到远程服务时(通过模块中的函数),我想在提示符前添加用户名。断开连接后,我想删除用户名。
我想我可以通过复制全局prompt
函数来实现这一点,然后在断开连接时恢复它:
# Doesn't work
function Connect {
Copy-Item function:prompt function:prompt_old
function global:prompt { "[Username] $(prompt_old)" }
}
function Disconnect {
Copy-Item function:prompt_old function:prompt -Force
}
但是,Copy-Item
不会在全局范围内复制。因此,prompt
抛出 aCommandNotFoundException
并且断开功能不能替换prompt
为prompt_old
.
有没有办法可以从模块函数修改然后恢复 PowerShell 提示符?