Войти

Показать полную графическую версию : [решено] узнать кто залогинен на компьютере


Bint
17-06-2010, 03:41
можно ли какими-нибудь средствами powershell узнать кто сейчас залогинен на определенном компьютере?

amel27
17-06-2010, 04:50
Get-WMIObject -Class Win32_ComputerSystem -Computer "Comp1"|Select-Object Username

soadm
18-07-2011, 17:14
ваш способ работает, если вы запускаете с Comp1
если вы с Comp1 будете смотреть Comp2 - поле будет пустым Username
ваш способ к сожалению не актуален

Iska
19-07-2011, 04:06
soadm, если так?
Принимать же значение пусто он может, если на опрашиваемом компьютере никто не залогонен, либо произошла ошибка опроса, или, если пользователь, в контексте которого работает скрипт, не обладает правами локадмина на опрашиваемом компьютере.
Источник (http://shserg.ru/posts/v2-set-logged-on-user-name-as-value-of-description-attribute-of-computer-object-in-ad/#comment-252).

P.S. Где-то я видел и более подробное описание требований.

Luka666
31-10-2016, 14:38
(Get-wmiobject -Computername Комп1 win32_computerSystem).Username
Это есле с другого компа.

Maza11
10-11-2022, 20:43
WMI запрос SELECT UserName FROM Win32_ComputerSystem
выдает кто залогинен на компе, если это RDP подключение то нет, если множественные тоже нет
Подскажите как показывать всех юзеров.

Для примера Advanced IP Scanner, умеет это отображать, причем он отображает учетку пользователя в списке даже если под ней запущен один единственный процесс cbService.exe от кобиан бекап.
Каким запросом он это узнает?

Нужно решение или на WMI или на PowerShell ,чтобы результат выводился в проге для мониторинга Algorius Net Viewer
https://i120.fastpic.org/big/2022/1109/c1/780cc35fc6738b95b46f4714337aaec1.jpeg (https://fastpic.org/view/120/2022/1109/780cc35fc6738b95b46f4714337aaec1.jpeg.html)

DJ Mogarych
11-11-2022, 09:57
Удобного и простого способа нет. Advanced IP Scanner показывает непонятно что, это не те, кто сейчас работает в системе.

Можно попробовать так:

Invoke-Command -ComputerName PC1234 -ScriptBlock { try {(quser.exe 2>$null |select -Skip 1).trim() -replace ">" -replace "\s+.*"} catch {exit} }


Для этого на компе должен работать удалённый доступ для PS (включить - winrm qc)
У quser.exe есть ключ /SERVER, который позволяет запрашивать список пользователей удалённо, но этот способ уже давно не работает, т. к. отключен по соображениям безопасности.

AAT666
11-11-2022, 09:59
Get Logged In Users Using Powershell (https://thesysadminchannel.com/get-logged-in-users-using-powershell/)

DJ Mogarych
11-11-2022, 10:09
AAT666, это вряд ли будет работать из-за
$SessionList = quser /Server:$Computer 2>$null

Во всяком случае, работать будет далеко не везде, скорее на старых ОС.

Maza11
11-11-2022, 13:42
DJ Mogarych,
меня бы устроил результат который выдает Advanced IP Scanner, т.к .он его выдает без всяких танцев с бубнами и без изменений настроек безопасности и т.д.

Maza11
11-11-2022, 14:03
Я пробовал получить результат с PsLoggedon.exe от PSTools
результат он выдает выводом в консоль, в строку иконки его не пишет
и на том компе где запущен процесс от кобиана, он его не показывает

https://i120.fastpic.org/big/2022/1111/83/05fed2e84468538c39eecad2de7c1883.jpg (https://fastpic.org/view/120/2022/1111/05fed2e84468538c39eecad2de7c1883.jpg.html)

C:\Users\User>C:\PSTools\PsLoggedon.exe \\host

PsLoggedon v1.35 - See who's logged on
Copyright (C) 2000-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Error opening HKEY_USERS for \\host


попробую варианты что тут предложили на PS

Maza11
11-11-2022, 15:06
DJ Mogarych,
это если с программы
https://i120.fastpic.org/big/2022/1111/d7/f0b122d810588708550c9c04a795bed7.jpeg (https://fastpic.org/view/120/2022/1111/f0b122d810588708550c9c04a795bed7.jpeg.html)
Выполнение команды остановлено, так как привилегированной переменной "ErrorActionPreference" или общему параметру присвоено значение Stop: [172.17.0.57] Не удалось подключиться к удаленному серверу. Сообщение об ошибке: Клиенту WinRM не удается обработать запрос. Проверку подлинности по умолчанию можно использовать с IP-адресом при следующих условиях: транспортом является HTTPS или назначением является список TrustedHosts, кроме того, должны быть предоставлены явно указанные учетные данные. Чтобы настроить TrustedHosts, используйте winrm.cmd. Обратите внимание, что в списке TrustedHosts могут находиться компьютеры, не прошедшие проверку подлинности. Для получения сведений о настройке TrustedHosts используйте следующую команду: winrm help config. Дополнительные сведения см. в разделе справки, вызываемом командой about_Remote_Troubleshooting.

это если с консоли
PS C:\Users\Administrator> Invoke-Command -ComputerName WIN-SPUF7UQNDRV -ScriptBlock { try {(quser.exe 2>$null |select -
Skip 1).trim() -replace ">" -replace "\s+.*"} catch {exit} }
[win-spuf7uqndrv] Не удалось подключиться к удаленному серверу. Сообщение об ошибке: Клиенту WinRM не удается закончить
операцию за указанное время. Проверьте правильность имени компьютера, его наличие в сети, а также настройку исключения
для службы удаленного управления Windows в брандмауэре. Дополнительные сведения см. в разделе справки, вызываемом кома
ндой about_Remote_Troubleshooting.
+ CategoryInfo : OpenError: (:) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionStateBroken

Не подходит ,просто так не работает

DJ Mogarych
11-11-2022, 15:24
Я писал выше о том, что на удалённой машине должен быть разрешён удалённый доступ для PS, и привёл команду для включения.
К тому же, нужно учитывать нюансы работы вашей программы с PS, мне они неизвестны.

Если вас устраивает вывод сканера, можно задействовать advanced_ip_scanner_console.exe, сохранять во временный файл и потом читать результат оттуда. Хотя это, конечно, ещё более костыльное решение.

Вообще неплохим вариантом является простой логон-скрипт, привязанный к пользователю, который пишет своё имя в текстовый файл имя_компьютера.txt на серверной общей папке. Или наоборот - имя компа в текстовик с именем пользователя.
Вариант получше - имя компа не в текстовый файл, а в свою учётку в AD (если есть домен, конечно).

Error opening HKEY_USERS for \\host »

PsLoggedOn определяет, кто вошел в систему, сканируя ключи в разделе HKEY_USERS
https://learn.microsoft.com/ru-ru/sysinternals/downloads/psloggedon

Полагаю, надо на компьютере //host включить службу "Удалённый реестр" для корректной работы.




© OSzone.net 2001-2012