Created
June 9, 2020 08:15
-
-
Save raulunzue/f2182a62e500f3de48034ff508f229ea to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Script Raúl Unzué - El Blog de Negu | |
# Buscamos modificar un valor en una clave de registro | |
# relacionando directorio activo con otra base de datos | |
# SABER EL USUARIO | |
$usuario=C:\windows\system32\whoami.exe | |
# ELIMINAR DOMINIO | |
$usuariomodificado=$usuario.Substring(5) | |
# SABER SID DE LISTADO | |
# BUSCAMOS USUARIO EN DA | |
(Get-Content "\\SYNOLOGY\SCRIPTS\usuarios-active-directory.txt") | Select-String -Pattern $usuariomodificado | Set-Content "\\SYNOLOGY\SCRIPTS\sid-$usuariomodificado.txt" | |
# LIMPIAMOS FICHERO | |
(Get-Content "\\SYNOLOGY\SCRIPTS\sid-$usuariomodificado.txt") | ? {$_.trim() -ne "" } | Set-Content "\\SYNOLOGY\SCRIPTS\sid-$usuariomodificado.txt" | |
# ELIMINAMOS VALOR DESDE ; PARA LIMPIAR FICHERO | |
(Get-Content "\\SYNOLOGY\SCRIPTS\sid-$usuariomodificado.txt") -replace ("$usuariomodificado;", "") | Set-Content "\\SYNOLOGY\SCRIPTS\sid-$usuariomodificado.txt" | |
# CARGAMOS VALOR DE LA PRIMERA LINEA POR SI HAY USUARIOS SYS | |
$sid= Get-Content "\\SYNOLOGY\SCRIPTS\sid-$usuariomodificado.txt" | select-object -First 1 | |
# BUSCAR AL USUARIO EN EL LISTADO 1 | |
# Buscamos cadena de texto | |
(Get-Content "\\SYNOLOGY\SCRIPTS\item-screensize-limpio.txt") | Select-String -Pattern $usuariomodificado | Set-Content "\\SYNOLOGY\SCRIPTS\buscar-$usuariomodificado.txt" | |
# LIMPIAMOS FICHERO | |
(Get-Content "\\SYNOLOGY\SCRIPTS\buscar-$usuariomodificado.txt") | ? {$_.trim() -ne "" } | Set-Content "\\SYNOLOGY\SCRIPTS\buscar-$usuariomodificado.txt" | |
# ELIMINAMOS VALOR DESDE ; PARA LIMPIAR FICHERO | |
(Get-Content "\\SYNOLOGY\SCRIPTS\buscar-$usuariomodificado.txt") -replace ("$usuariomodificado;", "") | Set-Content "\\SYNOLOGY\SCRIPTS\buscar-$usuariomodificado.txt" | |
# CARGAMOS VALOR Y ELEGIMOS SOLO EL PRIMER VALOR | |
$ws= Get-Content "\\SYNOLOGY\SCRIPTS\buscar-$usuariomodificado.txt" | select-object -First 1 | |
# COMPROBAMOS SI EXISTE | |
if ($ws) { | |
# BUSCAR VALOR PARA EL USUARIO EN EL LISTADO 2 | |
# Buscamos cadena de texto | |
(Get-Content "\\SYNOLOGY\SCRIPTS\SLTSSNSesionunica.txt") | Select-String -Pattern $ws | Set-Content "\\SYNOLOGY\SCRIPTS\buscar-$usuariomodificado.txt" | |
# LIMPIAMOS FICHERO | |
(Get-Content "\\SYNOLOGY\SCRIPTS\buscar-$usuariomodificado.txt") | ? {$_.trim() -ne "" } | Set-Content "\\SYNOLOGY\SCRIPTS\buscar-$usuariomodificado.txt" | |
# ELIMINAMOS VALOR DESDE ; PARA LIMPIAR FICHERO | |
(Get-Content "\\SYNOLOGY\SCRIPTS\buscar-$usuariomodificado.txt") -replace ("$ws", "") -replace (";", "") | Set-Content "\\SYNOLOGY\SCRIPTS\buscar-$usuariomodificado.txt" | |
# CARGAMOS VALOR PRIMER VALOR QUE ENCUENTRE | |
$valor= Get-Content "\\SYNOLOGY\SCRIPTS\buscar-$usuariomodificado.txt" | select-object -First 1 | |
if ($valor) { | |
# EXTRAER VALOR ANTIGUO EN CLAVE DE REGISTRO | |
# EXPORTAR CLAVE DE REGISTRO A TXT | |
reg export "HKU\$sid\Software\IBM\Client Access Express\CurrentVersion\Environments\Mis conexiones\NEGU\Communication" \\SYNOLOGY\SCRIPTS\export-$usuariomodificado.txt | |
# BUSCAMOS EL VALOR USER ID ORIGINAL | |
(Get-Content "\\SYNOLOGY\SCRIPTS\export-$usuariomodificado.txt") | Select-String -Pattern "User ID" | Set-Content "\\SYNOLOGY\SCRIPTS\buscar2-$usuariomodificado.txt" | |
# LIMPIAMOS LOS VALORES OBTENIDOS | |
(Get-Content "\\SYNOLOGY\SCRIPTS\buscar2-$usuariomodificado.txt") -replace ('"User ID"=', "") | Set-Content "\\SYNOLOGY\SCRIPTS\buscar2-$usuariomodificado.txt" | |
(Get-Content "\\SYNOLOGY\SCRIPTS\buscar2-$usuariomodificado.txt") -replace ('"', "") | Set-Content "\\SYNOLOGY\SCRIPTS\buscar2-$usuariomodificado.txt" | |
(Get-Content "\\SYNOLOGY\SCRIPTS\buscar2-$usuariomodificado.txt") | ? {$_.trim() -ne "" } | Set-Content "\\SYNOLOGY\SCRIPTS\buscar2-$usuariomodificado.txt" | |
# EXTRAEMOS EL VALOR VIEJO | |
$valorold= Get-Content "\\SYNOLOGY\SCRIPTS\buscar2-$usuariomodificado.txt" | |
# IMPORTAR CLAVE DE REGISTRO | |
# UNA VEZ CAMBIADO EL VALOR SE INYECTA | |
Set-ItemProperty -Path "Registry::HKEY_USERS\$sid\Software\IBM\Client Access Express\CurrentVersion\Environments\Mis conexiones\NEGU\Communication" -Name "User ID" -Value $valor -Type String | |
# LOG TEST DE TODOS LOS FICHEROS TRATADOS | |
$hora=Get-Date | |
write-output "Hora: $hora ; UsuarioWindows: $usuariomodificado ; ClaveOriginal: $valorold ; NuevaClave: $valor ; SID: $sid ; SesionUtilizada: $ws" | out-file -Filepath \\SYNOLOGY\SCRIPTS\usuarios.log -append | |
} | |
Else { | |
# LOG TEST DE TODOS LOS FICHEROS TRATADOS | |
$hora=Get-Date | |
write-output "Hora: $hora ; UsuarioWindows: $usuariomodificado ; ClaveOrginal: $valorold ; NuevaClave: No existe valor en SLTSSN.txt ; SID: $sid ; SesionUtilizada: $ws" | out-file -Filepath \\SYNOLOGY\SCRIPTS\usuarios.log -append | |
} | |
} | |
Else { | |
# EXTRAER VALOR ANTIGUO EN CLAVE DE REGISTRO | |
# EXPORTAR CLAVE DE REGISTRO A TXT | |
reg export "HKU\$sid\Software\IBM\Client Access Express\CurrentVersion\Environments\Mis conexiones\NEGU\Communication" \\SYNOLOGY\SCRIPTS\export-$usuariomodificado.txt | |
# BUSCAMOS EL VALOR USER ID ORIGINAL | |
(Get-Content "\\SYNOLOGY\SCRIPTS\export-$usuariomodificado.txt") | Select-String -Pattern "User ID" | Set-Content "\\SYNOLOGY\SCRIPTS\buscar2-$usuariomodificado.txt" | |
# LIMPIAMOS LOS VALORES OBTENIDOS | |
(Get-Content "\\SYNOLOGY\SCRIPTS\buscar2-$usuariomodificado.txt") -replace ('"User ID"=', "") | Set-Content "\\SYNOLOGY\SCRIPTS\buscar2-$usuariomodificado.txt" | |
(Get-Content "\\SYNOLOGY\SCRIPTS\buscar2-$usuariomodificado.txt") -replace ('"', "") | Set-Content "\\SYNOLOGY\SCRIPTS\buscar2-$usuariomodificado.txt" | |
(Get-Content "\\SYNOLOGY\SCRIPTS\buscar2-$usuariomodificado.txt") | ? {$_.trim() -ne "" } | Set-Content "\\SYNOLOGY\SCRIPTS\buscar2-$usuariomodificado.txt" | |
# EXTRAEMOS EL VALOR VIEJO | |
$valorold= Get-Content "\\SYNOLOGY\SCRIPTS\buscar2-$usuariomodificado.txt" | |
# LOG TEST SI NO EXISTE EL USUARIO EN LISTADO 1 | |
$hora=Get-Date | |
write-output "Hora: $hora ; UsuarioWindows: $usuariomodificado ; SID: $sid ; ValorActual: $valorold ; No existe el usuario en el listado UsuarioWindows - FicheroWS y no se modifica el valor" | out-file -Filepath \\SYNOLOGY\SCRIPTS\usuarios.log -append | |
} | |
# BORRAR ITEMS | |
Remove-Item -Path \\SYNOLOGY\SCRIPTS\buscar-$usuariomodificado.txt | |
Remove-Item -Path \\SYNOLOGY\SCRIPTS\buscar2-$usuariomodificado.txt | |
Remove-Item -Path \\SYNOLOGY\SCRIPTS\export-$usuariomodificado.txt | |
Remove-Item -Path \\SYNOLOGY\SCRIPTS\sid-$usuariomodificado.txt |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
https://www.maquinasvirtuales.eu/powershell-script-de-consulta-valores-en-varios-txt/