2014-11-14 73 views
4
遠程編輯文本

(注意,這個問題也被張貼在technet如何在Windows

我如何遠程在Windows編輯一個文本文件?

我正在運行並管理許多Windows 7工作站和Windows Server 2012計算機。我希望能夠遠程編輯任何這些機器上的文本文件。我可以通過psexec或PowerShell遠程連接到這些機器中的任何一臺。我也可以通過rdp進行連接,但對於工作站而言,我寧願不將用戶關閉,除非我絕對必須。

例如,我們使用Salt管理狀態配置。本地配置文件存儲在C:\salt\conf中。我希望能夠即時編輯這些配置文件。

This question涵蓋相同的主題,但沒有一個答案是特別令人滿意的。

一些可能的解決方案是:

  • 遠程桌面:正如我所說,我寧可不要踢用戶關閉他們的工作站
  • 編輯在UNC路徑的文件:這僅適用於對於共享上的文件,以及設置任意共享以進行快速編輯似乎是一個糟糕的主意。
  • 在所有目標計算機上安裝某種方式的ftp或ssh服務器。這肯定會起作用,但是在WinRM已經激活的情況下這是必要的嗎?我覺得在組織中的所有機器上安裝和配置額外的軟件是最後的選擇。
  • 使用命令行編輯器(例如vim,emacs)通過遠程PowerShell會話進行編輯。這不起作用。我不明白技術細節,但PowerShell遠程會話不像ssh連接那樣是交互式的。
  • 使用powershell的-replace操作符,out-file和add-content cmdlet進行編輯。這可以工作,但與全功能的文本編輯器幾乎不同。
  • 從遠程獲取內容,在本地進行編輯,然後發回到遠程。這工作,並且可以說是我找到的最佳解決方案。從以前的SO問題代碼示例:
PS C:\Users\Meredith> Invoke-Command -Session $ps -ScriptBlock {get-content c:/inetpub/myapp/web.config} > web.config 

編輯web配置:

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

最後兩個選項是我一直在使用,現在的工作流程。正則表達式替換非常簡單的修改,並複製到本地和編輯更復雜的。兩者都不是理想的,但他們工作。它只是覺得令人難以置信的老式。

我正在考慮編寫一個插件到我選擇的編輯器(vim)來執行遠程抓取和保存,以使我的工作流程更平滑一些。在嘗試之前,我只想知道是否有任何我錯過或誤解的內容。

+1

行政股怎麼樣? '\\ machine \ c $ \ whatever' – briantist 2014-11-14 14:30:02

+2

此外,[你想要的功能是在Powershell 5](http://technet.microsoft.com/en-us/library/hh857339.aspx#BKMK_newISE) PSEdit'。我想知道是否可以安裝WMF 5預覽並使用它來編輯尚未安裝WMF 5的機器上的文件? – briantist 2014-11-14 14:32:43

+0

行政股。謝謝。我不知道這些。我甚至可以在Vim中打開管理共享的文件樹。這正是我想要的。你可以添加作爲答案,我會選擇它嗎? – laffoyb 2014-11-14 14:53:45

回答

4

使用行政股份。這些默認情況下,在Windows上創建的,他們採取一個驅動器號後跟一個$的形式,像這樣:\\machine\c$

任何共享名$使得它「隱藏」(如它不會出現當瀏覽\\machine\)。