【发布时间】:2011-03-26 20:32:15
【问题描述】:
我正在使用 powershell 远程连接到另一台计算机,非常好。可以做很多事情,但是如何编辑文件?
PS C:\Users\guutlee> Enter-PSSession -ComputerName appprod
[appprod]: PS C:\Users\guutlee\Documents> cd \myapp
[appprod]: PS C:\myapp>
如何在远程机器上的文件上打开文件编辑器?
[appprod]: PS C:\myapp> 编辑 app.config
所以编辑“文件名”似乎挂起,来自 powershell.exe 或来自 powershell_ise.exe
我唯一能想到的就是退出 pssession 并“启动 \webprod\c$\inetpub\myapp\web.config”,这将打开 Visual Studio。
[appprod]: PS C:\myapp> 退出
PS C:\Users\guutlee> 开始\agobuild\c$\myapp\app.config
PS C:\Users\guutlee> Enter-PSSession -ComputerName appprod
[appprod]: PS C:\Users\guutlee\Documents> cd \myapp
[appprod]: PS C:\myapp> myapp.exe
当然,我必须重新找到该文件,希望 c$ 共享可用且可访问,并在我想继续时重新连接我的 pssession 并重新找到我的工作目录。看起来不是很优雅。
也许我可以把它包装成一个函数,但是我很难把它包装起来..
那么如何使用远程 pssession 方便地编辑文件?
编辑
kbrimington 的帖子让我想到了 ssh 的 -X 选项。对于 powershell 会话来说,能够将窗口应用程序转发回原始窗口环境可能是一件很棒的事情......
但我仍然很乐意编辑文件。
编辑
使用 vi、emacs、cmd 和编辑进行测试
PS C:\Users\Meredith> Enter-PSSession -ComputerName appprod
[appprod]: PS C:\Users\guutlee\Documents> C:\vim\vim72\vim filename.txt
[appprod]: PS C:\Users\guutlee\Documents> C:\emacs-23.2\bin\emacs.exe -nw filename.txt
emacs.exe : emacs: 标准输入不是 tty
+ CategoryInfo \: NotSpecified: (emacs: standard input is not a tty:String) [], RemoteException + FullyQualifiedErrorId \: NativeCommandError[appprod]: PS C:\Users\guutlee\Documents> cmd
Microsoft Windows [版本 6.1.7600]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\guutlee\Documents>
[appprod]: PS C:\Users\guutlee\Documents> 编辑文件名.txt
vi 和编辑挂起(Control-C 得到提示)
cmd 运行,产生一个提示,但立即退出到 powershell 提示
emacs 产生错误(标准输入不是 tty)
编辑
Jered 建议将文件拉回本地进行编辑。我用 pssessions 而不是 UNCs 修饰了他对复制的回答(也许这就是他的意图)
PS C:\Users\Meredith> Invoke-Command -Session $ps -ScriptBlock {get-content c:/inetpub/myapp/web.config} > web.config
编辑网页配置
PS C:\Users\Meredith> 获取内容 web.config |调用命令 -Session $ps -ScriptBlock {set-content c:/inetpub/myapp/web.config}
可能我们可以在任一方向运行调用命令,本地到远程或远程返回本地。
【问题讨论】:
-
这并没有回答如何方便地编辑文件,而是对挂起行为的解释,所以我将作为评论发布。您的会话似乎挂起,因为远程会话不会为您虚拟化窗口应用程序;也就是说,如果您通过终端服务连接,您的编辑会话将在远程桌面中对您可见。
-
它在交互式控制台应用程序中也不能很好地工作。
标签: powershell editing powershell-remoting