Barbadinha 😀
echo %NUMBER_OF_PROCESSORS% |
Barbadinha 😀
echo %NUMBER_OF_PROCESSORS% |
O exemplo é para pegar somente o nome da pool de aplicativo do retorno do seguinte comando
C:\>appcmd list apppools /state:started /xml | findstr "APPPOOL.NAME" <APPPOOL APPPOOL.NAME="site1" PipelineMode="Integrated" RuntimeVersion="" state="Started" /> <APPPOOL APPPOOL.NAME="site1" PipelineMode="Integrated" RuntimeVersion="" state="Started" /> <APPPOOL APPPOOL.NAME="site1" PipelineMode="Integrated" RuntimeVersion="v4.0" state="Started" /> |
Para pegarmos somente o nome, podemos usar o seguinte
C:\>FOR /F delims^=^"^ tokens^=2 %i IN ('appcmd list apppools /state:started /xml ^| findstr "APPPOOL.NAME"') DO @ECHO %i site1 site2 site3 |
onde delims é o delimitador que será quebrada a string e tokens é o número da coluna onde está a string que você quer, no nosso caso é a segunda coluna, conforme o primeiro comando deste exemplo, no final nós damos um DO para fazer alguma coisa com a saída do comando, no nosso caso nós só mostramos no prompt, mas poderiamos executar algum comando com base nessa saída, por exemplo.
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 |
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 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
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/
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
Estava com um problema ao conectar as DSNs de mysql ao banco de dados, o seguinte erro esporadicamente ocorria:
1 2 3 | "Error Executing Database Query.Could not create connection to database server. Attempted reconnect 3 times. Giving up."
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
Caused by: java.security.AccessControlException: access denied ("java.net.SocketPermission" "mysql.franklin.com.br" "resolve") |
O problema era que acontecia em alguns momentos, não era sempre. Pesquisando pelo erro achei o link abaixo
http://stackoverflow.com/questions/5489880/tomcat-6-and-mysql-5-x-connection-error-on-ubuntu
Onde o ocorria o mesmo problema mas no Java, como o CF roda com o Java, tentei descobrir como fazia a alteração no ColdFusion.
No servidor onde trabalho tem o sandbox habilitado para o ColdFusion, para resolver isso tive que ir, no administrador do CF, em security > Sandbox Security > path do site que acontecia o problema > Server/Ports
E no campo Server/IP Address, eu informei o IP de conexão com o servidor mysql e a porta que eu uso para conexão, assim a permissão de connect,resolve foi dada, conforme o link do stackoverflow, e tudo funcionou sem problemas 😀
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/
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