我有幾台遠端操作的 Windows 10 和 Windows 7 電腦。有時,某些檔案或可執行檔需要更新。這將涉及以下內容。
- 關閉正在運行的程式。
- 刪除其目前的可執行文件
- 複製新的可執行文件
- 根據需要替換(刪除和複製)任何文件
- 重新啟動程式
我想知道是否有某種應用程式可以讓我跨單一系統(單獨更新)或跨所有系統(批次更新)進行控制。
答案1
首先,具體的軟體建議超出了本文的範圍超級用戶。嘗試https://softwarerecs.stackexchange.com/, 反而。
但是,如果有包含新文件的中央儲存庫,您可以編寫一個簡單的批次腳本來執行此操作。
- 使用任務終止停止正在運行的應用程式。
- 使用副本*或更好的版本,機器人複製,用新文件覆蓋舊文件(機器人複製讓您指定日期,以防止覆蓋較新的舊檔案),指定完整的 UNC 路徑。替代方案是使用文件傳輸協定或者SFTP傳輸檔案。在將新文件複製到舊文件上時,您實際上已經刪除了舊文件。
- 使用開始命令重新啟動應用程式。
當然,也有一些複雜的情況:
- 每個應用程式在誰的憑證下運作?重新啟動應用程式時,您的腳本應在相同的憑證下運行 - 如果您始終使用系統,則本機使用者將難以與應用程式互動。對於所有其他目的,該腳本可以作為 System.
- 是否應更換應用程式總是重新啟動?如果你想確定它是否在一開始就運行,檢查結果任務終止,並用它來確定是否重新啟動。
- 使用SFTP需要在伺服器和用戶端上安裝其他應用程式。
- 這將是非常對於記錄腳本工作日誌很有用。
答案2
Windows 內建有 WMI(Windows 管理規格)和 WinRM(Windows 遠端管理),它們都執行相同的操作,但使用不同的網路管道。 Windows 也可以將檔案複製到另一台計算機,就像在一台電腦上複製檔案一樣。
該批次文件將為您提供網路上開啟的電腦的文字檔案。
for /f "skip=3 delims=\" %%A in ('net view ^| findstr /v /C:"The command completed successfully"') do Echo %%A >> c:\computerlist.txt
殺死網路上某個行程的所有實例
wmic /node:@c:\computerlist.txt process where "name='notepad.exe'" call terminate
複製文件。 C$ 是一個隱藏的管理共享,只有管理員才能使用。
copy c:\somefolder\file.exe \\127.0.0.1\C$\Somefolder\file.exe
看看for /?
如何執行上述循環計算機列表.txt。將以下行放入批次檔中。刪除 echo 部分以實際執行某些操作。
for /f "usebackq delims=" %%A in ("C:\Folder\computerlist.txt.txt") do echo copy "c:\folder\file.exe" "\\%%A\C$\folder\file.exe
刪除和複製是沒有意義的。
在遠端電腦上啟動不可見的進程(如果在本機電腦上啟動,則該進程將可見)。這裡我們指定一台計算機而不是計算機的文字檔。
wmic /node:127.0.0.1 process call create "c:\\windows\\notepad.exe"
如需協助,請輸入for /?
, wmic /?
, wmic process get /?
, wmic process call /?
。還有wmic /format /?
和wmic /node /?
.