You've already forked SharedScripts
mirror of
https://github.com/jaapbrasser/SharedScripts.git
synced 2025-12-24 21:51:38 +02:00
72 lines
2.1 KiB
PowerShell
72 lines
2.1 KiB
PowerShell
<#
|
|
.Synopsis
|
|
Check connectivity of a system
|
|
|
|
.DESCRIPTION
|
|
This function pings and opens a connection to the default RDP port to verify connectivity, futhermore it will check if a DNS entry exists and whether there is a computeraccount
|
|
|
|
.NOTES
|
|
Name: Test-ComputerName
|
|
Author: Jaap Brasser
|
|
Version: 1.0
|
|
DateUpdated: 2013-08-23
|
|
|
|
.LINK
|
|
http://www.jaapbrasser.com
|
|
|
|
.PARAMETER ComputerName
|
|
The computer to which connectivity will be checked
|
|
|
|
.EXAMPLE
|
|
Test-ComputerName
|
|
|
|
Description:
|
|
Will perform the ping, RDP, DNS and AD checks for the local machine
|
|
|
|
.EXAMPLE
|
|
Test-ComputerName -ComputerName server01,server02
|
|
|
|
Description:
|
|
Will perform the ping, RDP, DNS and AD checks for server01 and server02
|
|
#>
|
|
Function Test-ComputerName {
|
|
param (
|
|
[CmdletBinding()]
|
|
[string[]]$ComputerName = $env:COMPUTERNAME
|
|
)
|
|
|
|
begin {
|
|
$SelectHash = @{
|
|
'Property' = @('Name','ADObject','DNSEntry','PingResponse','RDPConnection')
|
|
}
|
|
}
|
|
|
|
process {
|
|
foreach ($CurrentComputer in $ComputerName) {
|
|
# Create new Hash
|
|
$HashProps = @{
|
|
'Name' = $CurrentComputer
|
|
'ADObject' = $false
|
|
'DNSEntry' = $false
|
|
'RDPConnection' = $false
|
|
'PingResponse' = $false
|
|
}
|
|
|
|
# Perform Checks
|
|
switch ($true)
|
|
{
|
|
{([adsisearcher]"samaccountname=$CurrentComputer`$").findone()} {$HashProps.ADObject = $true}
|
|
{$(try {[system.net.dns]::gethostentry($CurrentComputer)} catch {})} {$HashProps.DNSEntry = $true}
|
|
{$(try {$socket = New-Object Net.Sockets.TcpClient($CurrentComputer, 3389);if ($socket.Connected) {$true};$socket.Close()} catch {})} {$HashProps.RDPConnection = $true}
|
|
{Test-Connection -ComputerName $CurrentComputer -Quiet -Count 1} {$HashProps.PingResponse = $true}
|
|
Default {}
|
|
}
|
|
|
|
# Output object
|
|
New-Object -TypeName 'PSCustomObject' -Property $HashProps | Select-Object @SelectHash
|
|
}
|
|
}
|
|
|
|
end {
|
|
}
|
|
} |