Hi every one,
I got two posting two script one is used to check the RDP service status on the remote server and other one used to check the current gateway and DNS IP address associated with it.
Both the scripts are working perfectly when its independent. When i consolidate both in one and execute the script on the server which has multiple NIC card its not working.
I am very much new to power shell seeking for help..
--------------------------------------------
Gateway and DNS verify scipt.
------------------------------------------
[cmdletbinding()]
param (
[parameter(ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)]
[string[]]$ComputerName = $env:computername
)
begin {}
process {
foreach ($Computer in $ComputerName) {
if(Test-Connection -ComputerName $Computer -Count 1 -ea 0) {
$Networks = Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $Computer | ? {$_.IPEnabled}
foreach ($Network in $Networks) {
$DefaultGateway = $Network.DefaultIPGateway
$DNSServers = $Network.DNSServerSearchOrder
$OutputObj = New-Object -Type PSObject
$OutputObj | Add-Member -MemberType NoteProperty -Name ComputerName -Value $Computer.ToUpper()
$OutputObj | Add-Member -MemberType NoteProperty -Name Gateway -Value $DefaultGateway
$OutputObj | Add-Member -MemberType NoteProperty -Name DNSServers -Value $DNSServers
$OutputObj
}
}
}
}
end {}
-------------------------------------------------------output----------------
get-Content .\serverl.ist.txt | ForEach-Object {.\getgw.ps1 -computername $_}
--------------------------------------------------
ComputerName Gateway DNSServers
------------ ------- ----------
QAVMFTC {10.247.98.1} {10.247.97.10, 10.247.97.11}
DNAS01 {10.247.98.1} {10.247.97.10, 10.247.97.11}
DNAS01
DNAS01
DNAS01 {198.18.2.1} {198.18.2.25, 198.18.2.26}
DNAS01
DNAS01
-------------------------- Output End----------------------------------------------
...............................RDP Verify Script start..........................................
param(
[parameter(Mandatory=$true,ValueFromPipeline=$true)][string[]]$computername
)
$results = @()
foreach($name in $computername){
$result = "" | select Name,RDP
$result.name = $name
try{
$socket = New-Object Net.Sockets.TcpClient($name, 3389)
if($socket -eq $null){
$result.RDP = $false
}else{
$result.RDP = $true
$socket.close()
}
}
catch{
$result.RDP = $false
}
$results += $result
}
return $results
------------------------------- Output-----------------------------
get-Content .\serverl.ist.txt | ForEach-Object {.\RDP_Port_verify -computername $_}
Name RDP
---- ---
QAVMFTC True
dnas01 True
I am trying to consolidate the script into one for single output
-------Script stats-----------------
[cmdletbinding()]
param (
[parameter(ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)]
[string[]]$ComputerName = $env:computername
)
foreach ($Computer in $ComputerName) {
if(Test-Connection -ComputerName $Computer -Count 1 -ea 0) {
$Networks = Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $Computer | ? {$_.IPEnabled}
}
foreach ($Network in $Networks) {
$DefaultGateway = $Network.DefaultIPGateway
$DNSServers = $Network.DNSServerSearchOrder
}
}
##################################
$results = @()
foreach($Computer in $computername){
##
$result = ""
try{
$socket = New-Object Net.Sockets.TcpClient($name, 3389)
if($socket -eq $null){
$result = $false
}else{
$result = $true
$socket.close()
}
}
catch{
$result.RDP = $false
}
$results += $result
}
$OutputObj = New-Object -Type PSObject
$OutputObj | Add-Member -MemberType NoteProperty -Name ComputerName -Value $Computer.ToUpper()
$OutputObj | Add-Member -MemberType NoteProperty -Name RDP -Value $results
$OutputObj | Add-Member -MemberType NoteProperty -Name Gateway -Value $DefaultGateway
$OutputObj | Add-Member -MemberType NoteProperty -Name DNSServers -Value $DNSServers
$OutputObj
----------------------------Output bellow--------------------------------------
get-Content .\serverl.ist.txt | ForEach-Object {.\test.ps1 -computername $_}
ComputerName RDP Gateway DNSServers
------------ --- ------- ----------
QAVMFTC {True} {10.247.98.1} {10.247.97.10, 10.247.97.11}
DNAS01 {True}
The server which has multiple gateway and associated DNS IP is not visible at script output.