Хотите узнать, кто вошел в систему на удаленном компьютере?
Иногда мы не рядом с этим, и другие могут использовать эти системы. Как работодателю, управляющему компанией, или руководителю компьютерной лаборатории, вам необходимо удаленно знать, кто вошел в систему.
Ниже я расскажу обо всех методах, так что читайте дальше!
Does anyone have any idea what I am misssing?
This is the original code.
function Get-RemoteSessions { [CmdletBinding()] param( [string[]]$ComputerName = 'localhost' ) foreach ($Computer in $ComputerName) { Write-Verbose "Getting session information for $Computer" # create an object to fill in later $obj = "" | Select-Object UserName, @{Name = 'ComputerName'; Expression = {$Computer}}, SessionName, ID, State, IdleTime, LogonTime, Error try { quser /server:$Computer 2>&1 | Select-Object -Skip 1 | ForEach-Object { $items = $_.Trim() -split '\s{2,}' $obj.UserName = $items[0].TrimStart(">") # If session is disconnected different fields will be selected if ($items[2] -like 'Disc*') { $obj.SessionName = $null $obj.Id = $items[1] $obj.State = $items[2] # IdleTime displays the number of minutes that have elapsed since the last keyboard or # mouse input from a session. Its format is number-of-days + hours:minutes $obj.IdleTime = $items[3] $obj.LogonTime = $items[4..($items.GetUpperBound(0))] -join ' ' } else { $obj.SessionName = $items[1] $obj.Id = $items[2] $obj.State = $items[3] $obj.IdleTime = $items[4] $obj.LogonTime = $items[5] } # reformat the IdleTime property $obj.IdleTime = '{0} days, {1} hours, {2} minutes' -f ([int[]]([regex]'^(?:(\d+)\+)?(\d+):(\d+)').Match($obj.IdleTime).Groups[1..3].Value | ForEach-Object { $_ }) # output the object $obj } } catch { $obj.Error = $_.Exception.Message $obj } }
}
## Clear Host Console
Clear-Host
$ExcludedServers = 'EXCLUDESRV01', 'EXCLUDESRV02', 'EXCLUDESRV03'
## Read the list of Servers excluding the ones in $ExcludedServers
$Servers = Get-Content -Path 'C:\Users\Desktop\Active or Disc users\Servers\Servers.txt' | Where-Object { $ExcludedServers -notcontains $_ }
# get all remote sessions on all servers
$allSessions = Get-RemoteSessions -ComputerName $Servers -Verbose
# filter the open sessions from the $allRemoteUsers
$openSessions = $allSessions| Where-Object {$_.Username -ne 'Administrator' -and $_.State -notlike 'Disc*'}
# and do the same for the disconnected sessions
$disconnected = $allSessions | Where-Object {$_.Username -ne 'Administrator' -and $_.State -like 'Disc*' }
## Define Path for the Out File and make sure the path for the output file exists
$reportPath = 'C:\Users\Desktop\Active or Disc users\Out'
$null = New-Item -Path $reportPath -ItemType Directory -Force
if (@($openSessions).Count) { # write a file for the open sessions $outFile = Join-Path -Path $reportPath -ChildPath ('RDP_Connected_Users_{0:yyyyMMdd}.csv' -f (Get-Date)) $openSessions | Export-Csv -Path $outFile -NoTypeInformation
}
else { Write-Host "No open user sessions found"
}
if (@($disconnected).Count) { # and another for the disconnected sessions $outFile = Join-Path -Path $reportPath -ChildPath ('RDP_DisConnected_Users_{0:yyyyMMdd}.csv' -f (Get-Date)) $disconnected | Export-Csv -Path $outFile -NoTypeInformation
}
else { Write-Host "No disconnected sessions found"
}Как узнать, кто вошел в систему на удаленном компьютере?
Вот как отслеживать удаленные входы в систему:
Решение 01. Используйте командную строку или PowerShell.
Самый распространенный способ увидеть пользователя удаленного компьютера — использовать Командная строка or PowerShell.
Для командной строки
- Нажмите Windows + R клавиши, чтобы открыть окно «Выполнить».
- Тип CMD и нажмите Enter .
- Команда
Командная строка инструмент откроется на экране. - Вставьте любую из следующих команд и нажмите Enter. Вам необходимо ввести имя вашего удаленного компьютера вместо имя удаленного компьютера.
quser /server:RemoteComputerNamequery user /server:RemoteComputerName - Теперь вы сможете увидеть имя пользователя удаленного компьютера.
Для PowerShell
- Нажмите Windows + R , чтобы открыть Run пунктом.
- Тип PowerShell в поле и нажмите кнопку Enter .
- Вставьте любую из следующих команд и нажмите Enter. Вы должны ввести имя вашего удаленного компьютера вместо имя удаленного компьютера.
quser /server:RemoteComputerNamequery user /server:RemoteComputerName - Терминал PowerShell отобразит имя пользователя, использующего соответствующий удаленный компьютер.
Решение 02. Используйте диспетчер задач
Еще один способ идентифицировать пользователя удаленного компьютера — использовать Диспетчер задач утилита.
- Во-первых, вам нужно открыть приложение Диспетчер задач путем нажатия Ctrl + другой + Удалить or Ctrl + Shift + Esc.
- Вы также можете открыть его, нажав на значок Диспетчер задач в меню панели задач или меню «Пуск».
- Выберите Пользователи вкладка. В некоторых случаях вкладка может быть представлена значком двух человек. Windows версий.
- Там вы сможете увидеть всех пользователей ваших локальных и удаленных компьютеров.
Решение 03. Используйте средство просмотра событий
Просмотр событий это инструмент Microsoft, входящий в состав ОС Windows. Отображает журнал сообщений системы и приложений. Вы также можете использовать его для проверки пользователей удаленного компьютера, выполнив следующие действия:
- Тип Просмотр событий в Поиск поле компьютера Windows.
- Нажмите на лучший результат соответствия, чтобы открыть этот инструмент.
- Теперь нажмите Действие И выберите Подключитесь к другому компьютеру…
- После подключения дважды щелкните значок Журналы Windows на левой панели, чтобы развернуть ее.
- Выберите Безопасность чтобы открыть список событий входа в систему.
- Выберите любое событие входа в систему (Успех аудита Event ID 4798в соответствии с Дата и время чтобы увидеть, кто вошел в систему в это время.
Этот метод позволяет проверить, кто пользовался системой в конкретный момент времени.
Решение 04. Используйте удаленное взаимодействие PowerShell
PowerShell Remoting — это метод, позволяющий запускать команды Windows PowerShell на удаленных компьютерах. Если она включена на вашем удаленном компьютере, вы можете легко выполнить следующие шаги, чтобы узнать, кто вошел в систему.
- Открыть PowerShell на локальном компьютере, набрав PowerShell в поле поиска.
- Вам необходимо установить удаленный сеанс с вашей удаленной системой, используя следующую команду. Заменять имя удаленного компьютера с именем удаленного компьютера.
Enter-PSSession -ComputerName RemoteComputerName - После входа в удаленный сеанс используйте следующую Команда PowerShell чтобы узнать о вошедших в систему пользователях.
Get-WmiObject -Class Win32_ComputerSystem | Select-Object -ExpandProperty UserName - Кроме того, вы можете использовать
quserorquery userкоманды для поиска пользователей удаленной системы.
Решение 05. Используйте диспетчер служб удаленных рабочих столов.
Службы удаленных рабочих столов обеспечивают безопасный удаленный доступ к компьютеру. Вы также можете использовать его, чтобы узнать о пользователях удаленного компьютера, выполнив следующие действия:
- Откройте Менеджер удаленных рабочих столов.
- Перейдите в Службы удаленных рабочих столов.
- Теперь нажмите Коллекции , а затем Сессия Хозяин.
- Выберите подходящую коллекцию.
- Перейдите в Сеансы пользователей вкладка. Это отобразит активные пользовательские сеансы.
Решение 06. Используйте Sysinternals Suite
Sysinternals Suite — это набор утилит или инструментов для устранения неполадок. Если этот пакет установлен на вашем компьютере, вы можете использовать PsLoggedOn команду в PowerShell или командной строке. Вот как:
- Нажмите Windows + R клавиши на вашем компьютере с Windows, чтобы открыть Run пунктом.
- Введите cmd, чтобы открыть командную строку, или PowerShell, чтобы открыть PowerShell.
- Хит Enter .
- Когда появится экран, вставьте следующую команду. На месте имя удаленного компьютера, вам нужно ввести исходное имя удаленной системы.
PsLoggedOn \\RemoteComputerName - Теперь появятся имена вошедших в систему пользователей удаленной системы.
Заключение
Знание об удаленных пользователях — важный способ обеспечить безопасность вашей системы, когда вы находитесь вдали от нее. С этого момента, когда бы вы ни захотели узнать, кто вошел в систему на принадлежащем вам удаленном компьютере, просто реализуйте любой из упомянутых выше подходов.
Также не забудьте поделиться в комментариях ниже, какой из этих методов оказался наиболее полезным.
![]()
Опытный блоггер и обозреватель программного обеспечения с публикациями MakeUseOf, AddictiveTips и AppleToolBox. Он все тестирует, прежде чем написать об этом.



