(注意,這個問題也被張貼在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)來執行遠程抓取和保存,以使我的工作流程更平滑一些。在嘗試之前,我只想知道是否有任何我錯過或誤解的內容。
行政股怎麼樣? '\\ machine \ c $ \ whatever' – briantist 2014-11-14 14:30:02
此外,[你想要的功能是在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
行政股。謝謝。我不知道這些。我甚至可以在Vim中打開管理共享的文件樹。這正是我想要的。你可以添加作爲答案,我會選擇它嗎? – laffoyb 2014-11-14 14:53:45