如果使用端口 636,Powershell AD-GetUser 会失败,但 DirectorySearcher 可以工作

问题描述 投票:0回答:0

我有一个 PowerShell 脚本,可以从 VirtualBox 内托管的 Active Directory 服务器获取用户。

我已将根证书导入计算机的受信任根存储中。我可以使用 389 和 636 (SSL) 使用 JXplorer 连接和查询我的 Active Directory 服务器。

剧本:

Get-ADUser -AuthType 0 -LDAPFilter "(objectClass=user)" -SearchBase "CN=Users,DC=win2022,DC=kcwong,DC=igsl" -Server "WIN-EF20VIM8EIQ.win2022.kcwong.igsl:636" -Credential "Administrator"
# Password is entered correctly in the dialog that pops up

$LDAP = New-Object System.DirectoryServices.DirectoryEntry("LDAP://WIN-EF20VIM8EIQ.win2022.kcwong.igsl:636/CN=Users,DC=win2022,DC=kcwong,DC=igsl", "Administrator", "[Password here]")
$Searcher = New-Object System.DirectoryServices.DirectorySearcher($LDAP)
$Searcher.SearchScope = "Subtree"
$Searcher.Filter = "(objectClass=user)"
$Searcher.FindAll()

当我执行时,结果是:

PS C:\KC\Projects\Fubon Bank\Script> .\LDAPExport.ps1
Get-ADUser : Server instance not found on the given port.
At C:\KC\Projects\Fubon Bank\Script\LDAPExport.ps1:69 char:1
+ Get-ADUser -AuthType 0 -LDAPFilter "(objectClass=user)" -SearchBase " ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Get-ADUser], ArgumentException
    + FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.ArgumentException,Microsoft.ActiveDirectory.Management.Comm
   ands.GetADUser


Path                                                                                                  Properties
----                                                                                                  ----------
LDAP://WIN-EF20VIM8EIQ.win2022.kcwong.igsl:636/CN=Administrator,CN=Users,DC=win2022,DC=kcwong,DC=igsl {logoncount, c...
LDAP://WIN-EF20VIM8EIQ.win2022.kcwong.igsl:636/CN=Guest,CN=Users,DC=win2022,DC=kcwong,DC=igsl         {logoncount, c...
LDAP://WIN-EF20VIM8EIQ.win2022.kcwong.igsl:636/CN=krbtgt,CN=Users,DC=win2022,DC=kcwong,DC=igsl        {logoncount, c...
LDAP://WIN-EF20VIM8EIQ.win2022.kcwong.igsl:636/CN=test1,CN=Users,DC=win2022,DC=kcwong,DC=igsl         {givenname, co...
LDAP://WIN-EF20VIM8EIQ.win2022.kcwong.igsl:636/CN=test2,CN=Users,DC=win2022,DC=kcwong,DC=igsl         {givenname, co...
LDAP://WIN-EF20VIM8EIQ.win2022.kcwong.igsl:636/CN=test10,CN=Users,DC=win2022,DC=kcwong,DC=igsl        {givenname, co...

PS C:\KC\Projects\Fubon Bank\Script>

因此 DirectorySercher 可以工作,但 Get-ADUser 不能。如果我更改为端口 389,Get-ADUser 就可以工作。

我不想使用 DirectoryEntry,因为我似乎无法将 Credential 与它一起使用。我的脚本将在任务计划程序中执行,因此我需要一些方法来保护密码。

StackOverflow 上有一些类似的问题,但大多数都没有答案。在一个问题中,我什至发现有人说 Get-ADUser 不支持 SSL。

powershell ldap-query
© www.soinside.com 2019 - 2024. All rights reserved.