Private/GetComputerObjectsInLDAP.ps1
function GetComputerObjectsInLDAP { [CmdletBinding()] Param() # Below $LDAPInfo Output is PSCustomObject with properties: DirectoryEntryInfo, LDAPBaseUri, # GlobalCatalogConfigured3268, GlobalCatalogConfiguredForSSL3269, Configured389, ConfiguredForSSL636, # PortsThatWork try { $DomainControllerInfo = GetDomainController -ErrorAction Stop $LDAPInfo = TestLDAP -ADServerHostNameOrIP $DomainControllerInfo.PrimaryDomainController -ErrorAction Stop if (!$DomainControllerInfo) {throw "Problem with GetDomainController function! Halting!"} if (!$LDAPInfo) {throw "Problem with TestLDAP function! Halting!"} } catch { Write-Error $_ $global:FunctionResult = "1" return } if (!$LDAPInfo.PortsThatWork) { Write-Error "Unable to access LDAP on $($DomainControllerInfo.PrimaryDomainController)! Halting!" $global:FunctionResult = "1" return } if ($LDAPInfo.PortsThatWork -contains "389") { $LDAPUri = $LDAPInfo.LDAPBaseUri + ":389" } elseif ($LDAPInfo.PortsThatWork -contains "3268") { $LDAPUri = $LDAPInfo.LDAPBaseUri + ":3268" } elseif ($LDAPInfo.PortsThatWork -contains "636") { $LDAPUri = $LDAPInfo.LDAPBaseUri + ":636" } elseif ($LDAPInfo.PortsThatWork -contains "3269") { $LDAPUri = $LDAPInfo.LDAPBaseUri + ":3269" } <# $LDAPSearchRoot = [System.DirectoryServices.DirectoryEntry]::new($LDAPUri) $LDAPSearcher = [System.DirectoryServices.DirectorySearcher]::new($LDAPSearchRoot) $LDAPSearcher.Filter = "(&(objectCategory=Group))" $LDAPSearcher.SizeLimit = 0 $LDAPSearcher.PageSize = 250 $GroupObjectsInLDAP = $LDAPSearcher.FindAll() | foreach {$_.GetDirectoryEntry()} #> $LDAPSearchRoot = [System.DirectoryServices.DirectoryEntry]::new($LDAPUri) $LDAPSearcher = [System.DirectoryServices.DirectorySearcher]::new($LDAPSearchRoot) $LDAPSearcher.Filter = "(objectClass=computer)" $LDAPSearcher.SizeLimit = 0 $LDAPSearcher.PageSize = 250 $ComputerObjectsInLDAP = $LDAPSearcher.FindAll() | foreach {$_.GetDirectoryEntry()} <# $null = $LDAPSearcher.PropertiesToLoad.Add("name") [System.Collections.ArrayList]$ServerList = $($LDAPSearcher.FindAll().Properties.GetEnumerator()).name $null = $ServerList.Insert(0,"Please Select a Server") #> $ComputerObjectsInLDAP } |