An der Organisatioun wou ech schaffen, ass d'Fernaarbecht am Prinzip verbueden. War. Bis d'lescht Woch. Elo musse mir dréngend eng Léisung ëmsetzen. Vu Geschäft - Upassung vu Prozesser op en neit Aarbechtsformat, vun eis - PKI mat PIN Coden an Tokens, VPN, detailléierte Logbuch a vill méi.
Ënner anerem hunn ech Remote Desktop Infrastructure aka Terminal Services opgeriicht. Mir hunn e puer RDS Détachementer a verschiddenen Rechenzentren. Ee vun den Ziler war et fir Kollegen aus verbonnen IT-Departementer z'erméiglechen interaktiv mat Benotzersessiounen ze verbannen. Wéi Dir wësst, gëtt et e Standard RDS Shadow Mechanismus fir dëst, an deen einfachste Wee fir et ze delegéieren ass lokal Administrateur Rechter op RDS Serveren ze ginn.
Ech respektéieren a schätzen meng Kollegen, awer ech si ganz giereg wann et drëm geet Administratiounsrechter auszedeelen. 🙂 Fir déi, déi mat mir averstane sinn, gitt weg de Schnëtt.
Gutt, d'Aufgab ass kloer, loosst eis elo op d'Geschäft kommen.
Schrëtt 1
Loosst eis eng Sécherheetsgrupp am Active Directory erstellen RDP_Operateuren an dobäi d'Konte vun deene Benotzer un déi mir Rechter delegéiere wëllen:
Wann Dir e puer AD Siten hutt, musst Dir waarden bis et op all Domain Controller replizéiert gëtt ier Dir op de nächste Schrëtt weidergeet. Dëst dauert normalerweis net méi wéi 15 Minutten.
Schrëtt 2
Loosst eis de Grupp Rechter ginn fir Terminal Sessiounen op jiddereng vun den RDSH Serveren ze managen:
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")
}
}
}
Schrëtt 3
Füügt de Grupp an de lokale Grupp Remote Desktop Benotzer op jiddereng vun den RDSH Serveren. Wann Är Serveren a Sessiounskollektiounen kombinéiert sinn, da maache mir dat um Sammelniveau:
Fir eenzel Server benotze mir Grupp Politik, waarden op et op de Serveren applizéiert ginn. Déi, déi ze faul sinn fir ze waarden, kënnen de Prozess beschleunegen mat gudden alen gpupdate, am léifsten zentral.
Schrëtt 4
Loosst eis de folgende PS Skript fir "Manager" virbereeden:
Fir de PS Skript bequem ze maachen ze lafen, erstellen mir eng Shell fir et a Form vun enger cmd Datei mam selwechten Numm wéi de PS Skript:
RDSManagement.cmd
@ECHO OFF
powershell -NoLogo -ExecutionPolicy Bypass -File "%~d0%~p0%~n0.ps1" %*
Mir setzen déi zwee Dateien an engem Dossier deen fir "Manager" zougänglech ass a froen se fir nei aloggen. Elo, andeems se d'cmd-Datei lafen, kënne se sech mat de Sessiounen vun anere Benotzer am RDS Shadow Modus verbannen an zwéngen se auszeloggen (dëst kann nëtzlech sinn wann de Benotzer net onofhängeg eng "hängend" Sessioun kann ofschléissen).
Et gesäit sou aus:
Fir de "Manager"
Fir de Benotzer
E puer lescht Kommentaren
Nuancen 1. Wann d'Benotzer Sessioun, op déi mir probéieren d'Kontroll ze gewannen, lancéiert gouf ier de Set-RDSPermissions.ps1 Skript um Server ausgefouert gouf, da kritt de "Manager" en Zougangsfehler. D'Léisung hei ass offensichtlech: waart bis de verwaltete Benotzer sech aloggen.
Nuancen 2. No e puer Deeg vun der Aarbecht mat RDP Shadow hu mir en interessante Bugs oder Feature gemierkt: nom Enn vun der Schattensessioun verschwënnt d'Sproochbar am Schacht fir de Benotzer mat deem verbonnen ass, a fir se zréckzekommen, muss de Benotzer nei - aloggen. Wéi et sech erausstellt, si mir net eleng: Zäiten, два, dräi.
Dat ass alles. Ech wënschen Iech an Är Serveren eng gutt Gesondheet. Wéi ëmmer freeën ech mech op Äre Feedback an de Kommentaren a froen Iech déi kuerz Ëmfro hei drënner ze huelen.