Delegasiona fitantanana ny fivoriana RDP

Delegasiona fitantanana ny fivoriana RDP
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 politikan'ny vondrona, 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 afovoan.

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"Delegasiona fitantanana ny fivoriana RDP

Ho an'ny mpampiasaDelegasiona fitantanana ny fivoriana RDP

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: fotoana, Π΄Π²Π°, telo.

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. HiditraPlease.

Inona no ampiasainao?

  • 8,1%AMMYY Admin5

  • 17,7%AnyDesk11

  • 9,7%DameWare6

  • 24,2%Radmin15

  • 14,5%RDS Shadow9

  • 1,6%Quick Assist / Windows Remote Assistance1

  • 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

Add a comment