diff -Naur ldap.orig/ldap_user/src/Processor/OrphanProcessor.php ldap/ldap_user/src/Processor/OrphanProcessor.php
--- ldap.orig/ldap_user/src/Processor/OrphanProcessor.php	2025-01-22 05:42:40.000000000 +0100
+++ ldap/ldap_user/src/Processor/OrphanProcessor.php	2025-01-22 10:12:41.230912992 +0100
@@ -113,6 +113,11 @@
   protected $moduleHandler;
 
   /**
+   * @var string?
+   */
+  protected $orphanQueryFilter;
+
+  /**
    * Constructor.
    *
    * @param \Psr\Log\LoggerInterface $logger
@@ -191,6 +196,25 @@
       return;
     }
 
+    $ldapUpdateQuery = \Drupal::config('ldap_user.settings')->get('userUpdateCronQuery');
+    if (
+      \Drupal::moduleHandler()->moduleExists('ldap_query') &&
+      $ldapUpdateQuery != NULL &&
+      $ldapUpdateQuery !== 'none'
+    ) {
+      $queryStorage = $this->entityTypeManager->getStorage('ldap_query_entity');
+      $query = $queryStorage->load($ldapUpdateQuery);
+      if ($query) {
+        $orphanQueryFilter = $query->getFilter();
+        if ($orphanQueryFilter) {
+          if (!str_starts_with($orphanQueryFilter, '(') || !str_ends_with($orphanQueryFilter, ')')) {
+            $orphanQueryFilter = sprintf('(%s)', $orphanQueryFilter);
+          }
+          $this->orphanQueryFilter = $orphanQueryFilter;
+        }
+      }
+    }
+
     $uids = $this->fetchUidsToCheck();
 
     if (!empty($uids)) {
@@ -449,10 +473,15 @@
       $persistentUid = $this->binaryFilter($persistentUid);
     }
 
+    $filter = sprintf('(%s=%s)', $persistentUidProperty, $persistentUid);
+    if ($this->orphanQueryFilter) {
+      $filter = sprintf('(&%s%s)', $filter, $this->orphanQueryFilter);
+    }
+
     $this->ldapUserManager->setServerById($serverId);
     $ldapEntries = $this->ldapUserManager
       ->searchAllBaseDns(
-        sprintf('(%s=%s)', $persistentUidProperty, $persistentUid),
+        $filter,
         [$persistentUidProperty]
       );
     if (!empty($ldapEntries)) {
