如何在Windows中远程编辑文本

(注意,这个问题也发布在technet上 )

如何在Windows中远程编辑文本文件?

我正在运行并pipe理许多Windows 7工作站和Windows Server 2012计算机。 我想能够远程编辑任何这些机器上的文本文件。 我可以通过psexec或PowerShell远程连接到任何这些机器。 我也可以通过rdp进行连接,但是对于工作站,我宁愿不把用户踢掉,除非我绝对必须。

例如,我们使用Salt来pipe理状态configuration。 本地configuration文件存储在C:\salt\conf 。 我希望能够即时编辑这些configuration文件。

这个问题涉及同一主题,但没有一个答案是特别令人满意的。

一些可能的解决scheme是:

  • 远程桌面:正如我所说的,我宁愿不必将用户从工作站上踢出去
  • 通过UNCpath编辑文件:这仅适用于共享上的文件,并且设置任意共享以进行快速编辑似乎是个不错的主意。
  • 在所有目标计算机上安装一些ftp或ssh服务器。 这肯定会起作用,但是WinRM已经处于活动状态了吗? 我觉得在组织内的所有机器上安装和configuration额外的软件是最后的select。
  • 使用命令行编辑器(例如vim,emacs)通过远程PowerShell会话进行编辑。 这不起作用。 我不明白的技术细节,但PowerShell的远程会话不是交互式的,就像SSH连接一样。
  • 编辑使用powershell的replace运算符,out-file和add-content cmdlet。 这工作,但几乎没有一个function齐全的文本编辑器。
  • 从远程获取内容,在本地进行编辑,并回传给远程。 这工作,可以说是我find的最好的解决scheme。 上一个问题的代码示例:
 PS C:\Users\Meredith> Invoke-Command -Session $ps -ScriptBlock {get-content c:/inetpub/myapp/web.config} > web.config 

编辑网页configuration:

 PS C:\Users\Meredith> get-content web.config | Invoke-Command -Session $ps -ScriptBlock {set-content c:/inetpub/myapp/web.config} 

最后两个选项是我现在使用的工作stream程。 正则expression式replace非常简单的变化,并复制到本地和编辑更复杂的。 两者都不是理想的,但他们的工作。 它只是觉得令人难以置信的老式。

我正在考虑编写一个插件到我select的编辑器(vim)来执行远程读取和保存,以使我的工作stream程更平滑一些。 在我尝试之前,我只想知道是否有任何我错过或误解的东西。

Solutions Collecting From Web of "如何在Windows中远程编辑文本"

使用行政股份。 这些是在Windows上默认创建的,它们采用驱动器盘符的形式,后跟一个$ ,如下所示: \\machine\c$

任何共享名称中的$都会使其“隐藏”(因为在浏览\\machine\时不会显示)。