Update Workflows/Windows/Windows Server/Roles/DFS/Creating and Configuring DFS Namespaces with Replication.md
All checks were successful
GitOps Automatic Deployment / GitOps Automatic Deployment (push) Successful in 8s
All checks were successful
GitOps Automatic Deployment / GitOps Automatic Deployment (push) Successful in 8s
This commit is contained in:
@@ -124,11 +124,16 @@ In the Replication wizard that appears after about a minute, you can configure t
|
|||||||
### Checking DFS Status
|
### Checking DFS Status
|
||||||
You may want to put together a simple table report of the DFS namespaces, replication info, and target folders. You can run the following powershell script to generate a nice table-based report of the current structure of the DFS namespaces in your domain.
|
You may want to put together a simple table report of the DFS namespaces, replication info, and target folders. You can run the following powershell script to generate a nice table-based report of the current structure of the DFS namespaces in your domain.
|
||||||
|
|
||||||
|
??? example "Powershell Reporting Script"
|
||||||
```powershell
|
```powershell
|
||||||
[CmdletBinding()]
|
# Automatically detect current AD domain and use it as DFS prefix
|
||||||
param(
|
try {
|
||||||
[string]$DomainPrefix = "\\bunny-lab.io" # Adjust if Different
|
$Domain = ([System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()).Name
|
||||||
)
|
$DomainPrefix = "\\$Domain"
|
||||||
|
} catch {
|
||||||
|
Write-Warning "Unable to detect domain automatically. Falling back to manual value."
|
||||||
|
$DomainPrefix = "\\bunny-lab.io"
|
||||||
|
}
|
||||||
|
|
||||||
Import-Module DFSN -ErrorAction Stop
|
Import-Module DFSN -ErrorAction Stop
|
||||||
Import-Module DFSR -ErrorAction Stop
|
Import-Module DFSR -ErrorAction Stop
|
||||||
@@ -244,9 +249,7 @@ foreach ($root in $roots) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Render as a PowerShell table (multi-line cells wrap)
|
# Render as a PowerShell bordered grid with one-space left/right padding in every cell
|
||||||
#$rows | Format-Table -AutoSize -Wrap
|
|
||||||
|
|
||||||
function Write-DfsGrid {
|
function Write-DfsGrid {
|
||||||
[CmdletBinding()]
|
[CmdletBinding()]
|
||||||
param(
|
param(
|
||||||
@@ -255,8 +258,8 @@ function Write-DfsGrid {
|
|||||||
|
|
||||||
[string[]]$Columns = @('Namespace','Member Folder Target(s)','Replication Locations','Namespace Servers'),
|
[string[]]$Columns = @('Namespace','Member Folder Target(s)','Replication Locations','Namespace Servers'),
|
||||||
|
|
||||||
# Reasonable max widths; tune to your console
|
# Reasonable max widths; tune to your console (these are content+padding widths)
|
||||||
[int[]]$MaxWidths = @(50, 60, 50, 28),
|
[int[]]$MaxWidths = @(70, 70, 52, 30),
|
||||||
|
|
||||||
[switch]$Ascii # use +-| instead of box-drawing if your console garbles Unicode
|
[switch]$Ascii # use +-| instead of box-drawing if your console garbles Unicode
|
||||||
)
|
)
|
||||||
@@ -286,9 +289,8 @@ function Write-DfsGrid {
|
|||||||
return ($s.Substring(0, $w-1) + '…')
|
return ($s.Substring(0, $w-1) + '…')
|
||||||
}
|
}
|
||||||
|
|
||||||
# Materialize and compute widths
|
# Materialize and compute widths (include one-space left/right padding for header and data)
|
||||||
$rows = @($Data | ForEach-Object {
|
$rows = @($Data | ForEach-Object {
|
||||||
# Build a string-only hashtable per row for consistent measurement
|
|
||||||
$o = @{}
|
$o = @{}
|
||||||
foreach ($c in $Columns) { $o[$c] = [string]($_.$c) }
|
foreach ($c in $Columns) { $o[$c] = [string]($_.$c) }
|
||||||
[pscustomobject]$o
|
[pscustomobject]$o
|
||||||
@@ -297,9 +299,10 @@ function Write-DfsGrid {
|
|||||||
$widths = @()
|
$widths = @()
|
||||||
for ($i=0; $i -lt $Columns.Count; $i++) {
|
for ($i=0; $i -lt $Columns.Count; $i++) {
|
||||||
$col = $Columns[$i]
|
$col = $Columns[$i]
|
||||||
$max = $col.Length
|
# Start with header length including padding
|
||||||
|
$max = (" " + $col + " ").Length
|
||||||
foreach ($r in $rows) {
|
foreach ($r in $rows) {
|
||||||
$len = ([string]$r.$col).Length
|
$len = (" " + [string]$r.$col + " ").Length
|
||||||
if ($len -gt $max) { $max = $len }
|
if ($len -gt $max) { $max = $len }
|
||||||
}
|
}
|
||||||
$widths += [Math]::Min($max, $MaxWidths[$i])
|
$widths += [Math]::Min($max, $MaxWidths[$i])
|
||||||
@@ -318,10 +321,10 @@ function Write-DfsGrid {
|
|||||||
}
|
}
|
||||||
$line
|
$line
|
||||||
}
|
}
|
||||||
function DrawMid() {
|
function DrawMid([string[]]$Columns, [int[]]$widths, $H) {
|
||||||
$line = $H.vt
|
$line = $H.vt
|
||||||
for ($i=0; $i -lt $widths.Count; $i++) {
|
for ($i=0; $i -lt $widths.Count; $i++) {
|
||||||
$line += TruncPad $Columns[$i] $widths[$i]
|
$line += TruncPad (" " + $Columns[$i] + " ") $widths[$i]
|
||||||
$line += $H.vt
|
$line += $H.vt
|
||||||
}
|
}
|
||||||
$line
|
$line
|
||||||
@@ -354,11 +357,11 @@ function Write-DfsGrid {
|
|||||||
}
|
}
|
||||||
$line
|
$line
|
||||||
}
|
}
|
||||||
function DrawRow($r) {
|
function DrawRow($r, [string[]]$Columns, [int[]]$widths, $H) {
|
||||||
$line = $H.vt
|
$line = $H.vt
|
||||||
for ($i=0; $i -lt $widths.Count; $i++) {
|
for ($i=0; $i -lt $widths.Count; $i++) {
|
||||||
$val = [string]$r.($Columns[$i])
|
$val = [string]$r.($Columns[$i])
|
||||||
$line += TruncPad $val $widths[$i]
|
$line += TruncPad (" " + $val + " ") $widths[$i]
|
||||||
$line += $H.vt
|
$line += $H.vt
|
||||||
}
|
}
|
||||||
$line
|
$line
|
||||||
@@ -366,17 +369,17 @@ function Write-DfsGrid {
|
|||||||
|
|
||||||
# Render with group separators between namespaces (when the Namespace cell is non-empty)
|
# Render with group separators between namespaces (when the Namespace cell is non-empty)
|
||||||
Write-Host (DrawTop)
|
Write-Host (DrawTop)
|
||||||
Write-Host (DrawMid)
|
Write-Host (DrawMid -Columns $Columns -widths $widths -H $H)
|
||||||
Write-Host (DrawHeaderSep)
|
Write-Host (DrawHeaderSep)
|
||||||
|
|
||||||
$first = $true
|
$first = $true
|
||||||
foreach ($r in $rows) {
|
foreach ($r in $rows) {
|
||||||
if (-not $first -and ([string]$r.$($Columns[0])) ) {
|
if (-not $first -and ([string]$r.$($Columns[0])) ) {
|
||||||
# Namespace changed → draw a heavy-ish separator
|
# Namespace changed → draw a separator
|
||||||
Write-Host (DrawSep)
|
Write-Host (DrawSep)
|
||||||
}
|
}
|
||||||
$first = $false
|
$first = $false
|
||||||
Write-Host (DrawRow $r)
|
Write-Host (DrawRow -r $r -Columns $Columns -widths $widths -H $H)
|
||||||
}
|
}
|
||||||
|
|
||||||
Write-Host (DrawBottom)
|
Write-Host (DrawBottom)
|
||||||
|
|||||||
Reference in New Issue
Block a user