Descreverei os passos para a para a migracao da Role DHCP, o ambiente e composto por duas maquinas, o servidor que tera as roles transferidas WS08R2 e o servidor de destino WS12R2Importante: Efetuar a instalacao\autorizacao da Role DHCP no servidor de destino. O primeiro passo e instalar a ferramenta de migracao no servidor WS12R2, com o comando: >Install-WindowsFeature MigrationApos a instalacao executar o Windows Server Migration ToolsImportante: O caminho com a instalacao das ferramentas de migracao e: %windir%\System32\ServerMigrationToolsExecutar o comando Get-SmigServerFeature para verificar as features instaladas no servidor de destino (WS12R2)>Get-SmigServerFeatureExecutar o comando abaixo para criar o arquivo que devera ser transferido para o servidor WS08R2PS C:\Windows\system32\ServerMigrationTools>.\SmigDeploy.exe /package /architecture amd64 /os WS08R2 /path D:\MigrationToolsApos transferir os arquivos para o servidor WS08R2 executar o aplicativo SmigDeploy.exe com privilegio de administrador, assim ficara disponivel as ferramentas de migracao.Administrative Tools - Windows Server Migration ToolsPara o servico DHCP Server:>Stop-Service "DHCP Server"Abrir o Migration Tools e executar o seguinte comando(Estou armazenado no caminho C:\TEMP):C:\Windows\system32>Export-SmigServerSetting -featureID DHCP -Path C:\TEMP -verboseDesautorizando servidor WS08R2>Netsh DHCP delete server WS08R2 IPCopiar o conteudo exportado para o novo servidor. No servidor de destino W12R2 abrir o powershell e importar a Snapin:>Add-PSSnapin Microsoft.Windows.Servermanager.MigrationImportar as configuracoes>Import-SmigServerSetting -FeatureId DHCP -force -Path D:\TEMP\Iniciar o servico:> start-service "DHCP Server"Agora as configuracoes estarao disponiveis no novo servidor. Faz algum tempo que nao faco uma publicacao, vou deixar aqui um script que desabilita contas de computadores.# Desativa computadores com mais de 186 dias de inatividade.import-module activedirectory $DaysInactive = 186 $time = (Get-Date).Adddays(-($DaysInactive)) $OU_Origem="OU=Estacoes,DC=contoso,DC=com"$OU_Destino="OU=Estacoes Desativadas,DC=contoso,DC=com"$Log="C:\LogDisable\LogDisableComputers.txt"# Limpando o Conteudo do Arquivo.Clear-Content $Log# Desabilitando as contasGet-ADComputer -Filter { LastLogonTimeStamp -lt $time} -Properties LastLogonTimeStamp -SearchBase $OU_Origem | ForEach-Object {Write-host "Conta desativada: " $_.name "Origem do Objeto" $_.DistinguishedName $_.DistinguishedName | Disable-ADAccountWrite-Output "Conta desativada:" $_.name "Origem do Objeto: " $_.DistinguishedName "Movido para: " $OU_Destino | Out-File -Append $LogWrite-Output "------------------------------------------- " | Out-File -Append $Log$_.DistinguishedName | Move-ADObject -TargetPath $OU_Destino }# Envia e-mail.Send-MailMessage -from data@contoso.com -to infra@contoso.com -smtpserver mail.contoso.com -Subject "Contas Desativas - Computadores" -Body "Log com as contas de computadores que foram desativadas por nao estarem em uso" -Attachments "C:\LogDisable\LogDisableComputers.txt" Estou lendo um livro sobre PowerShell, "Learn Windows PowerShell in a Month of Lunches ", recomendo o livro, vou deixar uma dica que achei bem interessante, normalmente quando precisamos executar um comando em um computador remoto utilizamos o comando enter-pssession, ou dependendo do comando podemos usar o parametro -computername de qualquer forma vamos imaginar o seguinte cenario, voce deseja obter a lista de usuarios do Active Directory, e voce esta impossibilitado de instalar as ferramentas de administracao remota do Active Directory (RSAT-AD-PowerShell) e tambem nao quer usar a comando enter-pssession, e possivel importar o modulo do AD-Powershell para a sua maquina, mas a algumas limitacoes, quando a conexao for fechado sera necessario repetir os passos, porque na verdade o comando nao e executado na maquina local e executado na maquina remota, vamos la!Criando uma nova sessao e armazenando na variavel $teste > $teste = New-PSSession -ComputerName contos-adImportando o modulo remoto > Invoke-Command -ScriptBlock { Import-Module activedirectory } -Session $testeImportando os comandos para a maquina local > Import-PSSession -Session $teste -Module activedirectory -Prefix maykonModuleType Name ExportedCommands---------- ----