Приготовьтесь узнать, как писать лучшие сценарии PowerShell DFS, используя знания, которые вы получите в этом учебнике. В этом посте вы узнаете все о управлении ссылками DFS в PowerShell!
Этот блог имеет сопутствующее видео, созданное участником TechSnips, Скоттом Херстом. Не стесняйтесь посмотреть его или, если предпочитаете текст, читайте дальше!
Мои последние видео
Система распределенных файлов (DFS) уменьшает сложность работы с сетевыми файловыми ресурсами. Ссылки DFS позволяют пользователям и приложениям получать доступ к виртуальному имени пути для подключения к общим папкам. Вы можете создавать ссылки DFS с помощью PowerShell.
Будь то управление службой каталогов Active Directory или другим продуктом DFS, написание сценариев PowerShell DFS поможет вам решить любые проблемы, с которыми вы столкнетесь.
Это виртуальное пространство имен позволяет администраторам представлять общие папки, расположенные на разных серверах, или даже изменять местоположение общей папки, полностью незаметно для потребителей этой папки.
Пользователям не потребуется обновлять закладки, и приложениям не потребуется обновляться с новыми путями при изменении файловых серверов.
Преимущества DFS
Для пользователей доступ к общим папкам сетевых ресурсов упрощается до формата <пространство_имен>\ИмяПапки, что уменьшает сложность, связанную с папками, хранящимися на удаленных серверах.
Для приложений жёстко закодированные пути к ресурсам в сети не обязательно изменять из-за изменения сетевого пути. Простое обновление ссылки DFS и приложение будет продолжать получать доступ к ресурсам по новому местоположению.
Требования к роли сервера DFS
- Служба каталога Active Directory
- Роль файловых и хранилищеских служб, установленная на сервере Windows
- Windows Server (полугодовой канал)
- Windows Server 2016
- Windows Server 2012 R2
- Windows Server 2012
- Windows Server 2008 R2 Datacenter/Enterprise
Предварительные требования
- Учётная запись администратора с необходимыми разрешениями
- Инструменты RSAT с установленными «Инструментами управления файловыми службами – Инструментами управления DFS»
Настройка сценариев PowerShell для DSC
Сначала скачайте и установите RSAT. Затем установите все необходимые функции Windows. Это установит GUI управления DFS, модуль пространств имен DFS для Windows PowerShell для создания и управления DFS ссылками с помощью PowerShell и их управления, а также инструменты командной строки, но не установит какие-либо службы DFS на сервере.
Общие команды DFS
Вы можете управлять пространствами имен с помощью GUI управления DFS, cmdlet’ов пространства имен DFS (DFSN) в PowerShell, команд DfsUtil или скриптов, вызывающих WMI.
Некоторые распространённые команды PowerShell:
Get-DfsnRoot
– Обнаружение всех пространств имен DFS в текущем домене – Обычно используется для проверки доступных пространств имен в текущем доменеNew-DfsnFolder
– Создание нового имени папки DFS
– Обычно используется для создания новой папки DFS в пространстве именNew-DfsnFolderTarget
– Назначение пути(ей) к имени папки DFS
– Обычно используется для назначения одного или нескольких сетевых путей к папке DFSRemove-DfsnFolderTarget
– Удаление пути из папки DFS, но не удаляет саму папку DFS.
– Обычно используется для удаления одного или нескольких сетевых путей из папки DFSRemove-DfsnFolder
– Удаление папки и всех ее путей
– Обычно используется для удаления папки DFS из пространства имен
Поиск пространств имен DFS
Мы начнем с получения представления о всех онлайн и доступных пространствах имен в текущем домене с помощью командлета Get-DfsnRoot
.
Это показывает, что в этом домене есть два пространства имен, которые находятся в состоянии Online
.

Поиск папок DFS
С помощью команды Get-DfsnFolder
мы можем перечислить папки DFS в каждом пространстве имен.
Из этого вывода видно, что в пространстве имен AppRoot нет папки DFS с именем PowerShell.

Создание связанных папок DFS для скриптов PowerShell DSC
В этом примере у нас есть реплицированная папка с именем PowerShell на трех файловых серверах: FileServer01, FileServer02 и Datacenter.
Цель – предоставить эту реплицированную папку нашим администраторам, используя один путь.
Для этого мы создадим новую папку DFS link в пространстве имен AppRoot с именем PowerShell с помощью New-DfsnFolder
и направим ее на файловую общую папку сервера Datacenter. Мы установим состояние папки DFS Online и состояние TargetPath Online.
В графическом интерфейсе управления DFS мы видим, что папка DFS PowerShell не существует.


Теперь давайте выполним Проводник Windows из консоли PowerShell и подтвердим, что она не существует.
Если папка не существует, она напишет вывод Path not found. Clear to proceed зеленым текстом в окне терминала, как показано ниже.
Из вывода видно, что папка была создана, Referral Priority Class
установлен в Global-High
, а State
– Online
.

Графический интерфейс также подтверждает то, что сказал PowerShell.

и наш путь теперь доступен в Проводнике Windows.

Создание целей папки DFS
Теперь, когда мы успешно создали Powershell DFS папку в пространстве имен, добавьте дополнительный путь к целевой папке и установите этот путь как Online с использованием New-DfsnFolderTarget
. Скрипты DFS PowerShell позволяют добавлять любое количество компонентов.
На данный момент у нас добавлены два из трех путей сервера, и они онлайн. Для нашего последнего пути папки мы хотим добавить путь, но не делать его доступным для пользователей. Так что добавим путь к целевой папке в наш PowerShell DFS папку и на этот раз установим состояние пути DFS папки в режим offline, мы снова используем New-DfsnFolderTarget
.

Вы можете видеть, что FileServer01 и путь дата-центра в данный момент Online
, а состояние FileServer02 было установлено в Offline
.

Установка целей папок DFS в режим Offline или Online
Мы также можем изменить, какие серверы являются хостами в режиме Online и Offline, и даже определить, какой сервер будет основным хостом для пути к файлу, используя Set-DfsnFolderTarget
.
Как видно ниже:
- Путь FileServer01 изменился на
Offline
- Datacenter сервера
ReferralPriorityClass
переключился наsitecost-normal
сglobal-high
- Путь FileServer02 изменил свое состояние на
Online
- ReferralPriorityClass для FileServer02 переключился на
global-high

Удаление путей к цели папки DFS с помощью PowerShell
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-ссылку. Мы можем удалить папку PowerShell и DFS-ссылку с помощью командлета Remove-DfsnFolder
.

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/