A while back I posted my initial script to find the users that are logged into a server and log off them remotely. Isso foi há vários anos atrás e eu pensei em fazer outra tentativa para tentar melhorar a velocidade, melhorar a formatação e adicionar alguns switches dedicados com um pouco mais de flexibilidade. Finalmente, eu queria mudar esse nome feio e não convencional para algo mais aprovado pelo Powershell. Eu chamo esta nova função de Get Logged In Users.
A estrutura subjacente ainda vai estar usando a sessão de consulta para que isso não tenha mudado. O que mudou é que agora podemos especificar um usuário específico ou encontrar onde um usuário está logado em um domínio. Outra nota é a capacidade de fazer o log off deles usando um simples switch para que possa definitivamente vir a ser útil se você estiver verificando um log de sistemas.
>
Conectar usuários usando Powershell
Looking back Eu não sei porque eu adicionei o Módulo ActiveDirectory e o fiz rodar como um administrador. Isto simplesmente não é necessário e não é necessário para executar esta função. No entanto, eu recomendo vivamente que corra isto numa máquina Windows 10 ou Server 2016 e mais tarde com Powershell 5 porque bem, sejamos realistas, estamos em 2020.
Parâmetros
-ComputerName
Descrição: Isto irá especificar o Nome do Computador que você gostaria de verificar. Se nenhum Nome de Computador for especificado, ele irá verificar o computador local.
-Nome do Usuário
Descrição: Se o nome de usuário especificado for encontrado logado em uma máquina, ele irá mostrá-lo na saída.
-LogOff
Descrição: Se o parâmetro logoff for especificado, ele irá logoff o usuário a partir do computador. É recomendado executar sem a chave logoff para ver primeiro os resultados.
Como Executar o Script do Login do Utilizador
Para executar o script existem algumas coisas que precisa de fazer. Primeiro e acima de tudo, precisa de definir a sua política de execução para RemoteSigned ou bypass. Este é um padrão com a execução de qualquer script Powershell.
Próximo, você precisa de fazer o ponto de origem do script, uma vez que ele é uma função. Para fazer o ponto de origem do script faça o seguinte:
- Copie o script acima e salve-o em qualquer lugar. Neste exemplo eu vou salvá-lo na minha pasta C:\_Scripts.
- Within the Powershell Window type: . .\_Scripts\Get-LoggedInUser.ps1 – Note os dois pontos antes da barra invertida.
Get Logged On Users On Remote Computers
A melhor coisa que eu adoro neste script é a sua capacidade de obter quem está logado em um computador remoto. Isto atenua a necessidade de entrar fisicamente no computador e verificar dessa forma. Uma vez que este script Powershell permite que você consulte servidores e computadores remotos, ele o torna altamente automatizável e muito escalável. Usando este script, você pode verificar 1 servidor ou 1.000 servidores e seria a mesma quantidade de esforço para a pessoa que o está executando. É fantástico e eu adoro como você pode fazer tudo a partir do seu próprio computador Windows 10.
Você também pode encontrar onde um usuário está logado em um domínio muito facilmente. Dependendo de quantas máquinas você vai estar iterando, obviamente pode levar algum tempo, mas pode ser feito. Aqui está um simples trecho de código de como chegar onde um usuário está logado.
ErrorAction SilentlyContinue é usado para suprimir erros de conexão e exibir saída limpa
Então aí você tem, uma solução rápida e fácil para um problema que muitos administradores de TI encontraram em sua jornada de administrador de sistemas. Eu estou bem ciente de que você também pode fazer isso através da política de grupo se você quiser ir por esse caminho, ou você pode fazer isso através de alguma ferramenta GUI, mas eu sempre gosto de sujar minhas mãos com Powershell.