Como redefinir o período de cortesia do RDS de 120 dias no Windows Server 2016 sem GUI

Como redefinir o período de cortesia do RDS de 120 dias no Windows Server 2016 sem GUI

INTRODUÇÃO   Às vezes, os funcionários que executam laboratórios domésticos não possuem...

Como redefinir o período de cortesia do RDS de 120 dias no Windows Server 2016 sem GUI

INTRODUÇÃO

 

Às vezes, os funcionários que executam laboratórios domésticos não possuem licenças para os Serviços de Área de Trabalho Remota (RDS). Bem, isso não é grande coisa, você sabe, porque a Microsoft fornece o período de cortesia de 120 dias para a plataforma! No entanto, um dia o tempo acaba e o servidor RDS interrompe todas as conexões do cliente. Nesse dia, os administradores podem escolher entre reinstalar o servidor e trapacear um pouco para redefinir o período de cortesia do RDS de 120 dias.

Bem, as pessoas que executam ambientes de teste e laboratórios domésticos às vezes escolhem a segunda opção. Neste momento, gostaria de dizer que não apóio nem promovo o uso ilegal do software da Microsoft para fins comerciais neste artigo! Você sabe, a própria Microsoft fornece o script para restaurar o período de cortesia: https://gallery.technet.microsoft.com/scriptcenter/Reset-Terminal-Server-RDS-44922d91.

Bem, eu não tentei esse script, mas acredito que deveria funcionar.

Existem algumas maneiras de redefinir o período de carência por meio da GUI. Você pode pesquisar um pouco no Google e encontrar muitos deles! Mas, neste artigo, eu ensino como redefinir o período de cortesia com o PowerShell e o Prompt de Comando. Como não encontrei uma solução pronta para usar, tudo o que escrevo aqui é algo que surgiu com base em minha própria experiência com uma pequena parte do Google, é claro. Observe que o método que descrevo aqui é bastante arriscado, pois você adquirirá privilégios no nível do sistema. Em outras palavras, você pode estragar as coisas com bastante facilidade. Por outro lado, você pode redefinir o período de cortesia mais rapidamente do que através da GUI! De qualquer forma, eu avisei sobre o risco, portanto, não brinque muito com o registro! E, não me culpe se algo der errado.

 

FERRAMENTAS

Para este artigo, eu uso um servidor físico com o Windows Server 2016 SE v10.0.14393 e o RDS habilitados. Um servidor virtual também funciona bem, mas eu uso aqui o físico. Eu uso a edição OS de avaliação para este artigo. E, como qualquer pessoa com uma edição de Avaliação, hoje me preocupo com o período de carência!

Quanto à plataforma RDS, acredito que você já sabe o que é essa coisa e como usá-la. Então, eu não vou falar sobre isso aqui. O truque que descrevo neste artigo funciona bem no Windows Server 2016, 2012 R2 e até 2008 R2.

Para redefinir o período, você precisa do utilitário PsExec. PsExec é o componente de pacote do Windows Sysinternals que fornece privilégios no nível do sistema. Por que você precisa disso? Veja bem, o Windows Server não possui os meios nativos para redefinir o período. Isso significa que os privilégios do administrador não serão suficientes para redefinir o período de cortesia. Aqui, o PsExec entra em cena chamando uma instância do PowerShell que possui privilégios no nível do sistema. Faça o download do utilitário aqui: https://docs.microsoft.com/en-us/sysinternals/downloads/psexec .

Depois, extraia-o em algum lugar. No meu caso, o utilitário é mantido em C:\PSTools .

 

REDEFININDO O PERÍODO DE CORTESIA DO RDS

 

Quanto tempo o RDS tem?

 

Abra o prompt de comando primeiro e navegue até a pasta PsExec. Execute os seguintes cmdlets para garantir que o utilitário esteja na pasta e esteja pronto para iniciar:

 

?d c:PSTools
dir

 

Observe que existem as versões PsExec de 32 bits (PsExec) e 64 bits (PsExec64) na pasta. Eu uso o de 32 bits neste artigo.

Como eu disse acima, você não precisa reinstalar o sistema operacional para redefinir o período de cortesia. Você só precisa encontrar no registro o "timebomb" - o parâmetro que contém o trecho de código da contagem regressiva. Quando esse valor da variável de contagem regressiva atinge 0, o servidor RDS para de atender as conexões do cliente. Se você deseja verificar por quantos dias você ainda pode usar o RDS, implante este comando:

wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TerminalServiceSetting WHERE (__CLASS !=””) CALL GetGracePeriodDays

 

No meu caso, esse comando funcionou apenas no Windows Server 2016. Para o Windows Server 2012 R2 e Windows Server 2008 R2, não consegui encontrar o cmdlet permitindo que você fizesse a mesma coisa.

 

Vamos desativar o "timebomb"!

 

Inicie a instância do PowerShell através do PsExec com o comando abaixo. Olha, o Windows não possui as ferramentas nativas para adquirir os privilégios no nível do sistema. E você não poderá brincar com o registro com privilégios de administrador. Aqui, o PsExec entra em ação, fornecendo os privilégios no nível do sistema!

C:pstoolsPsexecsi PowerShell

Se você iniciar o utilitário pela primeira vez, precisará aceitar o contrato de licença. Depois que você pressiona Concordo , outra janela do PowerShell aparece. Faço tudo o que descrevo abaixo nessa janela.

 

 

Execute o seguinte cmdlet para obter o valor do parâmetro do período de cortesia no registro:

Get-Item -Path Registry::HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal' 'ServerRCMGracePeriod

Gostaria que você soubesse sobre a sintaxe. Para todos os comandos listados abaixo neste artigo, não esqueça de escrever todos os espaços nos nomes de diretório entre aspas simples. Por exemplo, observe mais uma vez como escrevi o nome do diretório do Terminal Server no cmdlet acima. Veja, é disso que eu estou falando! Sem essas aspas simples, você encontrará um erro.

 

Agora, vejamos a saída Get-Item. Veja, a variável GracePeriod existe.

Vamos ver como você se livra disso. Como a instância atual do PowerShell possui privilégios no nível do sistema, você pode excluir a variável do registro com bastante facilidade. Use o seguinte comando para remover a variável:

 

Remove-ItemProperty -Path Registry::HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal' 'ServerRCMGracePeriod -Name L$RTMTIMEBOMB_*

 

Veja o cmdlet acima mais uma vez. Vê isso * no final da linha? Eu o uso como o nome da variável do período de carência depende do sistema operacional. Esse símbolo ajuda a se referir à variável com o nome correto. Claro, você pode implantar o comando Get-Item para adquirir o nome real, mas se você é tão preguiçoso quanto eu, basta usar * ?. Por último, mas não menos importante, lembre-se de aspas simples no nome do diretório do Terminal Server!

 

Certifique-se de redefinir o período de cortesia

 

Parabéns, depois que o cmdlet Remove-ItemProperty é implantado, o período de cortesia é redefinido!

 
 
Agora, é hora de reiniciar o servidor. Você pode usar este cmdlet:
 
Get-Item -Path Registry::HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal' 'ServerRCMGracePeriod
Restart-Computer -Force
 
 

 

Veja, não há variáveis ??no ramo de registro GracePeriod.

 

Depois de reiniciar o servidor, a variável L $ RTMTIMEBOMB_ * é criada novamente. Agora, vamos verificar se o período de cortesia foi redefinido. Faça isso da mesma maneira que você fez no começo:

wmic /namespace:rootCIMV2TerminalServices PATH Win32_TerminalServiceSetting WHERE (__CLASS !=””) CALL GetGracePeriodDays

Veja, o RDS ainda tem 120 dias restantes!

 

CONCLUSÃO

Hoje, descrevi como redefinir o período de cortesia do RDS. O bom é que você não precisa da GUI para fazer o trabalho! Tudo o que fiz neste artigo funciona bem não apenas no Windows Server 2016, mas também no Windows Server 2012 R2 e Windows Server 2008 R2 antigos. O cmdlet wmic funciona apenas no Windows Server 2016, mas não é com isso que realmente devemos nos preocupar. Novamente, a solução alternativa descrita aqui deve ser usada apenas nos ambientes de teste e laboratório doméstico. Nunca use para ambientes de produção! Acredito que você os tenha coberto com uma licença adequada, não é?

 

 

Comentários