![]() |
узнать кто залогинен на компьютере
можно ли какими-нибудь средствами powershell узнать кто сейчас залогинен на определенном компьютере?
|
Код:
Get-WMIObject -Class Win32_ComputerSystem -Computer "Comp1"|Select-Object Username |
ваш способ работает, если вы запускаете с Comp1
если вы с Comp1 будете смотреть Comp2 - поле будет пустым Username ваш способ к сожалению не актуален |
soadm, если так?
Цитата:
P.S. Где-то я видел и более подробное описание требований. |
Код:
(Get-wmiobject -Computername Комп1 win32_computerSystem).Username |
WMI запрос SELECT UserName FROM Win32_ComputerSystem
выдает кто залогинен на компе, если это RDP подключение то нет, если множественные тоже нет Подскажите как показывать всех юзеров. Для примера Advanced IP Scanner, умеет это отображать, причем он отображает учетку пользователя в списке даже если под ней запущен один единственный процесс cbService.exe от кобиан бекап. Каким запросом он это узнает? Нужно решение или на WMI или на PowerShell ,чтобы результат выводился в проге для мониторинга Algorius Net Viewer ![]() |
Удобного и простого способа нет. Advanced IP Scanner показывает непонятно что, это не те, кто сейчас работает в системе.
Можно попробовать так: Код:
Invoke-Command -ComputerName PC1234 -ScriptBlock { try {(quser.exe 2>$null |select -Skip 1).trim() -replace ">" -replace "\s+.*"} catch {exit} } У quser.exe есть ключ /SERVER, который позволяет запрашивать список пользователей удалённо, но этот способ уже давно не работает, т. к. отключен по соображениям безопасности. |
|
AAT666, это вряд ли будет работать из-за
Код:
$SessionList = quser /Server:$Computer 2>$null |
DJ Mogarych,
меня бы устроил результат который выдает Advanced IP Scanner, т.к .он его выдает без всяких танцев с бубнами и без изменений настроек безопасности и т.д. |
Я пробовал получить результат с PsLoggedon.exe от PSTools
результат он выдает выводом в консоль, в строку иконки его не пишет и на том компе где запущен процесс от кобиана, он его не показывает ![]() Код:
C:\Users\User>C:\PSTools\PsLoggedon.exe \\host |
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 - |
Я писал выше о том, что на удалённой машине должен быть разрешён удалённый доступ для PS, и привёл команду для включения.
К тому же, нужно учитывать нюансы работы вашей программы с PS, мне они неизвестны. Если вас устраивает вывод сканера, можно задействовать advanced_ip_scanner_console.exe, сохранять во временный файл и потом читать результат оттуда. Хотя это, конечно, ещё более костыльное решение. Вообще неплохим вариантом является простой логон-скрипт, привязанный к пользователю, который пишет своё имя в текстовый файл имя_компьютера.txt на серверной общей папке. Или наоборот - имя компа в текстовик с именем пользователя. Вариант получше - имя компа не в текстовый файл, а в свою учётку в AD (если есть домен, конечно). Цитата:
Цитата:
Полагаю, надо на компьютере //host включить службу "Удалённый реестр" для корректной работы. |
Время: 02:23. |
Время: 02:23.
© OSzone.net 2001-