0

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

$ComputerName = 'HostName'

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

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

4

2 回答 2

2

可以通过以下$Host变量更改 PowerShell 窗口的标题:

$ComputerName = 'HostName'

$Host.UI.RawUI.WindowTitle = $ComputerName

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

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

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

否则,您可以生成一个新的 PowerShell 窗口并在该窗口中运行上述命令:

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

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

于 2015-07-29T12:45:45.880 回答
0

这并不是一个真正的 powershell 问题,因为它更多的是围绕“如何操作以 WinRS 启动的窗口?”。

话虽如此,您似乎根本无法更改 WinRS 拥有的窗口的标题 - 因为即使在它创建的窗口中手动运行“标题”也无济于事。但是您可以通过将启动命令更改为:

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

希望有帮助。

于 2015-07-29T14:27:36.333 回答