RDP and Network configuration verify script..

by Dec 3, 2013

I have two script and i am trying to compile it to one. But while compiling these two i am not getting the expected output.  

 

Remote network status verification 

 

[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———————————————-

 

Remote Desktop Status verification 

 

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

——————————————————

Complied Script

Note: Complied Script does not show output as expected. It was suppose to show RDP and Network status together.But scirpt does not work the server which is having Multiple NIC cards.

 

 

[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}