Windows共享是微軟Windows操作系統下的一種文件共享技術,其本質是SMB(Server Message Block)通信協議的具體應用。通過在一臺主機上配置SMB共享服務,在同一局域網上的其他主機就可以使用SMB協議訪問共享的內容。
SMB(Server Message Block)通信協議是微軟(Microsoft) 和 英 特 爾(Intel)在1987年制定的協議,主要是作為Microsoft網絡的通訊協議。SMB是在會話層(session layer)和表示層(presentation layer)以及小部分應用層(application layer)的協議。
SMB使用了NetBIOS的應用程序接口 (Application Program Interface,簡 稱API)。另外,它是一個開放性的協議,允許了協議擴展——使得它變得更大而且復雜;大約有65個最上層的作業,而每個作業都超過120個函數,甚至Windows NT也沒有全部支持到。最近,微軟又把SMB改名為CIFS(Common Internet File System),并且加入了許多新的特色。
雖然Windows共享從Windows誕生時就伴隨著Windows用戶,但是它的使用卻一直被很多人所詬病,主要是的原因是在使用上“不夠穩定”,經常出現采用相同的配置方式,家里的電腦可以工作,辦公室的卻不行;以前配置好能夠正常使用的共享,突然不能夠工作了……
盡管Windows共享存在以上的各類問題,但是我們仍然無法離開它。一是日常辦公環境中,打印機共享就是基于SMB協議的,二是SMB協議出現的時間比較早,基本上在所有的操作系統和標準化的應用軟件都得到了較好的支持,因此適用范圍較廣,在特定的環境下使用起來比其他的解決方案更簡單。例如,在MacOS和Linux操作系統下訪問Windows的文件數據,采用Windows共享可以較好地和本地文件系統進行融合,而采用類似FTP等應用層協議的解決方案,就無法達到相類似的效果。三是微軟近年來對文件共享等技術的探索和發展是以SMB為基礎的,例如,目前比較流行的CIFS技術等,通過擴展原有的技術,增加全新的功能來滿足新一代操作系統的需求。
綜合以上的優缺點,我們可以得到的結論是,SMB協議下的Windows共享還將長期伴隨著Windows的發展而不斷發展,因此,掌握Windows環境下的文件共享技術,能夠讓我們更好地使用Windows,發揮操作系統的最大功能。
Windows文件共享在實際的使用過程中,主要需要從服務端和客戶端兩個方面進行配置進行考慮。根據筆者多年的使用經驗,一般Windows共享主要出現的問題在于服務端的配置,也就是共享源主機的設置問題。下面,筆者分別從服務端和客戶端角度進行說明其基本的設置方法。
Windows環境的文件共享是最常見的應用場景,正確配置的文件共享可以較大地提高工作效率。Windows共享配置主要包括以下關鍵步驟:
(1)設置共享文件夾。
(2)設置共享文件夾用戶訪問權限。
(3)配置Windows防火墻。
(4)檢查Windows用戶權利分配。

圖1 共享權限設置

圖2 防火墻配置

圖3 本地用戶權限分配
(5)啟用來賓賬戶。
步驟(1)在 Windows下設置共享文件夾操作相對比較簡單,本文不在重復介紹,如果不清楚可以參考微軟官方參考https://technet.microsoft.com/zh-cn/library/cc770880(v=ws.11).aspx。這里需要強調的是作為網絡維護管理人員,常常需要采用批處理或者命令行的方式進行日常的維護操作,而配置Windows文件共享可以使用以下簡單的命令行實現。例如,若要共享驅動器C上路徑UsersMyname中名為myshare的文件夾,可以在具有管理員權限的命令行終端執行一下命令實現:

步驟(2)主要是為了設置用戶的訪問權限。如圖1所示,通過設置不同的用戶權限實現文件共享的訪問控制。
注意:如果需要匿名共享,不輸入密碼就能訪問共享文件,那么必須添加Guest用戶并設置相關的訪問權限。如果需要讓MacOS匿名訪問共享目錄,還需要添加Everyone用戶的訪問權限,否則將會報告沒有權限的錯誤。
步驟(3)主要是為了防止由于操作系統自帶的防火墻屏蔽了共享服務。在如圖2所示的界面中,需要設置防火墻的入棧規則,運行445端口和139端口的訪問,如果能夠開放137、138端口更好。為了保證安全性,可以設置遠程地址限制為“本地子網”。
步驟(4)主要是由于微軟為了提高Windows系統默認的安全基本,默認關閉了Guest用戶以及禁止了相關的網絡訪問權限,造成匿名訪問的各種故障,因此需要打開策略管理器進行相關權利檢查。
在Windows運行窗口輸入“gpedit.msc”可以快速打開策略管理器,如圖3所示,需要將Guest用戶從“拒絕從網絡訪問這臺計算機”項目中移除,否則匿名用戶將無法打開共享文件夾。另外,需要在圖3左側的“安全選項”欄目中將“網絡訪問:將Everyone權限應用于匿名用戶”項目啟用,默認是禁用的。最后,還需要檢查“網絡訪問:本地賬戶的共享和安全模型”項目設置是否是“僅來賓”,使用“僅來賓”模型時,所有可以通過網絡訪問計算機的用戶(包括匿名Internet用戶)都可以訪問共享資源。

圖4 本地用戶配置

圖5 Documents App訪問SMB

圖6 VLC App訪問SMB共享
步驟(5)開啟 Windows Guest賬戶,這個步驟可以在Windows的用戶管理界面,可以在Windows運行窗口輸入“lusrmgr.msc”打開如圖4界面,將Guest用戶啟用,默認情況下是禁用的。
通常情況下默認的Windows主機可以通過共享地址的方式使用資源管理直接訪問共享資源。例如在資源管理器的地址欄中輸入“\Golden網絡共享”可以直接訪問主機Golden上的網絡共享文件夾,或者將Golden換成對應主機IP地址也能實現對共享資源的訪問。
此外,除了PC可以訪問共享資源外,主流的手機等移動終端的很多應用都具備了Windows共享的訪問能力,如圖5是在iOS系統上使用文件管理工具Documents訪問SMB文件共享的設置和訪問截圖;如圖6是在iOS系統下的VLC訪問SMB共享資源的設置和截圖界面。此類App通過配置SMB共享的方式,可以非常方便地和PC進行數據交換。
通過以上的步驟,可以比較方便地在Windows 7/8/10/2008/2012等操作系統上設置Windows文件匿名共享。在現實環境中,共享的安全性和易用性是一對矛盾,本文中配置的匿名共享訪問,雖然無需密碼訪問能給網絡訪問者提供很大的便捷性,但是由于網絡資源暴露在網絡中,所以此類配置應該在相對安全的內部局域網中設置,在具有多個網段的復雜局域網中,建議對遠程訪問主機段進行限制。
在實際的配置中,除了文中提到的幾個關鍵步驟的配置外,能夠配置好Windows文件共享還和主機上安裝的操作系統版本和安全軟件配置密切相關。一般經過深度優化過的或者是精簡過的操作系統安裝環境中,Windows共享配置會遇到很多未知的故障,這主要和缺失組件等問題有關,建議不要使用此類操作系統發行版安裝。另外,很多安全防護軟件都有系統優化功能,這些優化軟件功能通常會通過修改注冊表,關閉Windows服務的方式對系統進行修改,雖然可以關閉不常見的一些功能換取暫時的系統性能,但是這往往也會造成Windows共享等配置的穩定性,建議配置Windows共享等服務的主機慎重使用此類軟件。