이 자습서에서 배운 지식을 활용하여 더 나은 DFS PowerShell 스크립트를 작성하는 방법을 배우기 위해 준비하세요. 이 게시물에서는 PowerShell을 사용하여 DFS 링크를 관리하는 모든 내용을 배우게 될 것입니다!
이 블로그 게시물은 TechSnips 기고자인 Scott Hurst가 만든 동반 동영상과 함께 제공됩니다. 원하신다면 시청하거나 텍스트를 선호하신다면 계속 읽어보세요!
내 최신 동영상
분산 파일 시스템(DFS) 링크는 네트워크 파일 공유 작업의 복잡성을 줄입니다. DFS 링크를 사용하면 사용자와 애플리케이션이 공유 폴더에 연결하기 위해 가상 경로 이름을 사용할 수 있습니다. PowerShell을 사용하여 DFS 링크를 생성할 수 있습니다.
Active Directory 또는 다른 DFS 제품을 관리하든, DFS PowerShell 스크립트를 작성하면 문제를 해결하는 데 도움이 됩니다.
이 가상 네임스페이스를 통해 관리자는 서로 다른 서버에 위치한 공유 폴더를 제공하거나 공유 폴더의 위치를 변경할 수 있으며, 해당 폴더의 소비자는 이를 완전히 투명하게 사용할 수 있습니다.
사용자는 즐겨찾기를 업데이트할 필요가 없으며, 파일 서버가 변경되어도 애플리케이션을 새 경로로 업데이트할 필요가 없습니다.
DFS의 이점
사용자에게는 원격 서버에 저장된 폴더와 관련된 복잡성이 <네임스페이스>\폴더이름 형식으로 단순화됩니다.
응용 프로그램에서 네트워크 리소스에 대한 하드 코딩된 경로는 네트워크 경로의 변경으로 인해 변경할 필요가 없습니다. DFS 링크를 간단히 업데이트하면 응용 프로그램이 리소스를 새 위치에서 계속 액세스할 수 있습니다.
DFS 서버 역할을 위한 전제 조건
- Active Directory
- Windows 서버에 설치된 파일 및 스토리지 서비스 역할
- Windows Server (반년 채널)
- 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 링크를 만들고 관리하는 Windows PowerShell용 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
cmdlet을 사용하여 현재 도메인에서 온라인 및 사용 가능한 네임스페이스를 확인할 수 있습니다.
이 결과에서 이 도메인에는 두 개의 네임스페이스가 온라인
상태임을 보여줍니다.

DFS 폴더 찾기
Get-DfsnFolder
명령을 사용하여 각 네임스페이스의 DFS 폴더를 나열할 수 있습니다.
이 출력에서는 AppRoot 네임스페이스에서 PowerShell이라는 DFS 폴더가 없음을 알 수 있습니다.

DSC PowerShell 스크립트를 위한 DFS 링크 폴더 생성하기
이 예제에서는 세 개의 파일 서버, FileServer01, FileServer02 및 Datacenter.
에 PowerShell이라는 복제된 폴더가 있습니다.
이 복제된 폴더를 관리자들과 공유하기 위해 하나의 경로를 사용하려고 합니다.링크 폴더를 AppRoot 네임스페이스에 PowerShell이라는 이름으로 New-DfsnFolder
를 사용하여 생성하고 데이터센터 서버의 파일 공유를 가리키도록 설정할 것입니다. DFS 폴더 상태를 온라인으로 설정하고 TargetPath 상태를 온라인으로 설정할 것입니다.
DFS 관리 GUI에서 PowerShell DFS 폴더가 존재하지 않는 것을 확인할 수 있습니다.


이제 PowerShell 콘솔에서 Windows Explorer를 실행하고 존재하지 않는지 확인합시다.
폴더가 존재하지 않는 경우, 아래에서 볼 수 있듯이 터미널 창에 초록색으로 경로를 찾을 수 없음. 진행 가능이라는 결과를 출력합니다.
출력에서 볼 수 있듯이 폴더가 생성되었으며, Referral Priority Class
가 Global-High
로 설정되었고, State
는 Online
입니다.

GUI도 PowerShell이 알려준 내용을 확인합니다.

이제 경로가 Windows Explorer에서 사용 가능합니다.

DFS 폴더 대상 생성
이제 Powershell DFS 폴더를 네임스페이스에 성공적으로 생성했으므로, New-DfsnFolderTarget
를 사용하여 해당 경로를 추가하고 폴더 대상 경로로 설정하고, 해당 경로를 온라인으로 설정하십시오. DFS PowerShell 스크립트를 사용하면 원하는 수의 구성 요소를 추가할 수 있습니다.
이 시점까지 두 개의 세 개의 서버 경로가 추가되어 온라인으로 설정되었습니다. 마지막 폴더 경로에 대해서는 사용자에게 이용 가능하지 않도록 경로를 추가하고자 합니다. 따라서 New-DfsnFolderTarget
를 다시 사용하여 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
cmdlet을 사용하여 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/