Member 14047666 Ответов: 1

Команды Power shell, возвращающие неправильный формат имени пользователя


(get-wmiobject Win32_ComputerSystem –ComputerName "<user pc="" name="">").UserName
возвращает имя пользователя в следующем формате
<systemname>/<domainname>/<username>
Приведенный выше формат имени пользователя будет получен, когда я войду в систему с учетными данными Microsoft.

Когда я вошел в систему с локальной учетной записью на ПК, та же команда вернула следующий формат имени пользователя
<domainname>/<username>
Почему он возвращается
<systemname>/<domainname>/<username>
когда я вошел в систему с учетной записью microsoft в Windows 8.1?

Что я уже пробовал:

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

Richard MacCutchan

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

1 Ответов

Рейтинг:
2

Dave Kreskowiak

Это нормально. Powershell возвращает все, что возвращает WMI. WMI возвращает полное значение "домен\имя пользователя". Если вам нужно только имя пользователя, вам придется разобрать эту строку или разделить ее на символ "\" и просто вернуть строку после разделения.

Вы можете сделать это вот так:

(get-wmiobject Win32_ComputerSystem).UserName.Split('\')[1]


Member 14047666

Я беспокоился , почему он возвращается в формате three, добавляя имя ПК .
Из-за входа в учетную запись Microsoft?

Dave Kreskowiak

Нет. Первый элемент-это домен, в котором хранится учетная запись. В среде рабочей станции это будет машина, на которую пользователь вошел в систему, потому что именно там находится база данных учетных записей SAM.

В доменной среде доменное имя будет первой частью имени пользователя.

Member 14047666

Спасибо Дэйв

(get-wmiobject Win32_ComputerSystem).имя пользователя

имя пользователя будет указано в приведенном ниже формате следующим образом.
&ЛТ;имя_системы&ГТ;/&ЛТ;имя_домена&ГТ;/&ЛТ;имя пользователя&ГТ;

Имя системы: lenovo-pc
Доменное имя: LENOVO-PC
Имя Пользователя: TestAccount

Имя пользователя и доменное имя совпадают в системном реестре.

Почему имя ПК извлекается из приведенного выше запроса WMI?
Как он связан с Usernanme?

Dave Kreskowiak

Я никогда не видел, чтобы он возвращался таким образом. Строка кода, которую я опубликовал выше, очень легко модифицируется, чтобы вернуть 3-й элемент в массиве, возвращаемом Split. Просто измените 1 на 2.