Script para desactivar (y mantener desactivado) RPCSS.EXE

14/03/2005 - 00:43 por Miguel Mollejo Sánchez | Informe spam
Hola a todos :-)

Acabo de terminar de hacer un pequeño Script VBS que sirve para desactivar y mantener desactivado el componente DCOM/RPC (que RPCSS.EXE no este activo aceptando conexiones remotas de Internet, vaya) en Windows 95, 98 o ME.

El Script se ejecutaria en cada arranque del ordenador y comprobaria si este componente esta desactivado. Si esta activado, mostraria un mensaje dando opcion a desactivarlo.

En mi equipo parece ejecutar correctamente, pero dado que lo estoy haciendo para que funcione en el ordenador de una amiga (que no sabe ni quiere saber de esto, y que tampoco tiene un firewall, de ahi que yo prefiera que este componente este desactivado), me gustaria que quienes pudierais le echarais un vistazo, por si veis alguna forma de mejorarlo o veis algun error que haya cometido yo.


El Script es el siguiente:

Set WshShell = WScript.CreateObject("Wscript.Shell")
strDCOMLocal = "N"
strDCOMRemote = "N"

On Error Resume Next
strDCOMLocal = WshShell.RegRead("HKLM\Software\Microsoft\OLE\EnableDCOM")
strDCOMRemote = WshShell.RegRead("HKLM\Software\Microsoft\OLE\EnableRemoteConnect")
On Error Goto 0

if ((strDCOMLocal = "Y") or (strDCOMRemote = "Y")) then
intButton = WshShell.Popup("El servicio DCOM sobre RPC está activado y/o admitiendo conexiones remotas desde otros equipos de Internet." & vbCR & vbCR & "Se recomienda que detenga el servicio inmediatamente, salvo que sepa que lo requerirá algún programa durante esta sesión." & vbCR & vbCR & "¿Desea detener este servicio ahora (Requiere reiniciar Windows)?", 60, "Servicio DCOM/RPC activo", 52)

if intButton = 6 then
On Error Goto 0
WshShell.RegWrite "HKLM\Software\Microsoft\OLE\EnableDCOM", "N"
WshShell.RegWrite "HKLM\Software\Microsoft\OLE\EnableRemoteConnect", "N"
WshShell.Run "RUNDLL32.EXE shell32.dll,SHExitWindowsEx 2"
end if

if intButton = -1 then
On Error Goto 0
WshShell.RegWrite "HKLM\Software\Microsoft\OLE\EnableDCOM", "N"
WshShell.RegWrite "HKLM\Software\Microsoft\OLE\EnableRemoteConnect", "N"
WshShell.Run "RUNDLL32.EXE shell32.dll,SHExitWindowsEx 2"
end if
end if


Si alguien ve que el programa es correcto y quiere utilizarlo en su propio equipo, tambien hay un instalador y desinstalador automatico: http://www.miguelms.com/dcomchk.exe


Muchas gracias y un saludo. Miguel.
 

Leer las respuestas

#1 fermu
14/03/2005 - 16:46 | Informe spam
Hash: SHA1

Miguel Mollejo Sánchez wrote:

| Hola a todos :-)
|
| Acabo de terminar de hacer un pequeño Script VBS que sirve para
desactivar y mantener desactivado el componente DCOM/RPC (que RPCSS.EXE
no este activo aceptando conexiones remotas de Internet, vaya) en
Windows 95, 98 o ME.
|
| El Script se ejecutaria en cada arranque del ordenador y
comprobaria si este componente esta desactivado. Si esta activado,
mostraria un mensaje dando opcion a desactivarlo.
|
| En mi equipo parece ejecutar correctamente, pero dado que lo estoy
haciendo para que funcione en el ordenador de una amiga (que no sabe ni
quiere saber de esto, y que tampoco tiene un firewall, de ahi que yo
prefiera que este componente este desactivado), me gustaria que quienes
pudierais le echarais un vistazo, por si veis alguna forma de mejorarlo
o veis algun error que haya cometido yo.
|



Gracias por el Script, Miguel... hay que ver como te lo curras!!! :-))

Para los neofitos:, con tener un firewall que impida la entra al puerto
RPCSS estaremos a salvo, este ejecutable es el encargado de las Llamadas
a Procedimiento Remoto, no es instalado por defecto por Win98, pero es
requerido por multiples aplicaciones que requieres el modelo DCOM para
su correcto funcionamiento, entre las cuales caben destacar, MS Visual
Studio, Visual Basic, Interdev, y en general multiples apliciones que
basan en modelos de bases de datos su funcionamiento. Normalmente el
servicio RPCSS corre bajo el puerto 135, es decir, que si tenemos este
puerto abierto, es muy posible que tengamos este servicio en
ejecución... no obstante, cerrarlo, a mi me implica alguna duda:

¿no verán perjudicado su rendimiento las aplicaciones que requieran este
servicio para su correcto funcionamiento?

Hay que destacar, que, aunque en win98 este no es un servicio básico, en
winxp, si que lo es, y cerrarlo causaría una seria inestabilidad en el
sistema en win98, presumo que esta inestabilidad no se produciría,
pero las aplicaciones que basasen su funcionamiento en el modelo DCOM,
si que se verían afectadas, no?

En fin, gracias otra vez por el script, lo probaré en mi casa, a ver
como va y comento conclusiones :-)

Saludos
Fernando M. / Registered Linux User #367696

Preguntas similares