Это не совсем вещь в Windows собственно. По умолчанию в AD все пользователи читают. Во-вторых, любой в AD может иметь псевдоним электронной почты и, следовательно, искать, где он использует PowerShell или нет по своему псевдониму электронной почты / SMTP-адресу, и должен быть предназначен для поиска электронной почты, так что, IMHO, это бесполезный вариант использования.
Не требуется Get-ADUser, чтобы найти пользователя в AD. Это удалось сделать с тех пор, как появился AD, и задолго до того, как PowerShell когда-либо начал использовать более старые методы сценариев с .bat / .cmd / .vbs / WMI / ADSI или. Net, и именно так это было сделано. до того, как PowerShell был когда-либо вещь.
Если вы не знаете, какой пользователь использует указанные c командлеты / командлеты, тогда вам нужно реализовать ограничения через 'PowerShell просто достаточно администрирования (JEA)'
Опять же, не нужно использовать PowerShell для сканирования и получения информации из AD, хорошо документированной и используемой вещи, для людей, которые отключили (или пытались) PowerShell в своих средах.
Пример: Как получить список всех пользователей в подразделении и его подразделениях?
VBScript:
On Error Resume Next
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject(“ADODB.Connection”)
Set objCommand = CreateObject(“ADODB.Command”)
objConnection.Provider = “ADsDSOObject”
objConnection.Open “Active Directory Provider”
Set objCommand.ActiveConnection = objConnection
objCommand.Properties(“Page Size”) = 1000
objCommand.Properties(“Searchscope”) = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
“SELECT Name FROM ‘LDAP://ou=finance,dc=fabrikam,dc=com’ WHERE objectCategory=’user'”
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
Wscript.Echo objRecordSet.Fields(“Name”).Value
objRecordSet.MoveNext
Loop
или
ADDS PowerShell (CMDLET, ADSI &. Net) для ускорения выполнения ваших задач
ADSI:
<#
PowerShell ADSI(Active Directory Services Interface) commands
1. How to find the users property.
#>
$users1 = [ADSI]"LDAP://cn=copy,cn=users,dc=contoso,dc=com"
$users1 | select *
# 2. How to find the Group members for a Group.
$test = [ADSI]"LDAP://CN=test,CN=Users,DC=contoso,DC=com"
$test.Member |
ForEach-Object {[ADSI]"LDAP://$_"} |
select samccountname, samaccounttype
# 3. Listing an OU Contents
$ou=[ADSI]"LDAP://ou=tech,dc=contoso,dc=com"
$ou.PSBase.Children
$ou.PSBase.Children | Format-Table sAMAccountName