Visitantes

Alterando a Versão do Windows (Change Windows Version)






Mesmo tendo muitas e muitas paginas sobre o assunto, tenho visto muitas pessoas com dificuldades sobre a forma correta de alterar a versão do Sistema operacional do Windows, então pra ajudar resolvi fazer um passo a passo testado e aprovado pra ajudar o pessoal. 

Então vamos lá!!!:...

1) Em primeiro lugar precisamos confirmar qual versão atual o Windows, pra isso abra um prompt do Powershell com nível elevados para que nada interfira e execute o comando abaixo;

DISM /online /Get-CurrentEdition

Você terá um resultado parecido com esse abaixo: 

Deployment Image Servicing and Management tool
Version: 6.1.7600.16385

Image Version: 6.1.7601.18489
Current edition is:
Current Edition : ServerStandard
The operation completed successfully.

Nesse exemplo vemos que ele está executando a Versão Standart do Windows.


2) Agora Precisamos verificar quais versões esse S.O aceita e para fazer essa verificação execute o comando abaixo:

DISM /online /Get-TargetEditions

Você terá um resultado parecido com esse abaixo: 

Deployment Image Servicing and Management tool
Version: 6.1.7600.16385

Image Version: 6.1.7601.18489
Editions that can be upgraded to:
Target Edition : ServerDataCenter
Target Edition : ServerEnterprise
The operation completed successfully.

Aqui podemos ver que temos a opção de fazer o upgrade para a versão Enterprise (ServerEnterprise) ou Datacenter (ServerDataCenter);

3) Vamos então por exemplo fazer a alteração da Versão Standart para a Versão Datacenter utilizando a seguinte linha de comando:                                     
            
DISM /online /Set-Edition:ServerEnterprise /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

*Substitua XXXXX-XXXXX-XXXXX-XXXXX-XXXXX pela sua chave da versão que você vai fazer a conversão que no exemplo é a Enterprise:

*Caso você execute o comando e apresente a MSG abaixo:

“The specified product key is not valid for the target edition. Run this command again with a product key specific to the target edition.”
I have no reason why this issue happens,(its key confusion of some sort) but to fix it you can go ahead and use the default KMS key provided by Microsoft XXXXX-XXXXX-XXXXX-XXXXX-XXXXX, use this key in the command, and once the system reboots, go into the Server Manager and change and activate the softare with your own key."

Será necessário pegar uma chave KMS para a respectiva versão no site da MS, acesse então o site que está no final do documento, localize ache a chave correspondente a versão que você quer fazer o upgrade e substitua a chave que você tinha usado. Por exemplo:

Para a versão Enterprise do Windows 2008 R2 vou utilizar a chave KMS : 489J6-VHDMP-X63PK-3K798-CPX3Y. 

Então o comando ficaria:

DISM /online /Set-Edition:ServerEnterprise /ProductKey:489J6-VHDMP-X63PK-3K798-CPX3Y

Você terá um resultado parecido com esse abaixo: 

Deployment Image Servicing and Management tool
Version: 6.1.7600.16385

Image Version: 6.1.7600.16385

Starting to update components...
Starting to install product key...
Finished installing product key.

Removing package Microsoft-Windows-ServerStandardEdition~31bf3856ad364e35~amd64~~6.1.7601.17514
[====================100.0%=======================]
Finished updating components.

Starting to apply edition-specific settings...
Restart Windows to complete this operation.
Do you want to restart the computer now (Y/N)?

Depois de reiniciar o servidor ele já estará na versão escolhida:

Site com as chaves KMS:

https://technet.microsoft.com/en-us/library/ff793421.aspx?tduid=(bd0734beb0ee20f86fe008edef8b1465)(256380)(2459594)(TnL5HPStwNw-xDGof0NEuc4O4fe68AF4Fg)

Espero que essa postagem seja útil e se precisarem de ajuda é só escrever que ajudarei no que for possível.

Abraço a todos.

Script para monitoramento de Eventos em Servidores Windows




Script para monitoramento de Eventos em Servidores Windows

A ideia desse script é verificar nos Logs do Servidor a ocorrência de um evento especifico e caso tenha ocorrido ele enviará um e-mail informando, podemos também incluir a execução de algumas ações no script.

Campos que podem ser pesquisados:
$_.EntryType | $_.Message | $_.Source |$_.Time | $_.Index |$_.InstanceID
---------------------------------------------------------------------------------------------

O Comando abaixo executa um Seach nos logs do servidor verificando se ocorreu o evento no dia atual utilizando o parâmetro “(Get-Date).AddDays(-1)” (Esse parâmetro pode ser incrementado para pegar de outros dias);

Nesse caso estamos filtrando por uma parte da Mensagem e também pelo Source do evento,podemos também fazer outras pesquisas usando os campos citados acima ;

Inicio do SCRIPT - Copie e cole em um arquivo e o Salve como .ps1

#-----------------------------------------------------------------------------------------------------------

$Result=Get-EventLog application -After (Get-Date).AddDays(-1) | where { $_.Message -match "Processing completed*" -and $_.Source -match "XXXXX Service"} # "XXXX Service" = Nome do Serviço

# Faz uma contagem de quantos eventos foram encontrados com a busca
$result=$result.count

Se o resultado acima for 0 ou “ ” então será enviada a mensagem de que está tudo bem, caso contrario enviará a MSG que houve problema ou podemos aqui se necessario executar algum script ou comando.

If ($result -gt 0)
  {

   $emailbody = 'Verificação XXXXX -  Executada com sucesso!'

  }

Else
  { 

  $emailbody = 'ATENCAO!!! Verifique o sistema XXXXX no Servidor XXXXXXXX!!'

  }


###################### Envio de email #######################

    $SMTPserver = "seu.sevidordeSMTP"
    $from = "suporte@dominio"
    $to = "suporte@dominio"
    $subject = "Monitoramento do Serviço XXX "
    $mailer = new-object Net.Mail.SMTPclient($SMTPserver)
    $msg = new-object Net.Mail.MailMessage($from, $to, $subject, $emailbody)
    $mailer.send($msg)
#-----------------------------------------------------------------------------------------------------------


########################################################
# Operadores  
########################################################
#-eq  -> equals
#
#-ne  -> not equal
#
#-gt  -> greater than
#
#-ge  -> greater than or equal to
#
#-lt  -> less than
#
#-le  -> less than or equal to
#
#-like -> wildcard comparison
#
#-notlike -> wildcard comparison
#
#-match  -> regular expression comparison
#
#-notmatch -> regular expression comparison
########################################################
#     EVENTS
########################################################
#Application
#Security
#setup


#System

Espero ter ajudado e até a próxima....Qualquer duvida é só perguntar que tentarei ajudar.

Script para listar usuarios dos grupos do AD






Fala pessoal, segue abaixo um script bem util que lista os usuarios de cada grupo do AD e cria um arquivo CSV com o resultado.

#------------------------------------------------
# Script para Obter os usuarios dos grupos do AD
#------------------------------------------------
# Atualize o filtro baseado nos codigos abaixo
# -----------------------------------------------
# 2 Global distribution group
# 4 Domain local distribution group
# 8 Universal distribution group
# -2147483646 Global security group
# -2147483644 Domain local security group
# -2147483640 Universal security group
# http://portal.sivarajan.com/2010/08/list-group-members-in-active.html
#-------------------------------------------------

if(@(get-module | where-object {$_.Name -eq "ActiveDirectory"} ).count -eq 0) {import-module ActiveDirectory}

$OutPutFile = New-Item -type file -force "C:\GroupDetails.csv"

$ObjFilter = "(&(objectCategory=Group)(|(groupType=2)(groupType=4)(groupType=8)))"
$objSearch = New-Object System.DirectoryServices.DirectorySearcher
$objSearch.SearchRoot = "LDAP://dc=dominioad,DC=com" #Substitua pela raiz do dominio.
$objSearch.PageSize  = 10000
$objSearch.Filter = $ObjFilter

$Results = $objSearch.FindAll()

foreach ($Result in $Results){
      $Item = $Result.Properties
      Write-host $Item.cn
      $Item.cn | Out-File $OutPutFile -encoding ASCII -append

foreach ($Member in $Item.member){
        Write-host "$Member"
        $Member | Out-File $OutPutFile -encoding ASCII -append
}

  }