Functions/Get-ComputerSite.ps1
function Get-ComputerSite { <# .SYNOPSIS Determines the Active Directory site of a specified computername(s). Relies on nltest.exe that comes with Windows .DESCRIPTION Determines the Active Directory site of a specified computername(s). Relies on nltest.exe that comes with Windows .PARAMETER ComputerName The computername you want to run the command against, defaults to $env:COMPUTERNAME. Aliased to 'CN', 'Server' .PARAMETER IncludeInput Switch that will display input parameter in the output. Aliased to 'IncludeComputerName' .EXAMPLE Get-ComputerSite Example result CORP .EXAMPLE Get-ComputerSite -IncludeInput Example result ComputerName Site ------------ ---- DEMOLAPTOP CORP #> [CmdletBinding(ConfirmImpact='None')] param ( [Parameter(ValueFromPipeline)] [Alias('CN', 'Server')] [string[]] $ComputerName = $env:COMPUTERNAME, [Alias('IncludeComputerName')] [switch] $IncludeInput ) begin { Write-Verbose -Message "Starting [$($MyInvocation.Mycommand)]" } process { foreach ($curCN in $ComputerName) { $site = nltest.exe /server:$curCN /dsgetsite 2>$null if ($LASTEXITCODE -eq 0) { if ($IncludeInput) { New-Object -TypeName 'psobject' -Property ([ordered] @{ ComputerName = $curCN Site = $site[0] }) } else { $site[0] } } } } end { Write-Verbose -Message "Ending [$($MyInvocation.Mycommand)]" } } |