Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] узнать кто залогинен на компьютере (http://forum.oszone.net/showthread.php?t=178380)

Bint 17-06-2010 03:41 1435774

узнать кто залогинен на компьютере
 
можно ли какими-нибудь средствами powershell узнать кто сейчас залогинен на определенном компьютере?

amel27 17-06-2010 04:50 1435795

Код:

Get-WMIObject -Class Win32_ComputerSystem -Computer "Comp1"|Select-Object Username

soadm 18-07-2011 17:14 1715088

ваш способ работает, если вы запускаете с Comp1
если вы с Comp1 будете смотреть Comp2 - поле будет пустым Username
ваш способ к сожалению не актуален

Iska 19-07-2011 04:06 1715357

soadm, если так?
Цитата:

Цитата shs
Принимать же значение пусто он может, если на опрашиваемом компьютере никто не залогонен, либо произошла ошибка опроса, или, если пользователь, в контексте которого работает скрипт, не обладает правами локадмина на опрашиваемом компьютере.

Источник.

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

Luka666 31-10-2016 14:38 2683357

Код:

(Get-wmiobject -Computername Комп1 win32_computerSystem).Username
Это есле с другого компа.

Maza11 10-11-2022 20:43 2996149

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

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

Нужно решение или на WMI или на PowerShell ,чтобы результат выводился в проге для мониторинга Algorius Net Viewer

DJ Mogarych 11-11-2022 09:57 2996180

Удобного и простого способа нет. 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 2996181

Get Logged In Users Using Powershell

DJ Mogarych 11-11-2022 10:09 2996183

AAT666, это вряд ли будет работать из-за
Код:

$SessionList = quser /Server:$Computer 2>$null
Во всяком случае, работать будет далеко не везде, скорее на старых ОС.

Maza11 11-11-2022 13:42 2996202

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

Maza11 11-11-2022 14:03 2996205

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


Код:

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 2996213

DJ Mogarych,
это если с программы

Код:

Выполнение команды остановлено, так как привилегированной переменной "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 2996216

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

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

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

Цитата:

Цитата Maza11
Error opening HKEY_USERS for \\host »

Цитата:

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

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


Время: 02:23.

Время: 02:23.
© OSzone.net 2001-