FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour RED local - detectar pc's que la componen
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
RED local - detectar pc's que la componen
Posted: 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铆:



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 :-)
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: RED local - detectar pc's que la componen
Posted: Wed Jun 12, 2013 01: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
Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Re: RED local - detectar pc's que la componen
Posted: Wed Jun 12, 2013 04: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 "
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Re: RED local - detectar pc's que la componen
Posted: 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

Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM
Re: RED local - detectar pc's que la componen
Posted: Thu Jun 13, 2013 06: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.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: RED local - detectar pc's que la componen
Posted: 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 (fw): Select all Collapse
#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 (fw): Select all Collapse
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
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: RED local - detectar pc's que la componen
Posted: 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
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Re: RED local - detectar pc's que la componen
Posted: Thu Jun 13, 2013 01: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
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Re: RED local - detectar pc's que la componen
Posted: Thu Jun 13, 2013 05:13 PM

Muchas gracias a todos por los aportes.

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

Saludos.

Rolando :D

Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: RED local - detectar pc's que la componen
Posted: Thu Jun 13, 2013 05:32 PM
Con este ejemplo muestra todas las PCs del GRUPO/DOMINIO

Code (fw): Select all Collapse
#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.

Continue the discussion