У организацији у којој радим рад на даљину је начелно забрањен. Био. Све до прошле недеље. Сада смо морали хитно да применимо решење. Од бизниса - прилагођавање процеса новом формату рада, од нас - ПКИ са ПИН кодовима и токенима, ВПН, детаљно евидентирање и још много тога.
Између осталог, постављао сам инфраструктуру удаљене радне површине ака Терминалне услуге. Имамо неколико РДС имплементација у различитим центрима података. Један од циљева је био да се омогући колегама из сродних ИТ одељења да се интерактивно повежу на корисничке сесије. Као што знате, постоји стандардни механизам РДС Схадов за ово, а најлакши начин да се делегира је да се дају права локалног администратора на РДС серверима.
Поштујем и ценим своје колеге, али сам веома похлепан када је у питању дељење администраторских права. 🙂 За оне који се слажу са мном, пратите рез.
Па, задатак је јасан, пређимо сада на посао.
Корак КСНУМКС
Хајде да направимо безбедносну групу у Ацтиве Дирецтори РДП_Оператори и укључимо у њега налоге оних корисника којима желимо да делегирамо права:
Ако имате више АД локација, мораћете да сачекате док се не реплицира на све контролере домена пре него што пређете на следећи корак. Ово обично не траје више од 15 минута.
Корак КСНУМКС
Хајде да дамо групи права да управља терминалским сесијама на сваком од РДСХ сервера:
Сет-РДСПермиссионс.пс1
$Group = "RDP_Operators"
$Servers = @(
"RDSHost01",
"RDSHost02",
"RDSHost03"
)
ForEach ($Server in $Servers) {
#Делегируем право на теневые сессии
$WMIHandles = Get-WmiObject `
-Class "Win32_TSPermissionsSetting" `
-Namespace "rootCIMV2terminalservices" `
-ComputerName $Server `
-Authentication PacketPrivacy `
-Impersonation Impersonate
ForEach($WMIHandle in $WMIHandles)
{
If ($WMIHandle.TerminalName -eq "RDP-Tcp")
{
$retVal = $WMIHandle.AddAccount($Group, 2)
$opstatus = "успешно"
If ($retVal.ReturnValue -ne 0) {
$opstatus = "ошибка"
}
Write-Host ("Делегирование прав на теневое подключение группе " +
$Group + " на сервере " + $Server + ": " + $opstatus + "`r`n")
}
}
}
Корак КСНУМКС
Додајте групу локалној групи Корисници удаљене радне површине на сваком од РДСХ сервера. Ако су ваши сервери комбиновани у колекције сесија, онда то радимо на нивоу колекције:
За појединачне сервере које користимо групна политика, чекајући да се примени на серверима. Они који су превише лењи да чекају могу убрзати процес користећи стари стари гпупдате, по могућности централно.
Корак КСНУМКС
Хајде да припремимо следећу ПС скрипту за „менаџере“:
Да бисмо учинили ПС скрипту погодном за покретање, креираћемо за њу шкољку у облику цмд датотеке са истим именом као и ПС скрипта:
РДСМанагемент.цмд
@ECHO OFF
powershell -NoLogo -ExecutionPolicy Bypass -File "%~d0%~p0%~n0.ps1" %*
Стављамо обе датотеке у фасциклу која ће бити доступна „менаџерима“ и тражимо од њих да се поново пријаве. Сада, покретањем цмд датотеке, они ће моћи да се повежу са сесијама других корисника у РДС Схадов режиму и натерају их да се одјаве (ово може бити корисно када корисник не може самостално да прекине „висину“ сесију).
Изгледа отприлике овако:
За "менаџера"
За корисника
Неколико завршних коментара
Нијанса 1. Ако је корисничка сесија над којом покушавамо да добијемо контролу покренута пре него што је скрипта Сет-РДСПермиссионс.пс1 извршена на серверу, тада ће „менаџер“ добити грешку приступа. Решење је овде очигледно: сачекајте док се управљани корисник не пријави.
Нијанса 2. Након неколико дана рада са РДП Схадов-ом, приметили смо занимљиву грешку или карактеристику: након завршетка сесије у сенци, језичка трака у траци нестаје за корисника са којим је повезан, а да би је вратио, корисник мора поново -Пријавите се. Како се испоставило, нисмо сами: време, два, три.
То је све. Желим вама и вашим серверима добро здравље. Као и увек, радујем се вашим повратним информацијама у коментарима и молим вас да попуните кратку анкету испод.