準備好學習如何使用本教程中所獲得的知識來撰寫更好的DFS PowerShell腳本。在這篇文章中,您將學習如何在PowerShell中管理DFS連結!
本博客文章還有一個由TechSnips的貢獻者Scott Hurst創建的相應視頻。請隨意觀看,或者如果您更喜歡文字,繼續閱讀!
我的最新視頻
分散式文件系統(DFS)連結簡化了使用網絡文件共享的複雜性。DFS連結允許用戶和應用程序通過虛擬路徑名稱連接到共享文件夾。您可以使用PowerShell創建DFS連結。
無論您是管理Active Directory還是其他DFS產品,撰寫DFS PowerShell腳本都將幫助您解決遇到的任何問題。
這個虛擬命名空間使管理員能夠將位於不同服務器上的共享文件夾呈現給消費該文件夾的用戶,甚至可以完全透明地更改共享文件夾的位置。
用戶不需要更新書籤,應用程序也不需要更新新的路徑,當文件服務器更改時。
DFS的好處
對於用戶來說,訪問網絡共享文件夾簡化為<命名空間>\文件夾名稱的格式,減少了與存儲在遠程服務器上的文件夾相關的複雜性。
對於應用程式而言,對於網路上資源的硬編碼路徑不需要因為網路路徑的變更而更改。只需簡單更新DFS連結,應用程式就可以繼續存取資源的新位置。
DFS伺服器角色的先決條件
- Active Directory
- 在Windows Server上安裝的檔案和儲存服務角色
- Windows Server(Semi-Annual Channel)
- Windows Server 2016
- Windows Server 2012 R2
- Windows Server 2012
- Windows Server 2008 R2 Datacenter/Enterprise
先決條件
- 具有適當權限的管理員帳戶
- 安裝了「檔案服務工具 – DFS 管理工具」的RSAT工具
設定DSC PowerShell腳本
首先,下載並安裝RSAT。接下來,您需要安裝所有必要的Windows功能。這將安裝DFS管理GUI,用於使用PowerShell創建DFS連結並進行管理的DFS命名空間模組,以及命令列工具,但不會在伺服器上安裝任何DFS服務。
常用DFS指令
您可以使用DFS管理GUI、PowerShell中的DFS命名空間(DFSN)cmdlet、DfsUtil命令或調用WMI的腳本來管理命名空間。
一些常用的PowerShell指令包括:
Get-DfsnRoot
– 發現當前域中的所有 DFS 命名空間 – 常用於檢查當前域中的可用命名空間New-DfsnFolder
– 創建新的 DFS 文件夾名稱
– 常用於在命名空間中創建新的 DFS 文件夾New-DfsnFolderTarget
– 向 DFS 文件夾名稱分配路徑
– 常用於將一個或多個網絡文件夾路徑分配給 DFS 文件夾Remove-DfsnFolderTarget
– 從 DFS 文件夾中刪除路徑,但不刪除 DFS 文件夾。
– 常用於從 DFS 文件夾中刪除一個或多個網絡文件夾路徑Remove-DfsnFolder
– 刪除文件夾及其所有路徑
– 常用於從命名空間中刪除 DFS 文件夾
查找 DFS 命名空間
我們將首先使用 Get-DfsnRoot
命令來獲取當前域中所有在線和可用的命名空間的概念。
這顯示在此域中有兩個命名空間是在線
的。

查找 DFS 文件夾
使用 Get-DfsnFolder
命令,我們可以列出每個命名空間中的 DFS 文件夾。
從這個輸出中,我們可以看到在AppRoot 命名空間中沒有名為PowerShell的 DFS 文件夾。

為 DSC PowerShell 腳本創建 DFS 鏈接文件夾
在這個例子中,我們有三個檔案伺服器,分別是 FileServer01, FileServer02 和 Datacenter,它們上面都有一個名為 PowerShell 的複製資料夾。
我們的目標是使用單一路徑將這個複製資料夾分享給我們的管理員。
為了達到這個目標,我們將在 AppRoot 的 namespace 中創建一個新的 DFS link 資料夾,名為 PowerShell,並使用 New-DfsnFolder
指向資料中心伺服器的檔案共用。我們將設置 DFS 資料夾 的 狀態 為 線上,並將 TargetPath 的 狀態 設置為 線上。
在 DFS 管理界面中,我們可以看到 PowerShell DFS 資料夾 不存在。


現在,讓我們在 PowerShell 控制台中執行 Windows Explorer,並確認它不存在。
如果該資料夾不存在,它將在終端窗口中以綠色文字輸出 找不到路徑,可以繼續執行,如下所示。
從輸出中,我們可以看到資料夾已經被創建,Referral Priority Class
被設置為 Global-High
,並且 State
為 Online
。

GUI 也確認了 PowerShell 告訴我們的信息。

現在,我們的路徑在 Windows Explorer 中可用了。

創建 DFS 資料夾目標
現在我們成功地在命名空間中創建了 Powershell DFS 資料夾,請在其中添加一個額外的資料夾目標路徑並將該路徑設置為「在線」,使用 New-DfsnFolderTarget 命令。DFS PowerShell 腳本允許您添加任意數量的組件。
到目前為止,我們已經添加了兩個伺服器路徑中的兩個,並且已經在線。對於我們最後的資料夾路徑,我們希望添加該路徑,但不向用戶提供。所以,讓我們向我們的 PowerShell DFS 資料夾添加一個資料夾目標路徑,並將 DFS 資料夾路徑狀態設置為離線,我們將再次使用 New-DfsnFolderTarget 命令。

您可以看到 FileServer01 和 Datacenter 的路徑目前處於「在線」狀態,而 FileServer02 的狀態已設置為「離線」。

將 DFS 資料夾目標設置為離線或在線
我們還可以通過使用 Set-DfsnFolderTarget
更改哪些伺服器是「上線」和「離線」主機,甚至可以將文件路徑的主要主機設置為我們的伺服器。
如下所示:
- FileServer01 的路徑已更改為
離線
- Datacenter 伺服器的
ReferralPriorityClass
從global-high
切換為sitecost-normal
- FileServer02 的路徑已更改為
上線
- FileServer02 的
ReferralPriorityClass
已切換為global-high

使用 PowerShell 刪除 DFS 文件夾目標路徑
I try to vaccinate my code against the fat finger flu as much as possible. Here we will try to install a safety net before removing one of the folders by making sure that it is offline before deleting it.
再見了,FileServer01 文件夾!

對於那些更傾向於放棄安全網選項的人,我們也能滿足你們,勇敢的靈魂們。
我們已經告別了 FileServer02 資料夾。

刪除 DFS 資料夾
這是一條漫長而曲折的道路,但我們的 DFS 連結的時候到了。我們可以使用 Remove-DfsnFolder
cmdlet 刪除 PowerShell 資料夾和 DFS 連結。

A quick double-check of the DFS Management GUI shows our DFS link is no more.

總結
就是這樣!你走過了一條曲折的 DFS 和 PowerShell kung fu 之路。現在我希望你已經掌握了一些程式碼片段,幫助你建立更好的 PowerShell DFS 腳本!
Source:
https://adamtheautomator.com/dfs-powershell-scripts/