Ir al contenido principal

Windows | Powershell | Cambiar contraseña de todos los usuarios locales administrador en red con AD/DC | Directorio activo

 Cambiar contraseña de todos los usuarios administrador en una red.



1. Primero desde powershell debemos exportar la lista de equipo en red a un  archivo Excel de comas CSV, que estará ubicado en el Disco local D:\computer.csv

Get-ADComputer -Filter * -Property * | Select-Object Name,OperatingSystem,OperatingSystemVersion,ipv4Address | Export-CSV D:\ADcomputerslist.csv -NoTypeInformation -Encoding UTF8

2. Se extraerá y creará una lista de todos los equipos en red, el nombre de equipo o hostname, el sistema operativo, la version y la direccion IPV4 asignada.
            Para realizar el cambio contraseña, solo necesitamos el nombre de equipo o IP:
3. Ahora que tenemos el nombre de equipo o IP, solo debemos crear una lista de los hostname en formato de texto, puedes copiar al bloc de notas o convertir D:\Computers.txt

4. Ahora solo queda ejecutar el siguiente comando en powershell-ISE o crear un archivo cambiarPS.ps1 desde un bloc de notas donde vas apegar lo siguiente:

$computers = Get-Content -path "D:\computers.txt"
$password = Read-Host -prompt "Enter new password for user" -assecurestring
$decodedpassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($password))
foreach ($Computer in $Computers) {
$Computer = $Computer.toupper()
$Isonline = "OFFLINE"
$Status = "SUCCESS"
$StatsError ="Failed"
if((Test-Connection -ComputerName $Computer -count 1 -ErrorAction 0)) {
$Isonline = "ONLINE"
} else { $StatsError= "`t$Computer is OFFLINE" }
 
try {
$account = [ADSI]("WinNT://$Computer/Administrador,user")
$account.psbase.invoke("setpassword",$decodedpassword)
$StatsError="Administrator Password changed successfully"
}
catch {
$status = "FAILED"
$StatsError="$_"
}
 
$obj = New-Object -TypeName PSObject -Property @{
ComputerName = $Computer
IsOnline = $Isonline
PasswordChangeStatus = $Status
DetailedStatus=$StatsError
}
 
$obj | Select ComputerName, IsOnline, PasswordChangeStatus,DetailedStatus
$obj | Export-Csv -Append -Path "D:\Resultado.csv"
}

---------------------------------Resultado-----------




5. Tambien pueden extraer los nombres de usuarios en red y sus cargos:

Get-ADUser -Filter * | Ft Name, UserPrincipalName, Enabled

Equipos:
Get-ADComputer -Filter * | ft Name,SamAccountName,DNSHostName >Computer.txt

Tambien puedes suar lo siguiente:

Restablecimiento de contraseña masivo de Netwrix

Herramienta gratuita que restablece simultáneamente varias contraseñas de usuarios y administradores locales, para que pueda fortalecer la seguridad y automatizar el restablecimiento de contraseñas en sus servidores y computadoras de Windows .

https://www.netwrix.com/local_admin_bulk_password_reset_freeware.html


 

Comentarios