2016-12-01 15 views
-1

В настоящее время я пишу приложение чата с использованием TCP в VB.Net, и мне нужно знать, как получить имя пользователя, зарегистрированного на компьютере (это не один из которых я использую, то есть не environment.username()), а один в той же сети LAN, что и я, используя имя машины или IPV4-адрес, который я нашел способ получить программно. Я провел много исследований и нашел ответы на вопросы, связанные с серверами Windows, и нашел имя пользователя локального пользователя, однако, чтобы повторить, я хочу, чтобы пользователь имени пользователя был возвращен, когда я ввожу свой IP-адрес/имя_компьютера в локальной сети.Найти имя пользователя в локальной сети vb.net/C#

+0

Вы можете сделать это в DOS довольно легко 'пользователь запрос/сервер: computername' –

ответ

0

Я не нашел способ, который не требовал знать учетные данные на ПК, на который вы смотрите пользователей. Если вы знаете некоторые учетные данные администратора, просто установите два пакета nuget, Cassia и SimpleImpersonation.

Тогда вы можете получить пользователей, зарегистрированных как это:

Using Impersonation.LogonUser(DomainHere, UsernameHere, PasswordHere, LogonType.NewCredentials) 
     Dim TSM As New TerminalServicesManager() 

     Using Server As ITerminalServer = TSM.GetRemoteServer(ComputerNameHere) 
      Server.Open() 

      For Each session In Server.GetSessions() 
       Debug.Print(session.SessionId) 
       Debug.Print(session.UserAccount.Value) 
       Debug.Print(session.ConnectionState) 
      Next 
     End Using 
    End Using