
Как получить список активных пользователей и их профили (права доступа) к ОС в Windows Server 2003?
решение1
Это зависит от того, что вы подразумеваете под «активными», «профилями» и «правами доступа». Это также зависит от того, интересуетесь ли вы локальными пользователями или пользователями домена.
Для локальных пользователей можно использовать net user
командную строку.
C:\Users\MyUser>net user
User accounts for \\TestMachine
-------------------------------------------------------------------------------
DefaultAccount defaultuser0 Administrator
JohnSmith SallyJones MyUser
Чтобы определить, активен ли каждый из них (а в данном случае Windows использует слово «активен» в значении «включен» — это не имеет никакого отношения к тому, вошли ли они в систему в данный момент или когда они последний раз взаимодействовали с системой), можно использовать net user <username>
.
C:\Users\MyUser>net user administrator
User name administrator
Full Name administrator
Comment Administrator Account
User's comment
Country/region code 000 (System Default)
Account active No
Account expires Never
[...]
Local Group Memberships *Administrators *Performance Log Users
[...]
The command completed successfully.
И затем вы можете разобрать часть "Account active". Но Powershell делает это проще.
Get-LocalUser
Это даст вам всех локальных пользователей. Чтобы отфильтровать только активных (включенных) пользователей:
Get-LocalUser | Where Enabled -eq "True"
Что касается прав доступа (это не то же самое, что профиль, но я предполагаю, что вы ищете права доступа), команда net user <username>
выдаст вам список локальных групп, членом которых является пользователь. (Но чтобы точно определить, к какому объекту эти группы (или пользователи напрямую) имеют доступ, потребуется перебрать все защищаемые объекты.)
Если вы сможете пояснить, чего именно вы пытаетесь добиться, этот ответ, вероятно, можно будет улучшить.