Se me pidió que exportara los detalles de todas las cuentas de servicio en nuestro dominio AD. Parece sencillo, pero a lo largo de los años he descubierto que no existe una forma coherente de controlar las cuentas de servicio. Tenemos una unidad organizativa de cuentas de servicio y un grupo de seguridad AD de cuentas de servicio. Algunas cuentas están en la unidad organizativa pero no en el grupo, algunas en el grupo pero en otra unidad organizativa aleatoria, algunas están en ambas.

Puedo consultar cada uno individualmente:

Grupo

Get-ADGroupMember GROUP.ServiceAccounts

UNED

Get-ADUser -SearchBase "OU=Service Accounts,OU=Accounts,DC=Domain,DC=com" -filter *

¿Cómo puedo combinar ambos en una consulta de PowerShell?

0
Yk84 23 sep. 2019 a las 12:18

1 respuesta

La mejor respuesta

Para combinarlos en una consulta, que probablemente será más ineficaz de lo que ya está haciendo, puede hacer lo siguiente:

$searchBase = '*OU=Service Accounts,OU=Accounts,DC=Domain,DC=com'
$groupDN = 'CN=Group Name,OU=Groups,DC=Domain,DC=com'
Get-Aduser -Filter * |
    Where-Object { $_.DistinguishedName -like $searchBase -or $_.MemberOf -contains $groupDN}

Deberá actualizar $groupDN con el nombre distinguido real de su grupo. Si pudiera encontrar una forma más eficiente de -Filter en DistinguishedName, podría hacerlo más rápido con el parámetro -Filter.


Solución alternativa:

Una forma más eficiente sería combinar sus resultados en una matriz de objetos.

$array1 = Get-ADGroupMember $Group
$array2 = Get-ADUser -SearchBase "OU=Service Accounts,OU=Accounts,DC=Domain,DC=com" -filter *
$array1,$array2
0
AdminOfThings 23 sep. 2019 a las 11:39