Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
# RAUL UNZUE - ELBLOGDENEGU
# https://www.maquinasvirtuales.eu/powershell-script-para-matar-procesos-windows-enlazados/
# Revisar si existen en el sistema dos procesos java.exe y acslaunch_win-32
# SABER EL USUARIO
$usuario=C:\windows\system32\whoami.exe
# ELIMINAR DOMINIO
$usuariomodificado=$usuario.Substring(5)
# EXTRAER USUARIO, SESION ID Y PROCESOS ASOCIADOS AL USUARIO
Get-Process -IncludeUserName | Select-Object Username,SessionID | Where-Object { $_.UserName -ne $null -and $_.UserName.Equals("NEGU\$usuariomodificado") }
Get-Process -IncludeUserName | Select-Object UserName,SessionId,ProcessName | Where-Object { $_.UserName -ne $null -and $_.UserName.Equals("NEGU\$usuariomodificado") } | Set-Content C:\Users\$usuariomodificado\Desktop\proceso1.txt
Get-Process -IncludeUserName | Select-Object UserName,SessionId,ProcessName | Where-Object { $_.UserName -ne $null -and $_.UserName.Equals("NEGU\$usuariomodificado") } | Set-Content C:\Users\$usuariomodificado\Desktop\proceso2.txt
# BUSCAMOS CADENA DE TEXTO
(Get-Content C:\Users\$usuariomodificado\Desktop\proceso1.txt) | Select-String -Pattern "acslaunch_win-32" | foreach {$_.Matches} | Set-Content C:\Users\$usuariomodificado\Desktop\proceso1.txt
(Get-Content C:\Users\$usuariomodificado\Desktop\proceso2.txt) | Select-String -Pattern "java" | foreach {$_.Matches} | Set-Content C:\Users\$usuariomodificado\Desktop\proceso2.txt
# Limpiamos los espacios en blanco y exportamos a TXT
(Get-Content C:\Users\$usuariomodificado\Desktop\proceso1.txt) | ? {$_.trim() -ne "" } | Set-Content C:\Users\$usuariomodificado\Desktop\proceso1.txt
(Get-Content C:\Users\$usuariomodificado\Desktop\proceso2.txt) | ? {$_.trim() -ne "" } | Set-Content C:\Users\$usuariomodificado\Desktop\proceso2.txt
# PASAMOS RESULTADO A VARIABLE PARA TRATARLO
$sesion=Get-Content C:\Users\elblogdenegu\Desktop\proceso1.txt
$sesion2=Get-Content C:\Users\elblogdenegu\Desktop\proceso2.txt
# MATAMOS PROCESO SI ES NECESARIO
if ($sesion -eq "acslaunch_win-32")
{
#echo "Existe acslaunch_win-32.exe en la sesión de $usuariomodificado, no matamos java"
# LOG
$date=Get-Date
Write-Output "$date - Existe acslaunch_win-32.exe en la sesión de $usuariomodificado, no matamos java" > C:\Scripts\matar-java-as400.log
}
else
{
if ($sesion2 -eq "java")
{
#echo "No existe acslaunch_win-32.exe en la sesión de $usuariomodificado, matamos java.exe"
# LOG
$date=Get-Date
Write-Output "$date - No existe acslaunch_win-32.exe en la sesión de $usuariomodificado, matamos java.exe" > C:\Scripts\matar-java-as400.log
# MATAR PROCESO
Get-Process -Name java | Stop-Process -Force
}
else
{
#echo "No existe java tampoco en la sesión de $usuariomodificado, no matamos procesos"
# LOG
$date=Get-Date
Write-Output "$date - No existe acslaunch_win-32 ni java en la sesión de $usuariomodificado, no matamos procesos" > C:\Scripts\matar-java-as400.log
}
}
# BORRAR FICHEROS
Remove-Item C:\Users\$usuariomodificado\Desktop\proceso1.txt
Remove-Item C:\Users\$usuariomodificado\Desktop\proceso2.txt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment