#windows #powershell
#Windows #powershell
Вопрос:
В Windows 8.1 английская ОС / 64-разрядный КОМПЬЮТЕР, вошедший в систему с учетной записью Microsoft, когда я выполняю приведенную выше команду, формат имени пользователя будет следующим //
В Windows 8.1 Японская ОС / 64-разрядный КОМПЬЮТЕР, вошедший в систему с учетной записью Microsoft, когда я выполняю приведенную выше команду, формат имени пользователя будет следующим /
Примечание: Имя системы: lenovo-PC Доменное имя: LENOVO-PC Имя пользователя: TestAccount
Почему он возвращает другой формат на другом компьютере с окружающей средой?
Моей логике не удается получить токен для текущего зарегистрированного пользователя.
Пожалуйста, помогите кому-нибудь.
Комментарии:
1. Вы ищете текущего пользователя, вошедшего в систему, или текущего пользователя, который запускает ваш экземпляр PowerShell?
2. Покажите нам результат, который вы получаете от запроса при запуске в PS, а также сообщите нам свои ожидания. Если вы используете точку и выбираете только username, то оно будет возвращено только
Domainusername
. Также, если вы выполняете запрос и не указываете какое-либо свойство, он не вернет username; он вернет Domain,Manufacturer,Model, Name, PrimaryOwnerName,TotalPhysicalMemory по умолчанию.username
является расширенным свойством3. ** Текущий пользователь, вошедший в систему **@buttercup
4. @RanadipDutta Если я правильно понял его вопрос, он спрашивает не о том, как это исправить, а о том, почему его экземпляр выводит это. (потому что обычно <имясистемы> не является частью вывода)
5. @buttercup: Ах, я понимаю .. тогда этого не должно быть в SO, потому что это в первую очередь основано на мнении. Кроме того, ответ заключается в том, что он принадлежит к тому же классу dot net .
Ответ №1:
Существует много способов получить имя пользователя. Вот несколько примеров:
(get-wmiobject Win32_ComputerSystem).username
или
[Environment]::UserName
или
whoami
или
[System.Security.Principal.WindowsIdentity]::GetCurrent().Name
Для вашей конкретной проблемы попробуйте следующее:
$domain = $env:UserDomain
$user = $env:UserName
$username = "$domain$user"
Комментарии:
1. Спасибо @buttercup я беспокоился, почему имя ПК извлекается из приведенного выше запроса WMI?
2.
$(Get-WMIObject -class Win32_ComputerSystem | select username).username
и(Get-wmiobject win32_computersystem).username
вернет то же значение.