我正在创建一些PowerShell代码以在远程计算机上打开命令提示符。这工作正常,但我似乎无法找到设置该窗口标题的方法,因此您可以看到您已连接到远程客户端。
$ComputerName = 'HostName'
Start-Process 'winrs' -ArgumentList "/r:$ComputerName.domain.net cmd /noprofile /noecho"
我试过在最后添加众所周知的TITLE $ComputerName
,但这并没有改变任何东西。如果无法设置标题,最好在窗口中注释以查看您所连接的主机名。
答案 0 :(得分:2)
可以通过$Host
变量更改PowerShell窗口的标题:
$ComputerName = 'HostName'
$Host.UI.RawUI.WindowTitle = $ComputerName
Start-Process 'winrs' -ArgumentList "/r:$ComputerName.domain.net cmd /noprofile /noecho"
编辑:如果生成新窗口并不是一项艰难的要求,您可以按上述方法更改PowerShell窗口的标题,然后运行winrs
内联(使用调用运算符{{1 }}):
&
否则,您可以生成一个新的PowerShell窗口并在该窗口中运行上面的内容:
$ComputerName = 'HostName'
$Host.UI.RawUI.WindowTitle = $ComputerName
& winrs /r:$ComputerName.domain.net cmd /noprofile /noecho
请注意,在这种情况下,您必须转义$ComputerName = 'HostName'
Start-Process 'powershell.exe' -ArgumentList "&{`$Host.UI.RawUI.WindowTitle = '$ComputerName'; & winrs /r:$ComputerName.domain.net cmd /noprofile /noecho}"
中的$
以防止该变量过早扩展(您希望它在子进程中扩展,而不是在父进程中扩展)。
答案 1 :(得分:0)
这不是一个真正的PowerShell问题,因为它更多地围绕“如何操作以WinRS开始的窗口?”。
话虽如此,似乎你根本不能改变WinRS所拥有的窗口的标题 - 因为即使在它创建的窗口中手动运行“标题”也不会做任何事情。但是你可以通过将启动命令更改为:
来轻松发布评论Start-Process 'winrs' -ArgumentList "/r:$ComputerName.domain.net cmd /noprofile /noecho /k echo $ComputerName"
希望有所帮助。