我有三臺客戶機A、B和C,均連接到互聯網并使用微軟操作系統。我還有一臺服務器X,操作系統是Windows Server 2008 R2。我想要創建一種允許三個客戶機可以在服務器端獲得文件夾級別的訪問權限的架構。我將一份CSV文件發送到客戶端的共享文件夾上,是否有辦法用服務器X上的Excel打開這份文件呢?客戶機A、B和C的IP地址不是靜態的,因為他們通過某個應用程序連接到服務器,設置的是動態IP地址。我的服務器X的IP地址是靜態的。
文件共享的方法有多種,我們在這里分享最簡單和最基礎的辦法。
一種思路是創建文件共享并在服務器端進行分享,將CSV文件納入共享范圍并允許客戶機對其進行訪問。你也許會覺得與其等待文件共享,不如在三個客戶機上都復制一下文件來的更快,正因為如此我也推薦除此之外的其他辦法。
如果三臺客戶機和一臺服務器都是獨立的工作站,并非Active Directory環境的一部分的話,你必須手動進行權限配置。在所有工作站上創建帶有密碼的管理員賬戶,這樣就能夠通過服務器控制所有客戶機。相同的密碼使工作變得簡單,也要記得考慮安全因素定期更換密碼。
如果你的DHCP服務器運行在連接互聯網的路由器上,就可以在文件共享過程中使用工作站的名稱。嘗試去ping一下看看兩臺工作站IP地址的名稱問題是否已經搞定。如果連不通,重置你的客戶端并使用靜態IP地址進行連接。
現在使用你的管理員賬戶復制你的CSV文件,假設C:是你的Windows安裝目錄,就可以通過路徑\workstationnamec$遠程訪問每個工作站的驅動器,將文件復制到你的目標位置,過程中可以使用復制命令來編寫這個腳本。
例如,使用c:data.csv \workstationnamec$destination命令為每個客戶機進行文件復制操作。并將該命令存儲到批處理文件中,通過創建Windows計劃任務來運行你需要的文件。我們可以在批處理文件中加入用戶名和密碼,但考慮到安全問題,將具體內容添加到Windows Credential Manager,以便使用緩存認證。
最后,從服務器運行命令,運行Excel并打開之前的CSV文件。這里會比預想的更難,你可以創建一項計劃任務并觸發內置的計劃任務程序,每臺客戶機都需要用腳本創建計劃任務。
schtasks.exe /create /s workstationname /tn "Excel" /tr "C:Program Files (x86)Microsoft OfficeOffice14Excel.exe C:destinationdata.csv"/sc ONCE /sd 01/01/1910 /st 00:00
以上命令會創建一項計劃任務并喚醒Excel,運行excel.exe并打開data.csv。
接著,使用如下命令觸發Excel來運行csv后綴文件:schtasks.exe /run /s workstationname /tn "Excel"
任務也許會卡住,在再次運行之前需要先結束任務,使用如下命令:
schtasks.exe /end /s workstationname /tn "Excel"
編輯提醒:PSexec工具需要憑證,因此在某些特殊情況下無法正常工作,特別是提問者的文件共享服務器的情況。