RED local - detectar pc's que la componen

RED local - detectar pc's que la componen

Postby rolando » Wed Jun 12, 2013 12:40 pm

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
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

Postby cnavarro » Wed Jun 12, 2013 1:22 pm

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
cnavarro
 
Posts: 6548
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Postby sysctrl2 » Wed Jun 12, 2013 4:13 pm

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
sysctrl2
 
Posts: 1020
Joined: Mon Feb 05, 2007 7:15 pm

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

Postby rolando » Wed Jun 12, 2013 10:30 pm

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
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

Postby colthop » Thu Jun 13, 2013 6:59 am

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.
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

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

Postby Antonio Linares » Thu Jun 13, 2013 11:32 am

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 view  RUN
#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 view  RUN
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
Antonio Linares
Site Admin
 
Posts: 42103
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

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

Postby cnavarro » Thu Jun 13, 2013 11:34 am

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
cnavarro
 
Posts: 6548
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Postby Adolfo » Thu Jun 13, 2013 1:40 pm

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
Adolfo
 
Posts: 860
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

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

Postby rolando » Thu Jun 13, 2013 5:13 pm

Muchas gracias a todos por los aportes.

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

Saludos.

Rolando :D
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

Postby acuellar » Thu Jun 13, 2013 5:32 pm

Con este ejemplo muestra todas las PCs del GRUPO/DOMINIO

Code: Select all  Expand view  RUN

#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.
User avatar
acuellar
 
Posts: 1643
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 52 guests