RED local - detectar pc's que la componen

Post Reply
User avatar
rolando
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

RED local - detectar pc's que la componen

Post by rolando »

Buen día,

Quisiera automatizar una aplicación para que al iniciar detecte cuantas pc's hay conectadas en red local y el nombre de las mismas.

Estuve intentando con el testnet.prg de los samples y hay una función que edita las pc de la red local pero abriendo un dialog que permite seleccionar la/s pc a desconectar de red. Esta función es la WNetDisconnectDialog() y muestra algo así:

Image

Mi consulta es: ¿existe alguna función que me devuelva los nombres y los path de las pc que integran una red, mostrados tal como lo hace la función WNetDisconnectDialog() pero que puedan pasarse a un array?

Gracias.

Rolando :D
User avatar
cnavarro
Posts: 6675
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Has thanked: 12 times
Been thanked: 13 times

Re: RED local - detectar pc's que la componen

Post by cnavarro »

Buenas tardes

Quizas este tema te pueda ayudar

http://forums.fivetechsupport.com/viewtopic.php?f=3&t=25827&p=141221#p141189

Un saludo
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
sysctrl2
Posts: 1090
Joined: Mon Feb 05, 2007 7:15 pm
Has thanked: 14 times
Been thanked: 9 times
Contact:

Re: RED local - detectar pc's que la componen

Post by sysctrl2 »

has probado:

el comando CMD

NET VIEW >T.TXT

guardad en un texto las pcs. en red.

saludos.
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
rolando
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: RED local - detectar pc's que la componen

Post by rolando »

Gracias por responder.

Cristóbal, lo del link que sugieres he probado con el .bat y se bloquea en W7 aún ejecutándolo como administrador.

César, así lo tengo implementado pero quería saber si existe alguna función en xHarbour, FWH ó 'C' para hacer esto sin necesidad de comandos DOS.

Rolando :D
colthop
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Re: RED local - detectar pc's que la componen

Post by colthop »

Hola Rolando:

Yo tengo algo parecido y lo que hago es con:

aFil:=adrives()

Pongo en un array las unidades de la red incluyendo todas las unidades de disco y las de disco duro local. Y con:

netDisk()

Selecciono solo las que son de red. Y Con

netRmtName()

Se el nombre de que tiene en la Red. Luego con esta información puedes hacer la ventana.

Un saludo

Carlos
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
User avatar
Antonio Linares
Site Admin
Posts: 42879
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 209 times
Been thanked: 124 times
Contact:

Re: RED local - detectar pc's que la componen

Post by Antonio Linares »

Rolando,

Aqui se explica como obtener un montón de información valiosa usando WMI:
http://www.activexperts.com/network-monitor/windowsmanagement/wmi/samples/os/#Win32_NetworkConnection.htm

Prueba este ejemplo:

Code: Select all | Expand

#include "FiveWin.ch"

function Main()

   local oLoc := CreateObject ( "wbemScripting.SwbemLocator" )
   local oWMI := oLoc:ConnectServer()
   local aPCs := oWMI:ExecQuery( "Select * FROM Win32_NetworkLoginProfile" )
   local oPC
   
   MsgInfo( Len( aPCS ) )
   
   for each oPC in aPCs
      MsgInfo( oPC:Caption )
   next  
   

return nil


Mira toda la información que hay disponible para cada oPC:

Code: Select all | Expand

On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkLoginProfile",,48)
For Each objItem in colItems
    Wscript.Echo "AccountExpires: " & objItem.AccountExpires
    Wscript.Echo "AuthorizationFlags: " & objItem.AuthorizationFlags
    Wscript.Echo "BadPasswordCount: " & objItem.BadPasswordCount
    Wscript.Echo "Caption: " & objItem.Caption
    Wscript.Echo "CodePage: " & objItem.CodePage
    Wscript.Echo "Comment: " & objItem.Comment
    Wscript.Echo "CountryCode: " & objItem.CountryCode
    Wscript.Echo "Description: " & objItem.Description
    Wscript.Echo "Flags: " & objItem.Flags
    Wscript.Echo "FullName: " & objItem.FullName
    Wscript.Echo "HomeDirectory: " & objItem.HomeDirectory
    Wscript.Echo "HomeDirectoryDrive: " & objItem.HomeDirectoryDrive
    Wscript.Echo "LastLogoff: " & objItem.LastLogoff
    Wscript.Echo "LastLogon: " & objItem.LastLogon
    Wscript.Echo "LogonHours: " & objItem.LogonHours
    Wscript.Echo "LogonServer: " & objItem.LogonServer
    Wscript.Echo "MaximumStorage: " & objItem.MaximumStorage
    Wscript.Echo "Name: " & objItem.Name
    Wscript.Echo "NumberOfLogons: " & objItem.NumberOfLogons
    Wscript.Echo "Parameters: " & objItem.Parameters
    Wscript.Echo "PasswordAge: " & objItem.PasswordAge
    Wscript.Echo "PasswordExpires: " & objItem.PasswordExpires
    Wscript.Echo "PrimaryGroupId: " & objItem.PrimaryGroupId
    Wscript.Echo "Privileges: " & objItem.Privileges
    Wscript.Echo "Profile: " & objItem.Profile
    Wscript.Echo "ScriptPath: " & objItem.ScriptPath
    Wscript.Echo "SettingID: " & objItem.SettingID
    Wscript.Echo "UnitsPerWeek: " & objItem.UnitsPerWeek
    Wscript.Echo "UserComment: " & objItem.UserComment
    Wscript.Echo "UserId: " & objItem.UserId
    Wscript.Echo "UserType: " & objItem.UserType
    Wscript.Echo "Workstations: " & objItem.Workstations
Next
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
cnavarro
Posts: 6675
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Has thanked: 12 times
Been thanked: 13 times

Re: RED local - detectar pc's que la componen

Post by cnavarro »

Muy, muy bueno
Gracias
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
Adolfo
Posts: 867
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile
Contact:

Re: RED local - detectar pc's que la componen

Post by Adolfo »

Un solo problema....

Desde Windows 7,8 a XP no hay como verlos en la red.

Como se soluciona.. con simples chorrocientos pasos.

Copiado de una web
-Los usuarios deben tener contraseña y no pueden dejarse en blanco, ademas:

-Debes tener activado "Compartir Archivos e Impresoras" en XP:

Inicio - Panel de Control - Firewall de Windows - Excepciones - Marca "Compartir Archivos e Impresoras"

Inicio - Panel de Control - Conexiones de Red - Boton derecho del raton sobre la conexion en cuestion - Propiedades - Marca "Compartir Impresoras y Archivos para redes Microsoft"

-Todos los usuarios deben logearse con nombre y contraseña en sus respectivos equipos al iniciar sesion

-Debes dar de alta en Windows XP al usuario de Windows 7 con el mismo nombre y contraseña que dicho usuario tienes en Windwos 7.

-Da de alta en Windows 7 al usuario de Windows XP con el mismo nombre y contraseña que dicho usuario tienes en Windwos XP.

-El grupo de trabajo debe llamarse igual en los equipos de la red

-La direcccion IP tienen que pertenecer al mismo rango

-La mascara debe ser la misma

-Ningun usuario puede denominarse igual que un equipo de la red

-Debes desmarcar la opcion de "uso compartido simple de archivos" tanto en Windows XP como en Windows 7.

En Windows XP Pro:

-Debes desmarcar la opcion (version Pro de XP) de "uso compartido simple de archivos":

(Panel de control, Opciones de carpeta, pestaña Ver, y desmarcar la casilla correspondiente "Utilizar uso compartido simple de archivos (recomendado)")

Para la version Home, podras acceder a dicha pantalla entrando en modo seguro.

En Windows 7:

Panel de Control - Iconos Grandes - Centro de Redes y Recursos compartidos - Cambiar configuracion de uso compartido avanzado - Solo comprobar, debe estar activado por defecto


No los he probado ,pero se los pase a un colega y segun su respuestas ,"le sirvio"
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
User avatar
rolando
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: RED local - detectar pc's que la componen

Post by rolando »

Muchas gracias a todos por los aportes.

Siempre se aprende preguntando, sobre todo en este grandioso foro.

Saludos.

Rolando :D
User avatar
acuellar
Posts: 1660
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia
Has thanked: 1 time
Been thanked: 3 times

Re: RED local - detectar pc's que la componen

Post by acuellar »

Con este ejemplo muestra todas las PCs del GRUPO/DOMINIO

Code: Select all | Expand


#include "FiveWin.ch"

function Main()
    LOCAL oAdoCommand,oAdoConnection,oRs,aPcs:={},cPcs:=""
   
   oAdoCommand:=CreateObject("ADODB.Command")
   oAdoConnection:=CreateObject("ADODB.Connection")
   oAdoConnection:Provider:="ADsDSOObject"
   oAdoConnection:Open("Active Directory Provider")
   oAdoCommand:ActiveConnection:=oAdoConnection
   oAdoCommand:CommandText:="Select name from 'LDAP://LOSTAJIBOSHOTEL' Where objectCategory='computer'" //LOSTAJIBOSHOTEL el nombre del GRUPO/DOMINIO
   oRs:=oAdoCommand:Execute()
   oRs:MoveFirst()
   DO WHILE !oRs:Eof()
       xPC:=Alltrim(oRs:Fields("Name"):Value)
         aAdd(aPcs,xPC)
         cPcs+=xPC+CRLF
       oRs:MoveNext()
   ENDDO
 ?cPcs

return nil
 


Saludos,

Adhemar
Saludos,

Adhemar C.
Post Reply