İşlədiyim təşkilatda distant işləmə prinsipcə qadağandır. idi. Keçən həftəyə qədər. İndi biz təcili olaraq bir həll yolu tətbiq etməli idik. Biznesdən - proseslərin yeni iş formatına uyğunlaşdırılması, bizdən - PIN kodları və tokenləri olan PKI, VPN, ətraflı giriş və daha çox.
Digər şeylər arasında, mən Uzaq Masaüstü İnfrastrukturunu, aka Terminal Xidmətləri qururdum. Müxtəlif məlumat mərkəzlərində bir neçə RDS yerləşdirməmiz var. Məqsədlərdən biri əlaqəli İT departamentlərindən olan həmkarlarına istifadəçi sessiyalarına interaktiv qoşulmaq imkanı vermək idi. Bildiyiniz kimi, bunun üçün standart RDS Shadow mexanizmi mövcuddur və onu həvalə etməyin ən asan yolu RDS serverlərində yerli administrator hüquqlarının verilməsidir.
Mən həmkarlarıma hörmət edirəm və onları qiymətləndirirəm, lakin admin hüquqlarının verilməsinə gəldikdə çox acgözəm. 🙂 Mənimlə razı olanlar kəsimi izləsinlər.
Yaxşı, vəzifə aydındır, indi işə başlayaq.
1 addım
Active Directory-də təhlükəsizlik qrupu yaradaq RDP_Operatorlar və ona hüquq vermək istədiyimiz istifadəçilərin hesablarını daxil edin:
Bir neçə AD saytınız varsa, növbəti mərhələyə keçməzdən əvvəl onun bütün domen nəzarətçiləri üçün təkrarlanmasına qədər gözləməli olacaqsınız. Bu adətən 15 dəqiqədən çox çəkmir.
2 addım
Gəlin qrupa RDSH serverlərinin hər birində terminal seanslarını idarə etmək hüququnu verək:
Set-RDSPermissions.ps1
$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")
}
}
}
3 addım
Qrupu yerli qrupa əlavə edin Uzaq Masaüstü İstifadəçiləri RDSH serverlərinin hər birində. Əgər serverləriniz sessiya kolleksiyalarında birləşdirilibsə, biz bunu kolleksiya səviyyəsində edirik:
İstifadə etdiyimiz tək serverlər üçün qrup siyasəti, onun serverlərdə tətbiq edilməsini gözləyirik. Gözləmək üçün çox tənbəl olanlar, yaxşı köhnə gpupdate-dən istifadə edərək prosesi sürətləndirə bilərlər mərkəzləşdirilmiş şəkildə.
4 addım
"Menecerlər" üçün aşağıdakı PS skriptini hazırlayaq:
PS skriptini işləmək üçün rahat etmək üçün biz onun üçün PS skripti ilə eyni adlı cmd faylı şəklində qabıq yaradacağıq:
RDSManagement.cmd
@ECHO OFF
powershell -NoLogo -ExecutionPolicy Bypass -File "%~d0%~p0%~n0.ps1" %*
Biz hər iki faylı “menecerlər” üçün əlçatan olan qovluğa yerləşdiririk və onlardan yenidən daxil olmalarını xahiş edirik. İndi cmd faylını işə salmaqla, onlar RDS Kölgə rejimində digər istifadəçilərin seanslarına qoşula və onları sistemdən çıxmağa məcbur edə biləcəklər (istifadəçi müstəqil olaraq “asılmış” sessiyanı dayandıra bilmədikdə bu faydalı ola bilər).
Belə görünür:
"Menecer" üçün
İstifadəçi üçün
Bir neçə son şərh
Nüans 1. Əgər nəzarəti əldə etməyə çalışdığımız istifadəçi sessiyası Set-RDSPermissions.ps1 skripti serverdə icra edilməmişdən əvvəl işə salınıbsa, o zaman “menecer” giriş xətası alacaq. Burada həll yolu açıqdır: idarə olunan istifadəçi daxil olana qədər gözləyin.
Nüans 2. RDP Shadow ilə bir neçə gün işlədikdən sonra maraqlı bir səhv və ya xüsusiyyət gördük: kölgə seansı bitdikdən sonra qoşulan istifadəçi üçün lövhədəki dil paneli yox olur və onu geri qaytarmaq üçün istifadəçi yenidən -daxil ol. Göründüyü kimi, biz tək deyilik: vaxt, два, üç.
Hamısı budur. Sizə və serverlərinizə can sağlığı arzulayıram. Həmişə olduğu kimi, şərhlərdə rəyinizi gözləyirəm və sizdən aşağıdakı qısa sorğuda iştirak etməyinizi xahiş edirəm.