При работе с системами Windows может быть важно знать, кто в данный момент вошёл в систему. Независимо от того, занимаетесь ли вы устранением неполадок, управлением сеансами пользователей или автоматизацией задач, получение информации о текущем пользователе является ценной частью данных. В этой статье мы рассмотрим различные методы с использованием PowerShell и инструментария управления Windows (WMI) для выполнения этой задачи. Итак, давайте углубимся и выясним, кто вошел в систему!
Метод 1: командлет Get-CimInstance PowerShell
PowerShell предоставляет удобный командлет Get-CimInstance, который позволяет запрашивать системную информацию с помощью WMI. Чтобы получить текущего пользователя, вы можете использовать следующую однострочную строку:
Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty UserName
Эта команда запрашивает класс Win32_ComputerSystemи выбирает свойство UserNameдля отображения имени вошедшего в систему пользователя.
Метод 2: язык запросов WMI (WQL)
Другой подход заключается в использовании языка запросов WMI (WQL) непосредственно для запроса класса Win32_ComputerSystem. Вот пример использования PowerShell:
$wmiQuery = "SELECT UserName FROM Win32_ComputerSystem"
$currentUser = Get-WmiObject -Query $wmiQuery | Select-Object -ExpandProperty UserName
В этом методе мы создаем WQL-запрос и передаем его командлету Get-WmiObject. Затем результат фильтруется для извлечения свойства UserName.
Метод 3. Использование.NET Framework
Если вы предпочитаете более программный подход, вы можете использовать пространство имен System.Security.Principal.NET Framework. Вот пример использования C#:
using System.Security.Principal;
var currentUser = WindowsIdentity.GetCurrent().Name;
Этот код получает текущий идентификатор Windows с помощью метода WindowsIdentity.GetCurrent()и извлекает имя пользователя с помощью свойства Name.
Метод 4: переменные среды
Windows предоставляет переменную среды под названием %USERNAME%, в которой хранится имя текущего пользователя. Вы можете получить к нему доступ с помощью PowerShell или командной строки:
$currentUser = $env:USERNAME
Этот метод прост и не требует каких-либо дополнительных команд или модулей.
Знание того, кто вошел в систему, имеет решающее значение при управлении системами Windows. В этой статье мы рассмотрели различные методы получения информации о текущем пользователе. Мы рассмотрели такие командлеты PowerShell, как Get-CimInstanceи Get-WmiObject, прямые запросы WQL, пространство имен System.Security.Principal.NET Framework и использование переменных среды. Эти методы дают вам гибкость в зависимости от ваших требований и предпочтений сценариев. Теперь в вашем наборе инструментов есть несколько способов получить информацию о текущем вошедшем в систему пользователе на компьютере с Windows.