Criando Application Pools, Web sites e Web Applications no IIS usando Powershell

Olá pessoal,

Quem acompanha o blog sabe que eu procuro transformar todas as atividades que fazemos em modo gráfico em linha de comando, de forma a automatizar o que for possível para facilitar nosso trabalho.

Com relação ao Internet Information Services (IIS) não é diferente. Podemos codificar várias atividades, vou listar abaixo algumas utilizando Powershell. Esses comandos foram executados em um servidor com Windows Server 2016 e IIS v10.

Criar um Application Pool (Substitua “NOME_DO_APPLICATION_POOL” pelo nome que você desejar)

New-WebAppPool -name “NOME_DO_APPLICATION_POOL” -force
$appPool = Get-Item “IIS:\AppPools\NOME_DO_APPLICATION_POOL”
$appPool.processModel.identityType = “ApplicationPoolIdentity”

$appPool.enable32BitAppOnWin64 = 0
$appPool.managedRuntimeVersion = ‘v4.0’
$appPool.autoStart = ‘true’
$appPool | Set-Item

Criar um Website (Substitua “NOME_DO_SITE”, “DIRETORIO_DO_SITE” “empresa.com” e “NOME_DO_APPLICATION_POOL” pelos nomes correspondentes ao seu ambiente)

New-WebSite -name “NOME_DO_SITE” -PhysicalPath C:\inetpub\DIRETORIO_DO_SITE -HostHeader “empresa.com” -ApplicationPool “NOME_DO_APPLICATION_POOL” -force

Criar uma Web Application dentro do Default Web Site (Substitua “NOME_DO_WEB_APPLICATION“, “DIRETORIO_DO_SITE” e “NOME_DO_APPLICATION_POOL” pelos nomes correspondentes ao seu ambiente)

New-WebApplication -Name “NOME_DO_WEB_APPLICATION” -Site “Default Web Site” -PhysicalPath C:\inetpub\DIRETORIO_DO_SITE -ApplicationPool ” NOME_DO_APPLICATION_POOL

Procurem sempre automatizar o que puderem, assim sobra mais tempo para estudos e outros aprimoramentos.

Até a próxima!

Verificando a versão do IIS utilizando PowerShell

Olá pessoal,

Para verificar a versão do Internet Information Services (IIS) que está instalado no seu Windows Server utilizando Powershell execute o seguinte comando:

get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\  | select setupstring,versionstring

Para obter a versão com informações detalhadas executem:

Get-ItemProperty -Path registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\ | Select-Object

Até a próxima!

Adicionando máquinas em um domínio Active Directory utilizando PowerShell

Olá pessoal,

Podemos automatizar a inclusão de computadores e servidores Windows em um domínio com Active Directory utilizando Powershell.

O código é bem simples e fácil, devemos declarar o nome do domínio, a senha do usuário que fará a inclusão e o nome do usuário, basta abrir o PowerShell na máquina que deve ser incluída no domínio e executar o código abaixo:

$domain = “nome.dominio
$password = “senha_do_usuário_que_fará_a_inclusão” | ConvertTo-SecureString -asPlainText -Force
$username = “$domain\nome_do_usuário
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
Add-Computer -DomainName $domain -Credential $credential

Se o comando for executado com sucesso, será exibida uma mensagem informando que este computador/servidor deverá ser reiniciado para validar as alterações realizadas, ou seja a inclusão da máquina do domínio.

Até a próxima!

Ambientes legados – Erro Código 80072EFE no Windows Update em Servidores com Windows Server 2008 R2

Olá pessoal,

A Dica de hoje vai para quem ainda possui ambientes legados com Servidores baseados no Windows Server 2008 R2 Ao tentar instalar as atualizações via Windows Update em um Servidor com Windows Server 2008 R2 Ultimate 64 Bits estava ocorrendo o erro de Code 80072EFE Windows Update encountered an unknown error.

A correção deste problema é bem simples basta instalar o pacote referente ao KB3138612, disponível no site Catálogo Microsoft Update. Faça o download do pacote correspondente à sua versão do Windows Server 2008 R2, instale e reinicie o Servidor. Após isso basta fazer o Windows Update novamente clicando na opção “Check online for updates from Windows Update” que funcionará normalmente.

Link direto para download do KB3138612 – http://www.catalog.update.microsoft.com/Search.aspx?q=KB3138612

Até a próxima!

Hyper-V: 3 comandos essenciais via PowerShell

Olá pessoal,

hoje deixo uma dica rápida de 3 comandos essenciais em powershell para quem gerencia servidores Windows Server com Hyper-V.

Comando 1 – Obter a lista de máquinas virtuais suas informações e status:

Get-VM

Comando 2 – Ligar uma máquina virtual:

Start-VM -Name ‘Nome_da_Maquina_Virtual’

Comando 3 – Desligar uma máquina virtual:

Stop-VM -Name ‘Nome_da_Maquina_Virtual’

Caso vocês tenham a necessidade de desligar todas as máquinas virtuais de um host ao mesmo tempo, eu deixo também um post que publiquei no ano passado com o script que faz exatamente isso. Esse mesmo script também pode ser encontrado no meu Github.

Até a próxima!

Instalação do Hyper-V no Windows Server 2019 via PowerShell

Olá pessoal,

para habilitar o Hyper-V em um servidor com Windows Server 2019 via linha de comando, abra o PowerShell execute o comando abaixo:

Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart

Após a instalação da role Hyper-V, o servidor será reiniciado.

Para verificar se a instalação ocorreu com sucesso, você pode executar o comando abaixo e verificar todas as funções e recursos que estão instalados no seu servidor:

Get-WindowsFeature -ComputerName

Até a próxima!

Ativando Servidores com Windows Server 2019 via prompt de comando

Olá pessoal,

Vamos demonstrar neste post como realizar a ativação de um servidor com Windows Server 2019 via prompt de comando (cmd).

Primeiramente vamos aplicar a chave de produto no servidor, para isso abra o Prompt de comando como Administrador (elevado) e execute o comando abaixo, substituindo xxxxx-xxxx-xxxx-xxxx-xxxx pela sua chave de produto.

slmgr.vbs /ipk xxxxx-xxxx-xxxx-xxxx-xxxx

Deve ser exibida a mensagem “Chave do produto (Product Key) xxxxx-xxxx-xxxx-xxxx-xxxx instalada com êxito”

Agora com a chave instalada, vamos ativar o sistema utilizando o comando abaixo:

slmgr.vbs /ato

Caso seja exibida a mensagem “Produto ativado com êxito” a operação foi realizada com sucesso.

Para confirmar o status da ativação execute o comando:

slmgr.vbs /dlv

Será exibida a tela abaixo com as informações sobre o sistema e sua ativação. Veja em Status da Licença. Tem que estar como “Licenciado“. Se houver algo diferente o procedimento não funcionou.

Você também pode verificar o status do sistema acessando via Painel de Controle – Sistema e Segurança – Sistema. Vejam abaixo:

Até a próxima!

Kaspersky Endpoint Security Cloud – Sincronismo manual do Endpoint Windows com a Cloud

Olá pessoal,

A dica de hoje vai para quem utiliza o Antivirus gerenciado Kaspersky Endpoint Security Cloud.

Ao alterar uma politica de segurança atribuida a um equipamento ou vários, você precisa esperar o ciclo de sincronismo com a Cloud para que essas novas configurações sejam aplicadas. Por sua vez, no Endpoint em uma estação de trabalho/servidor Windows, não existe a opção para “forçar um sincronismo” com a Cloud.

Mas é possível fazer isso através de linha de comando, para isso na estação de trabalho ou servidor Windows, execute o prompt de comando elevado (com privilégios de administrador) e faça os passos abaixo:

1 – Acesse o diretório do agente de rede (%ProgramFiles(x86)%\Kaspersky Lab\NetworkAgent)
2 – Execute o comando: klnagchk.exe -sendhb

Desta forma conseguimos manualmente sincronizar as políticas definidas na Console Cloud da Kaspersky com o Endpoint instalado em uma máquina Windows.

Até a próxima!

Instalação do Hyper-V no Windows Server 2016 via PowerShell

Olé pessoal,

para habilitar o Hyper-V em um servidor com Windows Server 201 via linha de comando, abra o PowerShell execute o comando abaixo:

Install-WindowsFeature -Name Hyper-V -ComputerName NOME_DO_SERVIDOR -IncludeManagementTools -Restart

Substitua “NOME_DO_SERVIDOR” pelo hostname do seu servidor.

Após a instalação da role Hyper-V, o servidor será reiniciado.

Para verificar se a instalação ocorreu com sucesso, você pode executar o comando abaixo e verificar todas as funções e recursos que estão instalados no seu servidor:

Get-WindowsFeature -ComputerName NOME_DO_SERVIDOR

Até a próxima!

Converter um servidor Window Server 2012 R2 Evaluation para Standard ou Datacenter

Olá pessoal,

neste final de semana eu precisei converter uma instalação do Windows Server 2012 R2 Evaluation em um servidor, ou seja, versão de testes (180 dias), para a versão Datacenter. O procedimento é bem simples e não pode ser realizado em servidores Domain Controllers. Neste caso, instale um novo servidor, sincronize o AD, transfira as FSMOs e despromova o servidor.
Considerando que você está utilizando uma conta com privilégios administrativos no servidor, execute os comandos abaixo com o prompt elevado:

Para converter de 2012 R2 Evaluation para Datacenter:
DISM /online /Set-Edition:ServerDatacenter /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula
Em /Set-Edition, determine qual a versão do Windows Server você possui licença válida (ServerStandard ou ServerDatacenter) em /ProductKey, substitua XXXXX-XXXXX-XXXXX-XXXXX-XXXXX pela sua licença válida. O procedimento vai exigir que o servidor seja reiniciado.

Após isso, para verificar se a conversão teve sucesso, execute o comando abaixo:
DISM /online /Get-CurrentEdition

Até a próxima!

Listando as atualizações instaladas em PCs e Servidores Windows via PowerShell

Olá pessoal,

Dica rápida para que precisa listar e documentar as atualizações instaladas via Windows Update ou manualmente em PCs e Servidores com Windows instalado.

Primeiramente execute o PowerShell como Administrador. Feito isso podemos utilizar os comandos:

wmic qfe list

Abaixo segue outra opção de comando:

get-wmiobject -class win32_quickfixengineering

Até a próxima!

Gerenciamento de pacotes no Windows com Chocolatey

CHOCOLATEY

Olá pessoal,

Poder automatizar tarefas, simplificando a instalação e distribuição de softwares é o que todos queremos certo? Imaginem a possibilidade de redução do esforço e a repetição na preparação e entrega e gerência de aplicativos em desktops e servidores com Windows. Como podemos fazer isso de uma forma fácil? Através de politicas de grupo (GPOs) ou softwares de terceiros?

Não!

Como fazer então? Utilizando o Chocolatey (https://chocolatey.org/)

Mas o que seria o Chocolatey?

Um poderoso e simples gerenciador de pacotes, utilizado via Powershell e baseado nas novas técnicas de automação (DevOps), trazendo para o Windows uma experiência similar aos gerenciadores baseados em Linux.

Basicamente com o Chocolatey podemos automatizar a instalação de aplicativos através de pacotes tanto para um único computador em larga escala para vários servidores, de uma forma MUITO simples e rápida. Todos o quanto é custoso realizar instalações de software de forma tradicional.

O segredo está nos pacotes. A partir do momento que temos um gerenciador, a instalação de aplicativos se torna bem mais fácil.

Como funciona?

O próprio Chocolatey possui seu repositório de pacotes, com muitos aplicativos já testados neste formato. Neste momento são mais de 7000 pacotes disponíveis. Também é possível criar um repositório na sua rede interna, onde todos os pacotes serão baixados e as instalações serão ainda mais rápidas.

O Chocolatey é gratuito?

Existe a versão OpenSource, gratuita, que no meu entender atende na maioria dos casos, porém também existem versões pagas, com foco mais corporativo e com suporte. ASs diferenças entre as versões podem ser verificadas aqui.

Em quais versões do Windows o Chocolatey funciona? Quais os requisitos?

Windows Client – do Windows 7 em diante
Windows Server – Windows 2003 em diante, exceto o  Windows Nano Server
Windows PowerShell v2 ou mais atual
.NET Framework 4.x

Como instalar o Chocolatey?

Abra uma sessão do PowerShell como Administrador e execute o comando abaixo:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))

CHOCOLATEY2

Este comando da um Bypass na necessidade de habilitar a execução de scripts no PowerShell.

Se a instalação ocorrer com sucesso podemos já instalar pacotes.

Como instalar pacotes?

Primeiramente habilite a execução de scripts PowerShell na máquina. Para isso com o Powershell aberto, execute:

Set-ExecutionPolicy Unrestricted

Agora já podemos instalar o pacote que quisermos, como por exemplo, o novo navegador Edge, da Microsoft. Para isso vamos executar no PowerShell:

choco install microsoft-edge -y
Chocolatey_3

Muito simples, certo?

Mas e agora?

Faça a instalação e a automatização dos aplicativos que quiser via pacotes. Instale os navegadores Google Chrome ou Firefox, o VLC Player para assistir vídeos, o Adobe Reader, o 7-zip e assim por diante. Você pode automatizar, por exemplo, um pós instalação de desktops e servidores Windows. Verifique dentre os mais de 7000 pacotes disponíveis quais são necessários para você, sua empresa e seu cliente. Então, tenham boas instalações!

Event ID 5012 – Erro 9026 – Falha na Replicação DFS no Windows Server

Olá pessoal,

fui acionado por cliente que informou que estava tendo problemas na replicação DFS após criar um namespace novo, ou seja, criava arquivos ou pastas em um servidor e não era replicado para o outro. Verifiquei o log de eventos e encontrei o ID 5021, com erro 9026 (conexão inválida) que realmente informava falha de conectividade e consequentemente sincronismo entre os parceiros de um determinado grupo de replicação.

DFS1

Para corrigir este problema, vamos registrar novamente a Replicação do DFS no Provedor WMI e reiniciar o serviço executando os os seguintes passos:

Execute o prompt de comando e acesse o diretório C:\Windows\system32\wbem\
Em seguida,  execute os comandos abaixo na sequência:
mofcomp dfsrprovs.mof
net stop winmgmt
net start winmgmt
net start iphlpsvc
net stop dfsr
net start dfsr

Verifique no Log de Eventos se a Replicação DFS entre os parceiros foi restabelecida. conforme imagem abaixo.

DFS2

Até a próxima!

Problemas para ativar servidor com Windows Server 2012 R2

Olá pessoal,

Pouco tempo atrás o servidor de um cliente sofreu um incidente que resultou na reinstalação do sistema, neste caso o Windows Server 2012 R2 Standard. Naquele momento de emergência foi ativada a licença de avaliação (Evalution) da Microsoft que dura até 180 dias, conforme a imagem abaixo.

Win2012_Ativacao00

A mensagem abaixo com as informações dos dias restantes da licença de avaliação é exibida na Área de trabalho do usuário.

Win2012_Ativacao03

Com o ambiente já estabilizado, este cliente entrou em contato para realização da ativação da sua licença no servidor. Ao tentar ativar através do comando slmgr.vbs /ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx (sendo xxxxx-xxxxx-xxxxx-xxxxx-xxxxx a licença válida) a mensagem de erro abaixo era exibida:

Win2012_Ativacao01

Para verificar quais licenças podem ser ativadas na instalação atual execute o comando no prompt:

DISM.exe /Online /Get-TargetEditions

Win2012_Ativacao02

Cliente possui a licença Standard, portando vamos substituir a versão de Standard Evaluation para Standard utilizando o comando abaixo (Substitua XXXX-XXXXX-XXXXX-XXXXX-XXXXX pela sua licença válida):

DISM /online /Set-Edition:ServerStandard /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula

Após isso será necessário reiniciar o servidor e em seguida podemos verificar a edição do Windows modificada para a versão correta e o seu status de ativação conforme a imagem abaixo:

Win2012_Ativacao04

Até a próxima!

Definindo as configurações do Windows Update através do sconfig no Windows Server 2016

Olá pessoal,

fui acionado por um cliente que reportou que um servidor Hyper-V baseado no Windows Server 2016 reiniciou bem cedo, pouco antes do inicio do expediente. O Servidor levando bastante tempo para ficar online novamente, com isso as VMs com os sistemas não subiram e o inicio da operação da empresa acabou prejudicado.

Pois bem, eu acessei o servidor e identifiquei no log, através do Evento 1074,  que o próprio sistema realizou a instalação de um service pack e ao final reiniciou o servidor. Vejam abaixo:

Win16Up01

O cliente solicitou que as atualizações não sejam mais feitas de forma automática e sim manualmente, conforme janela a ser definida. Essa configuração poderia ser feita através de uma Política de Grupo (GPO) no Active Directory, porém como se trata de um servidor Standalone, vamos demonstrar como definir esta configuração diretamente na própria máquina, localmente.

Primeiramente abra o PowerShell como Administrador execute o comando sconfig

Após isso, selecione a opção 5, Configurações do Windows Update e defina a opção (M) Manuais. A mensagem abaixo será exibida. Clique em OK.

Win16Up02_nova

Pronto, desta forma as atualizações do Windows Update serão feitas manualmente.

Win16Up03

Até a próxima!

Ativando Windows Server 2016 via prompt de comando

Olá pessoal,

Semana passada eu recebi de um cliente o serial do Windows Server 2016 para ativação do servidor. Neste post vou descrever o procedimento para fazer esta ativação via prompt de comando (cmd).

Primeiramente vamos aplicar a chave de produto, para isso abra o Prompt de comando como Administrador (elevado) e execute o comando abaixo, substituindo xxxxx-xxxx-xxxx-xxxx-xxxx pela sua chave de produto.

slmgr.vbs /ipk xxxxx-xxxx-xxxx-xxxx-xxxx

Deve ser exibida a mensagem “Chave do produto (Product Key) xxxxx-xxxx-xxxx-xxxx-xxxx instalada com êxito”

Agora com a chave instalada, vamos ativar o sistema utilizando o comando abaixo:

slmgr.vbs /ato

Caso seja exibida a mensagem “Produto ativado com êxito” a operação foi realizada com sucesso.

Para confirmar o status da ativação execute o comando:

slmgr.vbs /dlv

Será exibida a tela abaixo com as informações sobre o sistema e sua ativação. Veja em Status da Licença. Tem que estar como “Licenciado“. Se houver algo diferente o procedimento não funcionou.

slmgr2

Você também pode verificar o status do sistema acessando via Painel de Controle – Sistema e Segurança – Sistema. Vejam abaixo:

slmgr3

Até a próxima!

Definindo servidor de licenças de Área de Trabalho Remota (RDS) no Windows Server 2016 via editor de política

Olá pessoal,

Passei um período com uma carga muito grande de trabalho e fiquei praticamente sem tempo algum para fazer publicações aqui no blog,  porém agora estou de volta com as atividades, posts, vídeos e tudo mais!

Hoje vou ensinar com definir um servidor de licença e o tipo em um servidor com o papel de Área de Trabalho Remota (RDS) ativado no Windows Server 2016 através de política de grupo.

No servidor com o RDS execute o editor de política de grupos através de comando:

gpedit.msc

Com o editor aberto, navegue por:

Configuração do Computador \ Modelos Administrativos \ Componentes do Windows \ Serviços de Área de Trabalho Remota \ Host de Sessão da Área de Trabalho Remota \ Licenciamento

Serão exibidas as opções abaixo:

RDS1

Ative as opções:

Em Usar os servidores de licença da Área de Trabalho Remota especificados, devem ser definido o servidor de licença, por nome ou endereço ip:

RDS2

Caso não queira que mensagens sobre problemas de licenciamento não sejam exibidas para o usuário de sessão remota, ative essa opção.

RDS3

Em Definir o modo de licenciamento da área de trabalho remota, defina se o licenciamento do serviço de área de trabalho remota será Por Dispositivo ou Por Usuário.

RDS4

Um forte abraço e até a próxima!

Windows Server – Verificando a versão do schema do Active Directory

Olá pessoal,

Como eu sempre falo em minhas palestras e eventos, apesar de vivermos uma explosão de incentivos, ofertas e conteúdos voltados para os serviços em nuvem, o mundo on premise, ou seja a infraestrutura local, interna nas empresas segue demandando e exigindo muitos dos profissionais e consultores de TI.

Com o fim do suporte ao Windows Server 2008 R2 por parte da Microsoft em 14 de janeiro de 2020 as empresas já estão se movimentando para atualizar seus ambientes. Vejo grandes oportunidades de negócio, inclusive no ano passado eu publiquei um vídeo sobre.

Sem dúvida já existe uma demanda enorme para migração de ambientes Active Directory baseados no Windows Server 2008 R2 e em momentos de migração ou upgrade é necessário saber a versão do schema de forma a fazer o planejamento adequado da versão correta do Windows Server a ser instalada.

Vejam abaixo a relação de sistemas operacionais e suas respectivas versões do AD.

AD_SCHEMA_VERSOES

Mas como fazer para identificar a versão do schema do AD do seu ambiente? Vou listar 3 maneiras abaixo:

1 – Através do Registro (regedit) do Windows, navegando em Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NTDS\Parameters e verifique a entrada Schema Version, no exemplo abaixo versão 47, ou seja, Windows Server 2008 R2.

AD_SCHEMA_VERSOES_REGEDIT

2 – Via CMD, utilizando o comando dsquery, substitua “nomedominio” e “corp” pelo nome do domínio a ser pesquisado:

dsquery * cn=schema,cn=configuration,dc=nomedominio,dc=corp -scope base -attr objectVersion

3 – Via PowerShell:

Get-ADObject (Get-ADRootDSE).schemaNamingContext -Property objectVersion

Espero ter ajudado! Boas migrações!

PowerShell – Identificando os servidores Controladores de domínio utilizados pelo Exchange Server

WindowsPowerShellOlá pessoal,

Durante uma migração de Active Directory em um cliente, foi necessário verificar e garantir que o servidor Exchange Server estava pesquisando e utilizando os servidores Controladores de domínio e Global Catalog corretos para autenticação.

Para obter essa informação via PowerShell vamos executar o comando abaixo:

Get-ExchangeServer -Identity “servidor” -status | fl

Substitua “servidor” pelo nome do seu servidor Exchange Server nas versões 2007, 2010, 2013 ou 2016.

Até a próxima!

Listando os softwares instalados via PowerShell

WindowsPowerShellOlá pessoal,

Um cliente me solicitou uma forma de obter a listagem de softwares instalados em um servidor remoto via script. Existem diversas formas de fazer isso utilizando PowerShell. Eu compartilho abaixo 3 opções de comando que atendem a esta demanda que me foi apresentada.

wmic product get name,version

wmic

Get-WmiObject -Class Win32_Product | Select-Object -Property Name

getwmiobject

gwmi Win32_Product

gwmi

Até a próxima!