Posts Tagged ‘automatizacao’

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

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

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