Archive for the ‘Windows’ category

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.

Redirecionamento de IP no Windows

agosto 5th, 2016

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

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

Atribuindo máscara de afinidade do processador

abril 22nd, 2016

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

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

 

Removendo linhas duplicadas no sql server

março 22nd, 2016

Tive um problema que foi assim:
tabela dados

ID DATAINICIO
A001 2011-01-01
A001 2011-01-01
A002 2011-01-01
A002 2011-01-01
A002 2011-01-01
A003 2011-01-01

Tinha várias tabelas com várias linhas duplicadas, como eram muitas, era inviável remover uma a uma na mão. Utilizei o script abaixo para remover os campos duplicados.

WITH cte AS (
  SELECT [%CAMPO1%], [%CAMPO2%], 
     row_number() OVER(PARTITION BY %CAMPO1%, %CAMPO2% ORDER BY %CAMPO1%) AS [rn]
  FROM [%TABELA%]
)
DELETE cte WHERE [rn] &gt; 1

 

No caso em questão, fica

WITH cte AS (
  SELECT [ID], [DATAINICIO], 
     row_number() OVER(PARTITION BY ID, DATAINICIO ORDER BY ID) AS [rn]
  FROM [dados]
)
DELETE cte WHERE [rn] &gt; 1

 

Não precisa informar todos os campos da tabela, no exemplo foi colocado dois somente para ter certeza que mais de um campo tem o mesmo valor, é para ter certeza que a linha toda está realmente duplicada, é possível colocar mais campos também.

Links que me ajudaram:
http://stackoverflow.com/questions/18390574/how-to-delete-duplicate-rows-in-sql-server
http://www.codeproject.com/Articles/157977/Remove-Duplicate-Rows-from-a-Table-in-SQL-Server

Can’t connect to MySQL server on ‘localhost’ (10048).

janeiro 13th, 2016

No windows esse erro acontece porque já existem muitas conexões abertas, então o range default de portas que ele usa, que é entre 1024 a 5000, já estão sendo utilizadas, então o erro acontece.

Para solucionar, é possível aumentar esse range, para que haja mais conexões, para isso adicione uma chave do registro em

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\

com o nome de MaxUserPort com valor 65534 e tipo DWORD, assim o novo limite para utilização das portas serão de 1024 a 65534 portas, se alterar o limite para 10000, será de 1024 a 10000.

OBS: é necessário reiniciar o servidor para que a configuração tenha efeito.
OBS 2: testei a configuração em um servidor Windows 2003 e funcionou.

Baseado nos links abaixo:
https://support.microsoft.com/en-us/kb/956188
https://support.microsoft.com/en-us/kb/196271
http://serverfault.com/questions/98505/cant-connect-to-mysql-server-on-localhost-10048

Problema no upload de imagem no ASP

janeiro 11th, 2016

Especificamente utilizando o componente Scripting.Dictionary, com o método Item desse componente ocorre o erro

Microsoft VBScript runtime error ‘800a01a8’
Object required: ‘UploadRequest.Item(…)’

Pesquisando, vi que o problema ocorre depois da instalação do seguinte KB: KB3104002

A Microsoft já disponibilizou correção para ele. O link explicando o problema é https://support.microsoft.com/en-us/kb/3104002

Para download é https://support.microsoft.com/en-us/kb/3125446

Consegui me nortear através do link http://www.scriptbrasil.com.br/forum/topic/181611-erro-de-tempo-de-execu%C3%A7%C3%A3o-do-microsoft-vbscript-erro-800a01a8/