Estoy tratando de ejecutar un script de PowerShell que consulta para las cuentas que vencen dentro de los 7 días, momento tengoPowershell encontrar usuarios con vencimiento en 7 días
$a = (get-date).AddDays(7) ; Search-ADAccount -AccountExpiring -TimeSpan "7" | Select-Object SamAccountName,AccountExpirationDate | Sort-Object AccountExpirationDate | Export-Csv 7_days.csv
Sin embargo cuando hago el siguiente cambio, parece tener algunos problemas y termino obteniendo un archivo CSV vacío. En última instancia, quiero que la cuenta expire en 7 días, ni más, ni menos.
$a = (get-date).AddDays(7) ; Search-ADAccount -AccountExpiring -TimeSpan "7" | Select-Object SamAccountName,AccountExpirationDate | Sort-Object AccountExpirationDate | Where-Object {$_.AccountExpirationDate -like $a } | Export-Csv 7_days.csv
¿Alguien me puede decir lo que estoy haciendo mal? He intentado mover la pieza "Where-Object {$ _. AccountExpirationDate -like $ a}", o "-match" en lugar de "-like", sin embargo, esto no me ha tenido mucho éxito. ¿Dónde me estoy equivocando con esto?
Esta es la respuesta más cercana hasta el momento, no he conseguido el resultado deseado todavía, pero gracias a su ayuda se ha acercado: $ NeverExpires = 9223372036854775807; $ ExpringIn = (Get-Date) .AddDays (7); foreach ($ item in Get -ADUser -Filter * -Properties accountExpires | Where-Object {$ _. AccountExpires -ne $ NeverExpires -and [datetime] :: FromFileTime ([int64] :: Parse ($ _. AccountExpires)) -lt $ ExpringIn} | select-object SamAccountName, accountExpires) {Write-Host $ item.SamAccountName ([datetime] :: FromFileTime (($ item.accountExpires). "msDS-UserPasswordExpiryTimeComputed"))} – perlnoob
Hola, ¿dónde puedo obtener el cmdlet "Get- ADUser "de? –
Es una parte del módulo AD que forma parte de RSAT (Herramientas de administración remota del servidor). http://www.microsoft.com/en-us/download/details.aspx?id=7887 –