This site uses cookies own and third. If you continue to browse consider to accept the use of cookies. OK More Info.

[POWERSHELL] Escaneando en busca de RPC con Powershell

  • 1 Replies
  • 818 Views

0 Members and 1 Guest are viewing this topic.

Offline 79137913

  • *
  • Moderator
  • Posts: 713
  • Actividad:
    3.33%
  • Country: 00
  • Reputación 7913
  • 4 Esquinas
    • View Profile
    • Doors.Party
    • Email
HOLA!!!

Alguna vez les paso tener que arreglar el problema de “RPC Unavailable” error 1722?, que siempre queda mal en nuestros scripts de active directory o el Configuration manager (ademas de otros lados)ts

Para prevenir esto cree este script que permite verificarlo en batch por servidor, asi no estamos siempre con los mismos problemas de firewall o configuracion.


Sin mas preambulo el codigo:
Code: (text) You are not allowed to view links. Register or Login
#  Como ejecutar:  RPCCheck -Server NombreDelServidorAqui
#
#  Requerimientos:  portqry.exe (de Sysinternals).
#  El path a portqry.exe tendra que reflectar la ubicacion del script.
#
Param(
[string]$Server
)

workflow Check-Port {
param ([string[]]$RPCServer,[array]$arrRPCPorts)
$comp = hostname

ForEach -parallel ($RPCPort in $arrRPCPorts)
{
$bolResult = InlineScript{Test-NetConnection -ComputerName $Using:RPCServer -port $Using:RPCPort _
-InformationLevel Quiet}
If ($bolResult)
{
Write-Output "$RPCPort en $RPCServer esta disponible"
}
Else
{
Write-Output "$RPCPort en $RPCServer no esta disponible "
}
}
}
$strRPCPort = "135"
#  MODIFICAR ESTE PATH A LA CARPETA DE SYSINTERNALS
$strPortQryPath = "C:\Sysinternals"
If (Test-Path "$strPortQryPath\PortQry.exe")
{
$strPortQryCmd = "$strPortQryPath\PortQry.exe -e $strRPCPort -n $Server"
}
Else
{
Write-Output "Could not locate Portqry.exe at the path $strPortQryPath"
Exit
}
$arrPorts = @()
$arrQuryResult = Invoke-Expression $strPortQryCmd
ForEach ($strResult in $arrQuryResult)
{
If ($strResult.Contains("ip_tcp"))
{
$arrSplt = $strResult.Split("[")
$strPort = $arrSplt[1]
$strPort = $strPort.Replace("]","")
$arrPorts += $strPort
}
}
$arrPorts = $arrPorts | Sort-Object |Select-Object -Unique
Check-Port -RPCServer $Server -arrRPCPorts $arrPorts

Atención:

Tienen que instalar PortQry.
Tendran que escribir el Path del PortQry.exe en esta linea del script: $strPortQryPath = “C:\Sysinternals”
Ademas necesitan PowerShell v4
PortQry.exe se descarga de You are not allowed to view links. Register or Login

GRACIAS POR LEER!!!
"Algunos creen que soy un bot, puede que tengan razon"
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

*Shadow Scouts Team*                                                   You are not allowed to view links. Register or Login

Offline DtxdF

  • *
  • Moderador Global
  • Posts: 1031
  • Actividad:
    70%
  • Country: 00
  • Reputación 25
  • Eres un auto y tienes dos opciones: Parar o Seguir
    • View Profile
    • Mi repositorio de Github donde encontraras herramientas para tu trabajo.
    • Email
¡Volvió números!

Gracias por el aporte  ;D

~ DtxdF
Los seres humanos son robots, cuyo combustible es el afanado dinero.