Powershell: Listar consumo de aplicación
Os dejo un script con los comandos para poder ver controlar lo que consume una aplicación en ciertos servidores.
Lo podemos hacer localmente o remotamente, pasando una lista de servers al script. Es necesario que WinRM esté habilitado en los servidores para conectarnos a ellos, o lanzar el script de una máquina que tenga acceso.
SCRIPT POWERSHELL CONSUMO APLICACION EN LOCAL
Si queremos realizar una prueba sobre un simple server y nos podemos conectar a él, o en nuestra propia máquina lo haríamos de la siguiente forma:
1 2 3 4 5 6 7 8 9 10 |
$dia=get-date -Format "dd-MM-yyyy" $hora=Get-Date -Format "HH:mm:ss" $processname= 'lync' $r = get-process -Name $processname -IncludeUserName | Select-Object Name,Username,CPU,WorkingSet,PrivateMemorySize $resultado = $r | Format-Table Name,Username,@{l="CPU)"; e={$_.cpu / 1024}},@{l="Private Memory (MB)"; e={$_.privatememorysize / 1mb}},@{l="Working Set (MB)"; e={$_.WorkingSet / 1mb}} -AutoSize $resultado >> C:\Users\runzue\Documents\SCRIPTS\lync.txt $s = Get-WmiObject Win32_PerfRawData_PerfProc_Process -filter "Name <> '_Total' and Name <> 'Idle'" | Sort PercentProcessorTime -descending | Select -first 5 Name,@{Name="PercentProcessorTime";Expression={($_.PercentProcessorTime/100000/100)/60}},IDProcess,PSComputername | Where-Object { $processname -contains $_.Name} $resultado2 = $s | Format-Table Name, @{n='Mem (MB)';e={'{0:N0}' -f (($_.Group|Measure-Object WorkingSet -Sum).Sum / 1MB)};a='right'} -AutoSize $resultado2 >> C:\Users\runzue\Documents\SCRIPTS\lync.txt Get-Content -Path C:\Users\runzue\Documents\SCRIPTS\lync.txt |
SCRIPT POWERSHELL CONSUMO APLICACION EN REMOTO
Si por el contrario, lo tenemos que hacer sobre una lista de servidores:
GITHUB: https://gist.github.com/raulunzue/b385090313a6bc19d1b36e8eaa2ed751
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
######################### ## RAUL UNZUE - 31102020 ## CONSUMO APP - ELBLOGDENEGU ######################### ## LISTA DE SERVIDORES $listaservers= (Get-Content C:\Users\runzue\Documents\SCRIPTS\servers.txt) ## CREDENCIALES DE CONEXION $passwd = convertto-securestring -AsPlainText -Force -String "NUESTRAPASSWORD" $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist ('DOMINIO\USUARIO',$passwd) ## CONEXION A SERVIDORES foreach ($servidor in $listaservers) { $dia=get-date -Format "dd-MM-yyyy" $hora=Get-Date -Format "HH:mm:ss" $processname= 'lync' $r = Invoke-Command -ComputerName $servidor -Credential $cred -ScriptBlock {get-process -Name $processname -IncludeUserName | Select-Object Name,Username,CPU,WorkingSet,PrivateMemorySize} $s = Invoke-Command -ComputerName $servidor -Credential $cred -ScriptBlock {Get-WmiObject Win32_PerfRawData_PerfProc_Process -filter "Name <> '_Total' and Name <> 'Idle'" | Sort PercentProcessorTime -descending | Select -first 5 Name,@{Name="PercentProcessorTime";Expression={($_.PercentProcessorTime/100000/100)/60}},IDProcess,PSComputername | Where-Object { $processname -contains $_.Name}} if ($r -eq $null) { Write-Output "$dia - $hora - $servidor - Buscando procesos APP Lync" >> C:\Users\runzue\Documents\PROYECTOS\SCRIPTS\lync.txt Write-Output "No podemos conectar con $servidor" >> C:\Users\runzue\Documents\SCRIPTS\lync.txt } else { Write-Output "$dia - $hora - $servidor - Buscando procesos APP Lync" >> C:\Users\runzue\Documents\SCRIPTS\lync.txt $resultado = $r | Format-Table Name,Username,@{l="CPU"; e={$_.cpu / 1024}},@{l="Private Memory (MB)"; e={$_.privatememorysize / 1mb}},@{l="Working Set (MB)"; e={$_.WorkingSet / 1mb}} -AutoSize $resultado2 = $s | Format-Table Name, @{n='Mem (MB)';e={'{0:N0}' -f (($_.Group|Measure-Object WorkingSet -Sum).Sum / 1MB)};a='right'} -AutoSize Write-Output "APP Lync POR USUARIO" >> C:\Users\runzue\Documents\PROYECTOS\SCRIPTS\lync.txt $resultado >> C:\Users\runzue\Documents\SCRIPTS\lync.txt Write-Output "APP Lync POR SERVIDOR" >> C:\Users\runzue\Documents\PROYECTOS\SCRIPTS\lync.txt $resultado2 >> C:\Users\runzue\Documents\SCRIPTS\lync.txt } } Get-Content -Path C:\Users\runzue\Documents\SCRIPTS\lync.txt |
¿Te ha gustado la entrada SÍGUENOS EN TWITTER?
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?