Список всех учетных записей пользователей в системе Windows с помощью командной строки

Я хотел бы команду, чтобы вывести список всех учетных записей пользователя в Windows (Виста, 7, и т. д.) система таким образом, что я могу использовать их для итерации с последующей командой.

net user дает мне данные, для которых я ищу, но он добавляет кучу другого мусора, который вызовет трудности при разборе пользователей.

В идеале, я бы получил вывод вроде:

> usercommand
user1
user2
user3
17
задан Twisty Impersonator
01.03.2023 6:19 Количество просмотров материала 3016
Распечатать страницу

4 ответа

если вы хотите, чтобы перебирать пользователей строго в командной строке Windows, Самый простой способ будет сочетание wmic и for петли.

for /f "tokens=* skip=1" %%a in ('wmic UserAccount get Name') do (
    if not "%%a"=="" (
        :: %%a is a variable containing an account name
    )
)

сердце команды wmic UserAccount get Name, который должен распечатать список счетов. Возможно, вы захотите сделать некоторую фильтрацию, как это сделал Каран в своем ответе VBScript, с чем-то вроде wmic UserAccount where "LocalAccount=True" get Name. Любое поле можно фильтровать; для просмотра всех полей используйте wmic UserAccount get (без Name).

for цикл просто парсить вывод команды. Он пропускает первую строку (которая печатает заголовок столбца), а последняя строка пропускается с помощью if команда, так как она пуста. См.for /? для получения дополнительной информации.

6
отвечен Bob 2023-03-02 14:07

для тех, кто здесь просто ищет способ перечислить всех пользователей на вашей машине в командной строке, и не нужен цикл. Просто выполните следующую команду:

net user

и он выведет то, что вам нужно в этом формате

-------------------------------------
User1    User2    User3    User4
The command completed successfully.
11
отвечен trueCamelType 2023-03-02 16:24

этой Windows PowerShell script предоставит список пользователей в табличном формате, это не совсем то, что вы ищете, но не должно быть слишком сложно переформатировать вывод в формат, который вы могли бы использовать для подачи в другую команду.

$computerName = "$env:computername"
$computer = [ADSI]"WinNT://$computerName,computer" 
$computer.psbase.Children | Where-Object { $_.psbase.schemaclassname -eq 'user' } | Format-Table Name, Description -autoSize 
0
отвечен Richard Lucas 2023-03-02 18:41
  1. сохраните следующее имя, например GetLocalUsers.vbs:

    Set colItems = GetObject("winmgmts:\.\root\cimv2").ExecQuery("Select * from Win32_UserAccount Where LocalAccount=True")
    For Each objItem in colItems
        Wscript.Echo objItem.Name
    Next
    
  2. запустить из командной строки следующим образом:

    cscript //NoLogo GetLocalUsers.vbs
    
0
отвечен Karan 2023-03-02 20:58

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх