Sua melhor aposta é modificar os tempos de logon em relação às sessões de abandono. Modificar o tempo de logon garante que, se você seguir qualquer tipo de comando RDP Powershell que mate uma sessão, não permitirá que alguém faça o login (ou até mesmo tente efetuar login novamente) após a interrupção de uma sessão. Considere o seguinte: O departamento de folha de pagamento está correndo para inserir as entradas de horário às 19h05. Você começou a fazer suas atualizações às 19:00. O RH precisa fazer o que eles fizeram no último segundo. Você mata a sessão deles por meio do Powershell. Eu posso garantir que até a gerência estaria em cima de você.
Agora considere o seguinte: Você envia um e-mail dizendo "Sessões RDP serão desativadas às 18h50 para manutenção. Por favor, conclua todo o trabalho já que os logons serão desativados" Se alguém não fizer o que precisa fazer a tempo, você ter feito sua devida diligência em dar-lhes mais do que tempo suficiente para concluir seu trabalho. Depois, a política de logon desabilita o acesso, para que você não tenha que se preocupar em 1) encerrar os processos de qualquer pessoa 2) se alguém está logando ou não, etc. Eu não usaria o Powershell, WMI ou qualquer outra coisa além de criar manualmente / editando um GPO para logons. Em qualquer caso, esse é um problema de gerenciamento de alterações e, idealmente, as alterações devem ocorrer durante o horário do sistema menos utilizado.