Зачастую решая какую-то задачу совершенно забываешься и не обращаешь внимание на время, а взглянув на часы впопыхах начинаешь собираться домой. При этом очень легко забыть выйти со всех серваков, а это не очень хорошо в плане безопасности, как это доказал один хакатон у друга в одной крупной антивирусной компании.
На помощью опять приходит Powershell, всего несколько магических строчек которого избавят нас от одной из головных болей:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$servers = Get-Content "C:\Scripts\servers.txt" $username = $env:USERNAME function GetOut { ForEach ($server in $servers) { $session = ((quser /server:$server | ? { $_ -match $username }) -split ' +')[2] logoff $session /server:$server } } GetOut |
В текстовом файле записаны серваки столбиком 🙂
Но можно сделать переменную с серваками умной, которая будет получать имена из контейнеров AD, тогда необходимо сделать следующее присвоение:
1 2 3 |
$servers = Get-ADComputer -Filter * -SearchBase "OU=YOUROU, DC=CONTOSO, DC=COM" | % { $_.Name } |