我正在尝试在远程 PowerShell 会话中自定义我的提示。这一切都很好:
$session = New-PSSession MyRemoteServer
Invoke-Command -Session $session -ScriptBlock {
New-PSDrive -Name MyApp -PSProvider FileSystem -Root D:\Applications\MyApp | Out-Null
CD MyApp:\
function prompt { "test" }
}
Enter-PSSession -Session $session
它创建一个会话,为方便起见设置一个 PSDrive,然后将提示自定义为“测试”。
但是,我不希望我的提示说“测试”,我想执行一些为服务器名称着色的代码。但是,我不想在脚本块(上面的a)中对其进行硬编码,因为我想在许多类似的函数中重用它来连接到不同类型的服务器。
所以我在本地定义了函数,并且可以使用“Get-Content function:\RemotePrompt”获取内容。但是,我正在努力弄清楚如何将其发送到另一个会话。Invoke-Expression 似乎不需要会话,并且 Invoke-Command 似乎总是期望一个脚本块。
我真正想要做的是类似Invoke-Command -ScriptBlock { function prompt $MyRemoteCode }
但变量被“解析”的东西。
这可能/容易吗?