Listar los miembros del grupo que no son LVR de Active Directory
Mi amigo Jimmy escribió un par de publicaciones hace un tiempo sobre miembros de grupos que no son LVR (también conocidos como heredados) en grupos de Active Directory en su blog.
Puede encontrar su publicación sobre cómo encontrar miembros que no sean de LVR aquí: http://jimmytheswede.blogspot.se/2013/06/non-lvr-groupmembers-how-to-find-them.html
El otro día, cuando me enfrentaba a una situación similar con un cliente, escribí esta función de PowerShell que utilicé para enumerar todos los miembros de un grupo que no son LVR:
Function Get-NonLVRMembers {
[CmdletBinding(HelpUri = 'http://blog.simonw.se/',
ConfirmImpact='Low')]
[OutputType([String])]
Param(
[Parameter(Mandatory=$true,
ValueFromPipeline=$false)]
[ValidateNotNullOrEmpty()]
[Alias("dc")]
$DomainController,
[Parameter(Mandatory=$true,
ValueFromPipeline=$true)]
[ValidateNotNullOrEmpty()]
[Alias("dn")]
$DistinguishedName
)
# Get meta data by running repadmin
$ObjectMeta = & repadmin.exe /showobjmeta $DomainController "$DistinguishedName"
# Define regular expression to find LEGACY membership
$Regex = 'LEGACYs.*?((CN=.*?,)+?(OU=.*?,)*?(DC=.*?,)*?(DC=.*?))s'
# Match output from repadmin with regular expression and return legacy members distinguished name
([regex]::matches($ObjectMeta, $Regex, @("Multiline"))) | Foreach {
$_.Groups[1].Value
}
}Esto devolverá una lista de cadenas, cada una de las cuales contendrá el nombre distinguido de un miembro del grupo que no es LVR.
Utilicé esta información para generar un informe de cuáles y cuántos miembros de LVR tenía cada grupo.