Habilitar conexión compartida a internet (ICS) con visual basic script

Iniciado por LordBynary, 18 Diciembre 2012, 18:23 PM

0 Miembros y 1 Visitante están viendo este tema.

LordBynary

Hola a todos, les cuento que desde hace varios días vengo intentado resolver este problema que tengo, lo que pasa es que quiero poder habilitar las 2 opciones que aparecen de conexiones compartidas a internet (ICS) en las propiedades de algún adaptador de red, pero nosé si esto se pueda hacer mediante un script en vbs o mediante un script reg que odifique el regsitro, por favor alguien que me pueda ayudar a resolver mi problema se lo agradecerí muchísimo poque  he buscado y no he encontrado, pero creo que si se puede pero nosé como exactamente, bueno les agradecería su ayuda...

PD : es un reto para todos los que les gusta la programación en scripting y sobre todo los retos.

Eleкtro

Cita de: LordBynary en 18 Diciembre 2012, 18:23 PMPD : es un reto para todos los que les gusta la programación en scripting y sobre todo los retos.
Para que molestarse en codearlo cuando ya está hecho xD.

Pruébalo pasándole los argumentos necesarios:

Código (vb) [Seleccionar]
Originally from http://www.autoitscript.com/forum/topic/28897-switch-ics/
'Changed to VBS, added arguments and fixed for private/public networkds by Dror Gluska 2012-06-25
'Dror Gluska (2012) - http://uhurumkate.blogspot.co.il/


option explicit



Main( )

sub Main( )
   dim objArgs, con, endis,con2

   Set objArgs = WScript.Arguments

   'WScript.Echo objArgs.Count

   if objArgs.Count > 0 then
       con = objArgs(0)
       con2 = objArgs(1)
       endis = objArgs(2)
       
       EnableDisableICS con,con2, endis 'true enables, false disables
       
   else
       DIM szMsg
       szMsg = "Invalid usage! Please provide the name of the connection as the argument." & vbCRLF & vbCRLF & _
               "Usage:" & vbCRLF & _
               " " + WScript.scriptname + " ""Public Connection Name"" ""Private Connection Name"" true/false"
       WScript.Echo( szMsg )
                     
   end if

end sub



function EnableDisableICS(sPublicConnectionName, sPrivateConnectionName, bEnable)
   
   dim bFound
   bFound = FALSE
   dim oNetSharingManager, oConnectionCollection, oItem, EveryConnection, objNCProps
   
   set oNetSharingManager = Wscript.CreateObject("HNetCfg.HNetShare.1")
    if (IsObject(oNetSharingManager)) = FALSE then
       Wscript.Echo("Unable to get the HNetCfg.HnetShare.1 object.")
       Exit function
   End if
   
   if (IsNull(oNetSharingManager.SharingInstalled) = TRUE) then
       Wscript.Echo( "Sharing is not available on this platform.")
       Exit function
   End if

   

    set oConnectionCollection = oNetSharingManager.EnumEveryConnection
   for each oItem In oConnectionCollection
       set EveryConnection = oNetSharingManager.INetSharingConfigurationForINetConnection (oItem)
       set objNCProps = oNetSharingManager.NetConnectionProps (oItem)
        If objNCProps.name = sPrivateConnectionName Then
           bFound = True
          Wscript.Echo("Setting ICS Private to " & bEnable & " on connection: " & objNCProps.name)
           If bEnable Then
               EveryConnection.EnableSharing (1)
           Else
               EveryConnection.DisableSharing
           End if
       End if
   Next

   set oConnectionCollection = oNetSharingManager.EnumEveryConnection
   for each oItem In oConnectionCollection
       set EveryConnection = oNetSharingManager.INetSharingConfigurationForINetConnection (oItem)
       set objNCProps = oNetSharingManager.NetConnectionProps (oItem)
       
       If objNCProps.name = sPublicConnectionName Then
           bFound = True
          Wscript.Echo("Setting ICS Public to " & bEnable & " on connection: " & objNCProps.name)
           If bEnable Then
               EveryConnection.EnableSharing (0)
           Else
               EveryConnection.DisableSharing
           End if
       End if
   next
   
   If Not bFound Then
      Wscript.Echo("Unable to find the connection " & sPublicConnectionName)
   End if

end function








LordBynary

Hola EleKtro H@cker bueno te agradezco por la informacion que me diste, pero tengo un problema, nosé que argumentos pasarle al script para que funcione correctamente porque creo q dice:

1.- nombre de la conexion publica
2.-nombre de la conexion privada
3.- y el valor para habilitarlo o deshabilitarlo

pero nosé en que parte del script poner esos argumentos y que valor debo poner en cada argumento, osea a que se refiere cada uno , si me darias un ejemplo con cada argumento que tengo q pasarle al srcipt para que funcione correctamente y en donde poner los argumentos te lo agradecería mucho...