Archive for the ‘Windows’ category

Kill em vários processos no sql server usando o sqlcmd

outubro 4th, 2017

Na verdade é um facilitador.
Só precisa alterar a query pra condição que tu quer, no meu caso é pegar todos os PIDs que não são do usuário SA.
O output disso vai para o path informado depois do ‘-o’, que são as linhas prontas com os comandos para dar kill nos processos filtrados, daí é só colar no sql management

sqlcmd -q "Select 'kill ' + cast(spid as varchar(10)) from master..sysprocesses where loginame != 'sa'" -o %homepath%\desktop\killPids.txt

Exemplo do conteúdo do arquivo killPids.txt

 
---------------
kill 1000      
kill 1001      
kill 1002      
kill 1003      
kill 1004      
kill 1005      
kill 1006      
kill 1007      
kill 1008

Tipo comando awk no Windows

setembro 12th, 2017
for /f "tokens=2,5" %i in ('netstat -n -o ^| findstr /v "Active Proto"') do @echo Local Address = %i, PID = %j

Tokens diz quais as colunas que serão printadas do retorno do comando que está dentro do in.
Para a primeira coluna se usa %i, para a segunda %j, caso haja uma terceira, ela será %k

Mais detalhes com o comando

for /?

Link que me ajudou: https://superuser.com/questions/524822/awk-equivalent-functionality-on-windows

Apagar arquivos antigos e diretórios vazios com powershell

setembro 5th, 2017

Apagar arquivos com mais de 31 dias
Substitua %diretorio% pelo diretório que deseja apagar o conteúdo antigo

Get-ChildItem %diretorio% -recurse | Where {!$_.PSIsContainer -and $_.LastWriteTime -lt (get-date).AddDays(-31)} | Remove-Item -whatif

Apagar diretórios vazios
Substitua %diretorio% pelo diretório que deseja apagar os diretórios vazios

Get-ChildItem %diretorio% -recurse | Where {$_.PSIsContainer -and @(Get-ChildItem -Lit $_.Fullname -r | Where {!$_.PSIsContainer}).Length -eq 0} |Remove-Item -recurse -whatif

Lembrando que o parâmetro -whatif no final simula o que aconteceria se o comando fosse realmente executado. Para ele ser realmente executado, remova o -whatif do final

Referência: https://stackoverflow.com/questions/1575493/how-to-delete-empty-subfolders-with-powershell

Reciclar todas as pools de aplicativos do IIS com um comando

junho 26th, 2017

Ele pega o resultado do primeiro comando e manda pro segundo

appcmd list apppools /state:started /xml | appcmd recycle apppool /in

Créditos: http://adicodes.com/powershell-script-recycle-all-application-pools/

Pegar espaço utilizado de um disco através do PowerShell

maio 30th, 2017

No powershell é só executar o comando abaixo

1
Get-PSDrive C | Select {$_.Used / 1GB}

Para chamar o powershell no prompt command do Windows, então execute o comando abaixo

1
powershell -command "Get-PSDrive C | Select {$_.Used / 1GB}"

Lembrando que o C, no comando, é a unidade C, se tirar ele aparece de todos os discos

Tipo nmap com o PowerShell

janeiro 18th, 2017

Precisava verificar IPs de um range para saber se estavam em uso, no Linux o serviço é bem fazer de se fazer, usando nmap -v -sP 192.168.0.0/24 se descobre fácil. No Windows eu dei uma pesquisada e achei o System.Net.Networkinformation.Ping que me ajudou bastante. O comando ficou assim

$ping = New-Object System.Net.Networkinformation.Ping
1..254 | % { $ping.send("192.168.100.$_") | select address, status | where status -eq 'Success'}

Resumindo é um foreach de 1 a 254 que vai testando o IP.

Baseado nas informações do seguinte link:
http://www.thomasmaurer.ch/2011/11/powershell-ping-ip-range/

Instalar recursos do Windows 2012 automaticamente

janeiro 5th, 2017

Meu cenário era o seguinte: eu tinha um servidor web com todas as features instaladas, tudo pronto, mas precisava criar um servidor com os mesmos recursos em outro lugar, o que fiz para agilizar o processo e para depois automatizar foi o seguinte. Peguei um servidor que eu já tinha pronto e exportei a lista das features já instaladas, fiz isso com o seguinte comando no powershell.

Get-WindowsFeature | ? { $_.Installed } | Select Name | ForEach-Object { $_.Name } | Out-File .\Features.txt

Traduzindo a linha: pega o nome de todas os recursos da máquina que estejam instalados e joga cada nome em uma linha dentro do arquivo Features.txt

Com esse .txt, copiei para o servidor recém instalado, abri o powershell e executei o seguinte comando

$(Get-Content .\Features.txt) | Add-WindowsFeature

Daí é só esperar ser tudo instalado :D, me poupou bastante tempo esse processo.
Ah, uma coisa, a máquina deve ter conexão com a internet para concluir a instalação com sucesso.

Link base: Importing and Exporting Windows Features with PowerShell

Configurar o TTL no ColdFusion

novembro 10th, 2016

Estava com problema para enviar e-mail no ColdFusion 9, os logs de envio do CF me diziam que não era possível conectar no host que eu utilizava, no meu servidor o host que eu utilizava respondia corretamente, inclusive a conexão por telnet tinha sucesso, mas no CF não.

Descobri que o IP do host tinha sido alterado, e que a JVM que o ColdFusion usa um sistema de cache próprio, que não tem vinculo com o sistema operacional, então reiniciei o servidor do ColdFusion para que o cache fosse limpo, o host voltou a funcionar.

Pesquisando mais, descobri que a configuração padrão é ter o cache com tempo de vida infinito, alterei a configuração padrão para que o TTL tivesse o tempo de uma hora, o arquivo que alterei foi

{ColdFusion_dir}/lib/security/java.security

Alterei a linha

networkaddress.cache.ttl=-1

para

networkaddress.cache.ttl=3600

O valor é em segundos.

O link abaixo me ajudou a resolver esta situação

CFMX and DNS caching

Substituir string em arquivo com PowerShell

setembro 14th, 2016

Para dar replace em uma determinada string dentro de um arquivo no powershell, o comando é o seguinte

PS C:\> (Get-Content %caminhoDoArquivo%).Replace('%stringDeEntrada%', '%stringDeSaida%') | Set-Content %caminhoDoArquivo%

O comando lê o conteúdo do arquivo para substituir o conteúdo de entrada pelo conteúdo de saída, e então grava o conteúdo novo no arquivo informado.

Pegar tamanho das bases no sql server

agosto 15th, 2016
EXEC sp_MSforeachdb 'use ? exec sp_spaceused'

sp_spaceused é o cara que ve as informações de cada base, mas se rodar só ele, vai aparecer as informações para a base que está no contexto, o sp_MSforeachdb faz um foreach nas bases e vai rodando o sp_spaceused para cada uma, o “use ?” vai alterando as bases que o sp_MSforeachdb buscou.