Назад | Перейти на главную страницу

Есть ли инструмент, похожий на "who" или "w" через командную строку в Windows?

Есть ли способ узнать всех, кто вошел на сервер Windows, из командной строки, не используя что-то вроде cygwin?

Пытаться

WMIC /Node:remotecomputer ComputerSystem Get UserName

Например

WMIC /Node:127.0.0.1 ComputerSystem Get UserName

Больше информации:

who:

qwinsta
query station

w, finger:

quser
query user

Можно написать собственный инструмент, используя WTSEnumerateSessions() и WTSQuerySessionInformation() - очень легко использовать через Python с PyWin32:

import win32ts
protocols = {
    win32ts.WTS_PROTOCOL_TYPE_CONSOLE: "console",
    win32ts.WTS_PROTOCOL_TYPE_ICA: "citrix",
    win32ts.WTS_PROTOCOL_TYPE_RDP: "rdp",
}

## alternatively, hServer = win32ts.WTSOpenServer("hostname")
hServer = win32ts.WTS_CURRENT_SERVER_HANDLE

currentSessId = win32ts.WTSGetActiveConsoleSessionId()
for session in win32ts.WTSEnumerateSessions(hServer):
    sessionId = session["SessionId"]
    session["UserName"] = win32ts.WTSQuerySessionInformation(hServer, sessionId, win32ts.WTSUserName)
    session["WinStationName"] = session["WinStationName"] or "(disconnected)"
    session["Protocol"] = win32ts.WTSQuerySessionInformation(hServer, sessionId, win32ts.WTSClientProtocolType)
    session["ProtocolName"] = protocols.get(session["Protocol"], "unknown")
    print "%(UserName)-20s %(WinStationName)s (%(ProtocolName)s/%(SessionId)d)" % session

Взгляните на инструмент Microsofts Sysinternals PSLoggedOn

введите query user или query user /server:remoteserver для списка пользователей, вошедших в систему. Это также расскажет вам, как они вошли в систему. Это работает на автономных серверах и рабочих станциях, а также на терминальных серверах.