设置 CMD/WINRS 提示的 window 标题

Set the window title of a CMD/WINRS prompt

我正在创建一些 PowerShell 代码以在远程计算机上打开命令提示符。这工作正常,但我似乎无法找到设置标题的方法 window,因此您可以看到您已连接到远程客户端。

$ComputerName = 'HostName'

Start-Process 'winrs' -ArgumentList "/r:$ComputerName.domain.net cmd /noprofile /noecho"

我试过在最后添加众所周知的 TITLE $ComputerName,但这并没有改变任何东西。如果无法设置标题,最好在 window 中发表评论以查看您连接到的主机名。

PowerShell window 的标题可以通过 $Host 变量更改:

$ComputerName = 'HostName'

<b>$Host.UI.RawUI.WindowTitle = $ComputerName</b>

Start-Process 'winrs' -ArgumentList "/r:$ComputerName.domain.net cmd /noprofile /noecho"

编辑: 如果生成新的 window 不是硬性要求,您可以如上所述更改 PowerShell window 的标题和 运行 winrs 内联(使用调用运算符 &):

$ComputerName = 'HostName'
$Host.UI.RawUI.WindowTitle = $ComputerName
<b>& winrs /r:$ComputerName.domain.net cmd /noprofile /noecho</b>

否则你可以生成一个新的 PowerShell window 和 运行 上面那个 window:

$ComputerName = 'HostName'
<b>Start-Process 'powershell.exe' -ArgumentList "&{`$Host.UI.RawUI.WindowTitle = '$ComputerName'; & winrs /r:$ComputerName.domain.net cmd /noprofile /noecho}"</b>

请注意,在这种情况下,您必须转义 $Host 中的 $ 以防止该变量过早扩展(您希望它在 child 过程中扩展,而不是 parent).

这不是真正的 powershell 问题,因为它更多地围绕 "How do I manipulate a window started with WinRS?"。

也就是说,您似乎根本无法更改 WinRS 拥有的 window 的标题 - 因为即使 运行 "Title " 手动在 window 它创建什么都不做。但是您可以通过将启动命令更改为 :

来轻松地将其添加到 post 评论
Start-Process 'winrs' -ArgumentList "/r:$ComputerName.domain.net cmd /noprofile /noecho /k echo $ComputerName"

希望对您有所帮助。