[POWERSHELL] Escaneando en busca de RPC con Powershell

  • 1 Respuestas
  • 296 Vistas

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado 79137913

  • *
  • Moderator
  • Mensajes: 708
  • Actividad:
    6.67%
  • Country: 00
  • Reputación 7914
  • 4 Esquinas
  • Skype: [email protected]
    • Ver Perfil
    • 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:
Código: (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

Desconectado DtxdF

  • *
  • Moderador Global
  • Mensajes: 984
  • Actividad:
    100%
  • Country: 00
  • Reputación 21
  • Eres un auto y tienes dos opciones: Parar o Seguir
    • Ver Perfil
    • 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.