⚙️ Паровой сервер ROADIT

Команда Get-LocalUser: паровой реестр локальных учётных записей

Представьте себе грандиозный паровой сервер ROADIT — сложнейший механизм из латунных труб, медных шестерёнок и манометров, каждый из которых показывает давление в той или иной подсистеме. Вы — главный инженер этой махины. И вдруг вам нужно узнать, кто вообще имеет доступ к вашей драгоценной машине: какие учётные записи заведены, активны ли они, кто из них — просто «мёртвый груз» из прошлых эпох, а кто — действующий оператор с полным доступом к котлам и турбинам.

Именно для этого в вашей инструментальной мастерской PowerShell есть команда Get-LocalUser. Это не просто cmdlet — это ваш паровой реестр, манометр, показывающий всех, кто когда-либо получал пропуск в котельную. В мире Windows, где локальные пользователи подобны ключам от разных дверей, эта команда позволяет мгновенно получить полную картину: кто есть кто, кто всё ещё у руля, а чей пропуск давно аннулирован.

Без Get-LocalUser вы бы ползали по лабиринтам панели управления, перебирая шестерёнки вручную. С ней — вы одним движением рычага открываете полный список всех учётных записей на вашем локальном паровом агрегате.



Синтаксис

Команда Get-LocalUser проста, как хорошо отлаженный паровой клапан. У неё два основных способа вызова:

Get-LocalUser [[-Name] <String[]>] [<CommonParameters>]
Get-LocalUser [[-SID] <SecurityIdentifier[]>] [<CommonParameters>]

Первый вариант — искать пользователей по имени (можно с масками), второй — по SID (Security Identifier).

Вызываете без параметров — и паровой движок выдаёт полный список всех локальных пользователей с их статусами.


Основные опции

Вот основные рычаги и вентили, которые вы можете крутить при работе с Get-LocalUser:

ОпцияОписаниеПример
-NameИмя пользователя или массив имён. Поддерживает подстановочные знаки *Get-LocalUser -Name "Admin*"
-SIDИдентификатор безопасности (SID) учётной записиGet-LocalUser -SID S-1-5-21-...-500
-ErrorActionКак обрабатывать ошибки (Stop, Continue, SilentlyContinue и др.)Get-LocalUser -Name "NotFound" -ErrorAction SilentlyContinue
-VerboseПодробный вывод — показывает, что происходит под капотомGet-LocalUser -Verbose
-PipelineVariableПеременная для передачи по конвейеру между командамиGet-LocalUser -PipelineVariable user
-OutVariableСохранить результат в переменнуюGet-LocalUser -OutVariable users
-WarningVariableПерехватить предупреждения в переменнуюGet-LocalUser -WarningVariable warn

💡 Совет

Не забывайте про общие параметры PowerShell: -Verbose особенно полезен, когда паровая машина ведёт себя неожиданно, и вы хотите видеть каждый такт её работы.


Примеры использования

Полный список всех локальных пользователей

Самый простой способ — дёрнуть рычаг без всяких опций. Паровой движок выдаст таблицу со всеми учётными записями:

Get-LocalUser

Вывод будет содержать три колонки: Name (имя), Enabled (активна ли учётка), Description (краткое описание).

Поиск пользователя по имени с маской

Допустим, вы помните, что где-то в системе есть пользователь, имя которого начинается с «Admin», но точное название забыли. Маски — ваши лучшие друзья:

Get-LocalUser -Name "Admin*"

Эта команда найдёт всех, чьё имя начинается с «Admin» — например, Administrator, AdminContoso02 и любых других.

Получение всех свойств пользователя через конвейер

Иногда таблицы с тремя колонками недостаточно. Вам нужно заглянуть в самые глубины парового котла — все свойства учётной записи. Для этого отправляем результат в Select-Object -Property *:

Get-LocalUser | Select-Object -Property *

Или для конкретного пользователя:

Get-LocalUser -Name "Administrator" | Select-Object -Property *

Это покажет всё: FullName, SID, PrincipalSource (откуда пришла учётка — локальная, из Active Directory или Microsoft-аккаунта) и другие технические детали.

⚡ Важно

Свойство PrincipalSource доступно только в Windows 10, Windows Server 2016 и новее. На старых системах оно будет пустым.


Советы и примечания

Совет: создайте алиас для быстрого доступа

Если вы часто заглядываете в список пользователей (а хороший сисадмин делает это регулярно), создайте короткий алиас:

Set-Alias -Name glu -Value Get-LocalUser

Теперь достаточно набрать glu — и список всех локальных пользователей перед вами. Экономия драгоценного времени, как хороший клапан, который не даёт пару уходить впустую.

Важно: 32-битный PowerShell на 64-битной системе

Get-LocalUser живёт в модуле Microsoft.PowerShell.LocalAccounts. Если вы запустили 32-битную версию PowerShell на 64-битной Windows, этот модуль будет недоступен. Запускайте PowerShell в правильной «архитектуре» — и паровой движок заработает как надо.

Совет: проверяйте только активных пользователей

Чтобы быстро увидеть, кто из операторов действительно имеет доступ к системе:

Get-LocalUser | Where-Object { $_.Enabled -eq $true }

Это отфильтрует только активные учётные записи — идеально для аудита безопасности.

Важно: регистр имён не имеет значения

PowerShell не чувствителен к регистру, так что get-localuser -name "administrator" и Get-LocalUser -Name "Administrator" — одно и то же. Но в выводе имена будут показаны в том регистре, в котором они сохранены в системе.



⚙️ Машинное отделение ROADIT благодарит за прочтение.
Больше команд, шпаргалок и обзоров — на roadit.ru и в нашем Телеграф-канале.
📋 Все команды


Оставьте комментарий