diff --git a/scripts/machines.py b/scripts/machines.py
index c2a702667a84a8decba865fc0486e62aa0210c3a..1bf9706dc0c77ac583e9b7c0d3b49a164ae23921 100755
--- a/scripts/machines.py
+++ b/scripts/machines.py
@@ -23,8 +23,9 @@ ATTRIBUTES = [
     "roomNumber",
 ]
 FILTERS = {
-    "laas-mach-group": "gepetto",
-    "laas-mach-type": "PC",
+    "laas-mach-group": ["gepetto"],
+    "laas-mach-type": ["PC"],
+    "laas-mach-origineAchat": ["LAAS", "autre"],  # exclude perso
 }
 
 
@@ -46,7 +47,11 @@ def parse(k, v):
 
 def filter(**filters) -> str:
     """format some filters for LDAP query."""
-    return "".join(f"({k}={v})" for k, v in filters.items())
+
+    def filter_key(k, vs):
+        return "(|" + "".join(f"({k}={v})" for v in vs) + ")"
+
+    return "(&" + "".join(filter_key(k, vs) for k, vs in filters.items()) + ")"
 
 
 def machines_ldap(
@@ -65,7 +70,7 @@ def machines_ldap(
 
     CONN.search(
         "ou=machines,dc=laas,dc=fr",
-        f"(&{filter(**filters)})",
+        filter(**filters),
         attributes=ATTRIBUTES,
     )