Команда Powershell для поиска списка пользователей, которым разрешено входить на компьютер - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь найти способ использования powershell для отображения списка пользователей, которым назначены права входа в систему для компьютера. Но я не могу найти синтаксис, если это вообще возможно. Любая помощь с благодарностью.

1 Ответ

1 голос
/ 18 октября 2019

Если вы ищете запрос для ADUser объектов, для которых регистрация на рабочей станции явно ограничена, вы можете запросить значения в атрибуте userWorkstations. Так как этот атрибут представляет собой строку со значениями, разделенными запятыми, вам необходимо будет правильно манипулировать этими данными перед выполнением сравнения.

$computer = 'computername'
Get-ADUser -Filter "userWorkstations -like '*$computer*'" -Properties userWorkstations |
    Where-Object { ($_.userWorkstations -split ',') -contains $computer }

Вы не привязаны к этому решению, поскольку существует несколько способов полученияданные, которые вы хотите. Я решил использовать -split ',', потому что это создаст массив, в котором оператор -contains может найти точное совпадение.

Использование оператора -like в -Filter позволяет использовать подстановочный знак (*)соответствия. -eq будет работать только в том случае, если конкретная рабочая станция - единственная, указанная в атрибуте userWorkstations. Вы потенциально можете отказаться от -like все вместе и получить тот же результат. Это то, что стоит протестировать, поскольку производительность может отличаться [1] .

Where-Object здесь обеспечивает точное соответствие. Поскольку параметр AD -Filter не поддерживает операторы включения, вы должны полагаться на -like с символами подстановки для строк с разделителями. Поскольку -like 'system1*' также будет соответствовать system12334, мы должны убедиться, что мы возвращаем только желаемое точное совпадение.


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


[1] Мое личное ограниченное тестирование показало использование-Filter с оператором -like сократило время моего запроса на 59%.

...