このチュートリアルで得た知識を使って、より良いDFS PowerShellスクリプトを書く方法を学ぶ準備をしましょう。この投稿では、PowerShellでDFSリンクを管理する方法をすべて学びます!
このブログ投稿には、TechSnipsの寄稿者であるScott Hurstが作成した補足ビデオがあります。ビデオを見るか、テキストをお好みの場合は読み続けてください!
最新のビデオ
分散ファイルシステム(DFS)リンクは、ネットワークファイル共有の作業の複雑さを軽減します。DFSリンクを使用すると、ユーザーとアプリケーションは共有フォルダに接続するための仮想パス名にアクセスできます。PowerShellを使用してDFSリンクを作成できます。
Active Directoryまたは他のDFS製品を管理している場合でも、DFS PowerShellスクリプトを書くことで、遭遇する問題を解決するのに役立ちます。
この仮想名前空間により、管理者は異なるサーバーにある共有フォルダを表示したり、共有フォルダの場所を変更したりすることができ、共有フォルダを使用するユーザーには完全に透明です。
ユーザーはブックマークを更新する必要がなくなり、ファイルサーバーが変更された場合でも、アプリケーションは新しいパスを更新する必要がありません。
DFSの利点
ユーザーにとって、ネットワーク共有フォルダへのアクセスは、リモートサーバーに保存されているフォルダに関連する複雑さの削減された<名前空間>\フォルダ名形式に単純化されます。
アプリケーションの場合、ネットワーク上のリソースへのハードコードされたパスを、ネットワークパスの変更により変更する必要はありません。DFS リンクを簡単に更新すれば、アプリケーションは新しい場所のリソースにアクセスし続けることができます。
DFSサーバーロールの前提条件
- アクティブディレクトリ
- Windowsサーバーにインストールされたファイルとストレージサービスの役割
- Windowsサーバー(半期チャネル)
- Windowsサーバー2016
- Windowsサーバー2012 R2
- Windowsサーバー2012
- Windowsサーバー2008 R2データセンター/エンタープライズ
前提条件
- 適切な権限を持つ管理者アカウント
- ‘ファイルサービスツール – DFS管理ツール’がインストールされたRSATツール
DSC PowerShellスクリプトの設定
まず、RSATをダウンロードしてインストールします。次に、必要なすべてのWindows機能をインストールする必要があります。これにより、DFS管理 GUI、DFS リンクをPowerShellで作成し管理するためのWindows PowerShellのDFSネームスペースモジュール、コマンドラインツールがインストールされますが、サーバーにDFSサービスはインストールされません。
一般的なDFSコマンド
DFS管理 GUI、PowerShellのDFSネームスペース(DFSN) cmdlet、DfsUtilコマンド、またはWMIを呼び出すスクリプトを使用して、ネームスペースを管理できます。
一般的なPowerShellコマンドは次のとおりです:
Get-DfsnRoot
– 現在のドメインで利用可能なDFS名前空間を検出します。 – 現在のドメインで利用可能な名前空間をチェックするためによく使用されます。New-DfsnFolder
– 新しいDFSフォルダ名を作成します。
– 名前空間内で新しいDFSフォルダを作成するためによく使用されます。New-DfsnFolderTarget
– DFSフォルダ名にパスを割り当てます。
– 1つ以上のネットワークフォルダパスをDFSフォルダに割り当てるためによく使用されます。Remove-DfsnFolderTarget
– DFSフォルダからパスを削除しますが、DFSフォルダ自体は削除しません。
– 1つ以上のネットワークフォルダパスをDFSフォルダから削除するためによく使用されます。Remove-DfsnFolder
– フォルダとそのパスを削除します。
– 名前空間からDFSフォルダを削除するためによく使用されます。
DFS名前空間の検索
Get-DfsnRoot
コマンドレットを使用して、現在のドメインでオンラインで利用可能な名前空間の一覧を取得します。
これにより、このドメインには2つの名前空間がオンライン
であることがわかります。

DFSフォルダの検索
Get-DfsnFolder
コマンドを使用して、各名前空間内のDFSフォルダをリストアップすることができます。
この出力から、AppRoot名前空間にはPowerShellという名前のDFSフォルダが存在しないことがわかります。

DSC PowerShellスクリプトのためのDFSリンクフォルダの作成
この例では、3つのファイルサーバー、FileServer01、FileServer02、およびDatacenterにPowerShellという名前の複製されたフォルダがあります。.
目標は、単一のパスを使用してこの複製されたフォルダを管理者と共有することです。
これを行うには、New-DfsnFolder
を使用して、AppRoot名前空間のPowerShellという名前の新しいDFS リンクフォルダを作成し、データセンターサーバーのファイル共有にポイントします。DFS フォルダの状態をオンラインに設定し、TargetPathの状態をオンラインに設定します。
DFS Management GUIでは、PowerShell DFS フォルダが存在しないことがわかります。


では、PowerShellコンソール内からWindows Explorerを実行し、存在しないことを確認しましょう。
フォルダが存在しない場合、ターミナルウィンドウに緑色のテキストで「Path not found. Clear to proceed」という出力が書き込まれます。
出力から、フォルダが作成され、Referral Priority Class
がGlobal-High
に設定され、State
がOnline
であることがわかります。

GUIもPowerShellの結果を確認しています。

そして、パスがWindows Explorerで利用可能になりました。

DFSフォルダのターゲットの作成
今、私たちはPowershell DFS フォルダを名前空間に作成しました。追加のフォルダターゲットパスを追加し、そのパスをオンラインに設定します。DFS PowerShellスクリプトでは、任意の数のコンポーネントを追加できます。
この時点では、3つのサーバーパスのうち2つを追加してオンラインにしました。最後のフォルダパスには、パスを追加しますが、ユーザーには利用できないようにします。したがって、フォルダターゲットパスをPowerShell DFS フォルダに追加し、この時点では DFSのパスの状態をオフラインに設定します。

FileServer01とDatacenterのパスは現在オンライン
であり、FileServer02の状態はオフライン
に設定されています。

DFSフォルダターゲットをオフラインまたはオンラインに設定します
私たちは、オンラインおよびオフラインホストとしてどのサーバーを使用するか、さらにはファイルパスのプライマリホストとしてどのサーバーを使用するかを変更することもできます。これにはSet-DfsnFolderTarget
を使用します。
以下に示すように、
- FileServer01のパスが
オフライン
に変更されました。 - Datacenterサーバーの
ReferralPriorityClass
は、sitecost-normal
からglobal-high
に切り替わりました。 - 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
コマンドレットを使用して、PowerShell フォルダと DFS リンクを削除できます。

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

まとめ
以上です!DFS と PowerShell の功夫について詳しく説明しました。このコードスニペットを使用して、より優れた PowerShell DFS スクリプトを作成できることを願っています!
Source:
https://adamtheautomator.com/dfs-powershell-scripts/