Ao amin'ny fikambanana iasako dia voarara ny asa lavitra. dia. Hatramin'ny herinandro lasa teo. Ankehitriny dia tsy maintsy nampihatra vahaolana maika izahay. Avy amin'ny raharaham-barotra - mampifanaraka ny dingana amin'ny endrika asa vaovao, avy aminay - PKI misy kaody PIN sy mari-pamantarana, VPN, fanoratana an-tsipiriany ary maro hafa.
Ankoatra ny zavatra hafa dia nanangana Infrastructure Desktop Remote aka Terminal Services aho. Manana fametrahana RDS maromaro any amin'ny foibe data samihafa izahay. Ny iray amin'ireo tanjona dia ny ahafahan'ny mpiara-miasa avy amin'ny sampana IT mifandray amin'ny fifandraisana amin'ny mpampiasa. Araka ny fantatrao dia misy mekanika RDS Shadow mahazatra ho an'izany, ary ny fomba tsotra indrindra handefasana izany dia ny fanomezana zon'ny mpitantana eo an-toerana amin'ny mpizara RDS.
Manaja sy manome lanja ny mpiara-miasa amiko aho, fa tena mitsiriritra rehefa mizara ny zon'ny admin. 🙂 Ho an'izay miombon-kevitra amiko dia araho ny tapaka.
Eny, mazava ny asa, andeha isika hidina any amin'ny raharaham-barotra.
dingana 1
Andao hamorona vondrona fiarovana ao amin'ny Active Directory RDP_Operators ary ampidiro ao anatin'izany ny kaontin'ireo mpampiasa izay tiantsika homena zo:
$Users = @(
"UserLogin1",
"UserLogin2",
"UserLogin3"
)
$Group = "RDP_Operators"
New-ADGroup -Name $Group -GroupCategory Security -GroupScope DomainLocal
Add-ADGroupMember -Identity $Group -Members $Users
Raha manana tranokala AD maro ianao dia mila miandry mandra-pamerenana azy amin'ny fanaraha-maso ny sehatra rehetra alohan'ny hirosoana amin'ny dingana manaraka. Tsy mihoatra ny 15 minitra izany matetika.
dingana 2
Andeha isika hanome zo ny vondrona hitantana fotoam-pivoriana amin'ny tsirairay amin'ireo mpizara RDSH:
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")
}
}
}
dingana 3
Ampio ny vondrona amin'ny vondrona eo an-toerana Mpampiasa Desktop lavitra amin'ny mpizara RDSH tsirairay. Raha atambatra amin'ny fanangonana session ny mpizaranao, dia ataonay amin'ny ambaratonga fanangonana izany:
$Group = "RDP_Operators"
$CollectionName = "MyRDSCollection"
[String[]]$CurrentCollectionGroups = @(Get-RDSessionCollectionConfiguration -CollectionName $CollectionName -UserGroup).UserGroup
Set-RDSessionCollectionConfiguration -CollectionName $CollectionName -UserGroup ($CurrentCollectionGroups + $Group)
Ho an'ny mpizara tokana ampiasainay , miandry ny fampiharana azy amin'ny mpizara. Ireo izay kamo loatra miandry dia afaka manafaingana ny dingana amin'ny fampiasana gpupdate taloha tsara, tsara kokoa .
dingana 4
Andao hanomana ity script PS manaraka ity ho an'ny "managers":
RDSManagement.ps1
$Servers = @(
"RDSHost01",
"RDSHost02",
"RDSHost03"
)
function Invoke-RDPSessionLogoff {
Param(
[parameter(Mandatory=$True, Position=0)][String]$ComputerName,
[parameter(Mandatory=$true, Position=1)][String]$SessionID
)
$ErrorActionPreference = "Stop"
logoff $SessionID /server:$ComputerName /v 2>&1
}
function Invoke-RDPShadowSession {
Param(
[parameter(Mandatory=$True, Position=0)][String]$ComputerName,
[parameter(Mandatory=$true, Position=1)][String]$SessionID
)
$ErrorActionPreference = "Stop"
mstsc /shadow:$SessionID /v:$ComputerName /control 2>&1
}
Function Get-LoggedOnUser {
Param(
[parameter(Mandatory=$True, Position=0)][String]$ComputerName="localhost"
)
$ErrorActionPreference = "Stop"
Test-Connection $ComputerName -Count 1 | Out-Null
quser /server:$ComputerName 2>&1 | Select-Object -Skip 1 | ForEach-Object {
$CurrentLine = $_.Trim() -Replace "s+"," " -Split "s"
$HashProps = @{
UserName = $CurrentLine[0]
ComputerName = $ComputerName
}
If ($CurrentLine[2] -eq "Disc") {
$HashProps.SessionName = $null
$HashProps.Id = $CurrentLine[1]
$HashProps.State = $CurrentLine[2]
$HashProps.IdleTime = $CurrentLine[3]
$HashProps.LogonTime = $CurrentLine[4..6] -join " "
$HashProps.LogonTime = $CurrentLine[4..($CurrentLine.GetUpperBound(0))] -join " "
}
else {
$HashProps.SessionName = $CurrentLine[1]
$HashProps.Id = $CurrentLine[2]
$HashProps.State = $CurrentLine[3]
$HashProps.IdleTime = $CurrentLine[4]
$HashProps.LogonTime = $CurrentLine[5..($CurrentLine.GetUpperBound(0))] -join " "
}
New-Object -TypeName PSCustomObject -Property $HashProps |
Select-Object -Property UserName, ComputerName, SessionName, Id, State, IdleTime, LogonTime
}
}
$UserLogin = Read-Host -Prompt "Введите логин пользователя"
Write-Host "Поиск RDP-сессий пользователя на серверах..."
$SessionList = @()
ForEach ($Server in $Servers) {
$TargetSession = $null
Write-Host " Опрос сервера $Server"
Try {
$TargetSession = Get-LoggedOnUser -ComputerName $Server | Where-Object {$_.UserName -eq $UserLogin}
}
Catch {
Write-Host "Ошибка: " $Error[0].Exception.Message -ForegroundColor Red
Continue
}
If ($TargetSession) {
Write-Host " Найдена сессия с ID $($TargetSession.ID) на сервере $Server" -ForegroundColor Yellow
Write-Host " Что будем делать?"
Write-Host " 1 - подключиться к сессии"
Write-Host " 2 - завершить сессию"
Write-Host " 0 - ничего"
$Action = Read-Host -Prompt "Введите действие"
If ($Action -eq "1") {
Invoke-RDPShadowSession -ComputerName $Server -SessionID $TargetSession.ID
}
ElseIf ($Action -eq "2") {
Invoke-RDPSessionLogoff -ComputerName $Server -SessionID $TargetSession.ID
}
Break
}
Else {
Write-Host " сессий не найдено"
}
}
Mba hahamora ny fandehanana ny script PS dia hamorona akorandriaka ho azy isika amin'ny endrika rakitra cmd mitovy anarana amin'ny script PS:
RDSManagement.cmd
@ECHO OFF
powershell -NoLogo -ExecutionPolicy Bypass -File "%~d0%~p0%~n0.ps1" %*
Napetrakay ao anaty lahatahiry ho azon'ny “manager” ny rakitra roa ary mangataka azy ireo hiditra indray izahay. Amin'izao fotoana izao, amin'ny alàlan'ny fampandehanana ny rakitra cmd, dia ho afaka hifandray amin'ny fotoam-piasan'ny mpampiasa hafa amin'ny fomba RDS Shadow izy ireo ary hanery azy ireo hivoaka (mety ilaina izany rehefa tsy afaka manafoana ny fivoriana "mihantona" ny mpampiasa).
Toa toy izao izany:
Ho an'ny "manager"
Ho an'ny mpampiasa
Hevitra farany vitsivitsy
Nuance 1. Raha toa ka natomboka talohan'ny namonoana ny script Set-RDSPermissions.ps1 teo amin'ny mpizara ny fivorian'ny mpampiasa izay ezahantsika hofehezina, dia hahazo hadisoana fidirana ny "mpitantana". Miharihary ny vahaolana eto: andraso mandra-pidiran'ny mpampiasa tantanina.
Nuance 2. Taorian'ny andro maromaro niasana tamin'ny RDP Shadow, dia nahatsikaritra bibikely na endri-javatra mahaliana izahay: aorian'ny fiafaran'ny fotoam-pialan-tsasatra, dia tsy hita intsony ny bara fiteny ao amin'ny lovia ho an'ny mpampiasa mifandray, ary mba hamerenana azy dia mila averina indray ny mpampiasa. -Hiditra. Raha ny fantatra dia tsy irery isika: , , .
Izay ihany. Mirary fahasalamana ho anao sy ny mpizaranao aho. Toy ny mahazatra, manantena ny valin-teninao amin'ny fanehoan-kevitra aho ary mangataka anao handray ny fanadihadiana fohy etsy ambany.
loharanom-baovao
Ireo mpampiasa voasoratra anarana ihany no afaka mandray anjara amin'ny fanadihadiana. Please.
Inona no ampiasainao?
8,1%AMMYY Admin5
17,7%AnyDesk11
9,7%DameWare6
24,2%Radmin15
14,5%RDS Shadow9
1,6%Fanampiana haingana / Windows Fanampiana lavitra1
38,7%TeamViewer24
32,3%Sary VNC20
32,3%hafa20
3,2%LiteManager2
Mpampiasa 62 no nifidy. Mpampiasa 22 no nifady.
Source: www.habr.com
