Instalar recursos do Windows 2012 automaticamente

janeiro 5th, 2017 by franklin No comments »

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 by franklin No comments »

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 by franklin No comments »

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 by franklin No comments »
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.

Redirecionamento de IP no Windows

agosto 5th, 2016 by franklin No comments »

Precisei redirecionar tudo que chegava para um IP específico no servidor em uma porta específica para um destino e porta específica. Consegui fazer com o comando abaixo

netsh interface portproxy add v4tov4 listenport=1433 listenaddress=192.168.0.1 connectport=1433 connectaddress=192.168.1.1 protocol=tcp

O comando acima adiciona uma configuração de ipv4 para ipv4 para todos os pacotes TCP que chegarem no IP 192.168.0.1 na porta 1433, e manda tudo para o IP 192.168.1.1 na porta 1433.
Lembrando que para a regra funcionar, é necessário que nenhum serviço esteja executando a porta que está no listenport, no meu caso, precisei parar o serviço do SQL Server, pois ele usa a porta 1433 como padrão.

Mudar trust level com o appcmd para todas as versões do asp.net

junho 28th, 2016 by franklin No comments »

Aprendi que para mudar o trustLevel de somente um site cadastrado no IIS 8 eu poderia usar o comando abaixo

appcmd set config "site.com.br" -section:system.web/trust /level:"Full" /commit:webroot

Ele faz commit no web.config do framework, e a configuração só vale para site.com.br. A configuração fica tipo isso

<location path="site.com.br">
   <system.web>
       <trust level="Full" />
   </system.web>
</location>

O problema que eu tive foi que o comando alterava o trust level somente para a versão 4 do asp.net, mesmo se o site estivesse utilizando a versão 2.0, era a versão 4 que era alterada. Pesquisando descobri que dá pra informar a versão no final do comando, assim é possível configurar tanto para a versão 2 quanto para a versão 4. O exemplo abaixo configura o trust level para full na versão 2.0 do asp.net.

appcmd set config "site.com.br" -section:system.web/trust /level:"Full" /commit:webroot /clr:2

O site que me ajudou com isso foi esse:
http://weblogs.asp.net/owscott/targeting-the-net-framework-version-and-bitness-in-appcmd

Exemplo para pegar valor do teclado no PHP

maio 13th, 2016 by franklin No comments »

É possível buscar um valor do teclado pelo PHP executado como cliente com o exemplo abaixo:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
echo "Tem certeza que quer fazer isso? Digite 'sim' para continuar: ";
$handle = fopen ("php://stdin","r");
$line = fgets($handle);
if(trim($line) != 'sim'){
    echo "SAINDO!\n";
    exit;
}
fclose($handle);
echo "\n"; 
echo "Ok, feito!\n"
?>

Baseado no exemplo do link: http://stackoverflow.com/questions/15322371/php-wait-for-input-from-command-line

Atribuindo máscara de afinidade do processador

abril 22nd, 2016 by franklin No comments »

Nas versões mais recentes do IIS é possível atribuir processadores específicos para uma pool de aplicativo, alterando o valor do atributo Processor Affinity Mask. Para definir quais processadores a pool de aplicativo irá utilizar, podemos seguir a tabela abaixo:

tabelaCpu

Se quiser utilizar as CPUs 0 e 2, então some os valores do último campo, informe o valor 5, se quiser utilizar as CPUs 1, 2 e 3, informe o valor 14.

Mais detalhes explicando no link abaixo:

http://serverfault.com/questions/471105/formula-for-processor-affinity-mask-iis

WSUS não lista computadores na interface gráfica

abril 22nd, 2016 by franklin No comments »

Pesquisei e tentei fazer várias coisas que encontrei, mas o que resolveu mesmo, no meu caso, que uso máquinas virtuais clonadas foi o seguinte:

Remover o valor SusClientId na chave de registro

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\

Reiniciar o serviço do Windows Update no computador cliente.

E executar os comandos abaixo para o servidor WSUS buscar os dados do cliente

wuauclt /resetauthorization /detectnow
wuauclt /reportnow

Como minhas máquinas eram clonadas, todas tinham o mesmo ID em SusClientId, então só uma máquina era listada, fazendo isso um novo ID é atribuído em SusClientId, daí ele é listado no WSUS.

Essa sequência por linha de comando fica:

reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v SusClientId /f
net stop wuauserv
net start wuauserv
wuauclt /resetauthorization /detectnow
wuauclt /reportnow

A luz veio no final do seguinte post http://www.petenetlive.com/KB/Article/0000591

 

Substituir ponto para vírgula somente entre números

abril 5th, 2016 by franklin No comments »

Tinha uma cabela com valores que eram o seguinte

teste.testando.net 732.790714 1015.813971 4040.766429 7655.756678
teste.testando.net 828.688462 1000.075683 4086.318462 6973.874025

Na minha tabela haviam trocentos valores, inviável alterar cada ponto entre os números na mão. No notepad++ dei o replace com preg match de

buscar por
(\d+)\.(\d+)

alterar por
$1,$2

Assim ele alterada os pontos por vírgulas somente entre os números.

Fonte: https://forums.adobe.com/thread/901976?start=0&tstart=0