呼呼,
是否可以禁用对 AD 中其他用户的搜索?在这张图片中,我以“普通”用户身份登录。
这是我们的广告结构的图片。
所以我不希望用户可以通过 powershell (get-aduser) 在用户 OU 中找到另一个用户
那可能吗?
我希望你有足够的信息来理解我的问题。
问候
呼呼,
是否可以禁用对 AD 中其他用户的搜索?在这张图片中,我以“普通”用户身份登录。
这是我们的广告结构的图片。
所以我不希望用户可以通过 powershell (get-aduser) 在用户 OU 中找到另一个用户
那可能吗?
我希望你有足够的信息来理解我的问题。
问候
这在 Windows 中并不是真正的事情。AD 中的默认设置是所有用户都已阅读。其次,AD 中的任何人都可能有一个电子邮件别名,因此通过电子邮件别名/SMTP 地址搜索他们是否使用 PowerShell,并且应该用于电子邮件查找,因此,恕我直言,这是一个徒劳的用例。
在 AD 中查找用户不需要 Get-ADUser。自从 AD 出现以来,就已经能够做到这一点,而且远早于 PowerShell 使用旧脚本方法和 .bat/.cmd/.vbs/WMI/ADSI 或 .Net 直接使用旧脚本方法,这就是在 PowerShell 之前完成的方式曾经是一件事。
如果您没有什么用户使用特定的 cmdlet/cmdlet,那么您需要通过“PowerShell just enough management (JEA)”来实施限制
同样,对于在其环境中禁用(或尝试)PowerShell 的人来说,不需要使用 PowerShell 来扫描并从 AD 获取信息,这是一个有据可查和使用过的东西。
VB脚本:
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
或者
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