recognized - Powershell que pasa variable a-Filtro con comodín
list user active directory powershell (1)
Comportamiento extraño, esta no es LA RESPUESTA, sino un giro alrededor; -LDAPFilter
, uso -LDAPFilter
:
Get-ADUser -LDAPFilter "(userprincipalname=$user*)"
La notación polaca para el filtro es un poco desconcertante al principio, pero aquí, es la forma natural de filtrar utilizando el protocolo subyacente LDAP.
Get-ADUser -LDAPFilter "(|(userprincipalname=$user*)(samAccountName=$user))"
Puede obtener más información sobre esta sintaxis en la Sintaxis del filtro de búsqueda , también puede obtener los filtros correspondientes en About_ActiveDirectory_Filter .
Si realmente quieres usar la sintaxis de -Filter
, puedes hacer lo siguiente (no estoy tan orgulloso de eso):
$userstar = "$user*"
Get-ADUser -Filter {(userprincipalname -like $userstar) -or (samAccountName -like $user)}
Estoy teniendo un momento difícil aquí en este caso y sé que es probablemente un problema de sintaxis simple. No sé cómo pasar esta variable al fragmento de código y hacer que se reconozca correctamente.
$user = "Some.Person"
Esto funciona como yo esperaría.
get-aduser -filter {(Samaccountname -eq $user)}
Esto no lo hace
get-aduser -filter {(userprincipalname -like $user*)}
intentado con variaciones de "$user*"
, "''$user*''"
y algunos otros en vano.
El resultado final se usará de la siguiente manera porque tenemos cuentas AD donde UPN es diferente de UserName y tengo una lista completa de valores formateados de nombre de usuario que necesito confirmar que aún existen con cuentas activas.
Get-ADUser -Filter {(UserPrincipalName -like "$user*") -or (SamAccountName -eq "$user")} -SearchBase "" -Server "MyServer:3268"