RDP เดธเต†เดทเดจเตเด•เดณเตเดŸเต† เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต เดšเตเดฎเดคเดฒเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต

RDP เดธเต†เดทเดจเตเด•เดณเตเดŸเต† เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต เดšเตเดฎเดคเดฒเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต
เดžเดพเตป เดœเต‹เดฒเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจ เดธเตเดฅเดพเดชเดจเดคเตเดคเดฟเตฝ, เดตเดฟเดฆเต‚เดฐ เดœเต‹เดฒเดฟเด•เตพ เดคเดคเตเดตเดคเตเดคเดฟเตฝ เดจเดฟเดฐเต‹เดงเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด†เดฏเดฟเดฐเตเดจเตเดจเต. เด•เดดเดฟเดžเตเดž เด†เดดเตเดš เดตเดฐเต†. เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเด‚ เด…เดŸเดฟเดฏเดจเตเดคเดฟเดฐเดฎเดพเดฏเดฟ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดฌเดฟเดธเดฟเดจเดธเตเดธเดฟเตฝ เดจเดฟเดจเตเดจเต - เด’เดฐเต เดชเตเดคเดฟเดฏ เดตเตผเด•เตเด•เต เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เตพ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตฝ, เดžเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต - PIN เด•เต‹เดกเตเด•เดณเตเด‚ เดŸเต‹เด•เตเด•เดฃเตเด•เดณเตเด‚ เด‰เดณเตเดณ PKI, VPN, เดตเดฟเดถเดฆเดฎเดพเดฏ เดฒเต‹เด—เดฟเด‚เด—เต เดŽเดจเตเดจเดฟเดตเดฏเตเด‚ เด…เดคเดฟเดฒเต‡เดฑเต†เดฏเตเด‚.
เดฎเดฑเตเดฑเต เด•เดพเดฐเตเดฏเด™เตเด™เดณเดฟเตฝ, เดžเดพเตป เดฑเดฟเดฎเต‹เดŸเตเดŸเต เดกเต†เดธเตเด•เตเดŸเต‹เดชเตเดชเต เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเตผ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดŸเต†เตผเดฎเดฟเดจเตฝ เดธเต‡เดตเดจเด™เตเด™เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดตเตเดฏเดคเตเดฏเดธเตเดค เดกเดพเดฑเตเดฑเดพ เดธเต†เดจเตเดฑเดฑเตเด•เดณเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เดจเดฟเดฐเดตเดงเดฟ RDS เดตเดฟเดจเตเดฏเดพเดธเด™เตเด™เดณเตเดฃเตเดŸเต. เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดธเต†เดทเดจเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดธเด‚เดตเต‡เดฆเดจเดพเดคเตเดฎเด•เดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดเดŸเดฟ เดตเด•เตเดชเตเดชเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดธเดนเดชเตเดฐเดตเตผเดคเตเดคเด•เดฐเต† เดชเตเดฐเดพเดชเตเดคเดฐเดพเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฏเดฟเดฐเตเดจเตเดจเต เดฒเด•เตเดทเตเดฏเด™เตเด™เดณเดฟเดฒเตŠเดจเตเดจเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เดฑเดฟเดฏเดพเดตเตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เด‡เดคเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต RDS เดทเดพเดกเต‹ เดฎเต†เด•เตเด•เดพเดจเดฟเดธเด‚ เด‰เดฃเตเดŸเต, RDS เดธเต†เตผเดตเดฑเตเด•เดณเดฟเตฝ เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เด…เดกเตเดฎเดฟเดจเดฟเดธเตเดŸเตเดฐเต‡เดฑเตเดฑเตผ เด…เดตเด•เดพเดถเด™เตเด™เตพ เดจเตฝเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต เด‡เดคเต เดจเดฟเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เดŽเดณเตเดชเตเดช เดฎเดพเตผเด—เด‚.
เดžเดพเตป เดŽเดจเตเดฑเต† เดธเดนเดชเตเดฐเดตเตผเดคเตเดคเด•เดฐเต† เดฌเดนเตเดฎเดพเดจเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดตเดฟเดฒเดฎเดคเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เดชเด•เตเดทเต‡ เด…เดกเตเดฎเดฟเตป เด…เดตเด•เดพเดถเด™เตเด™เตพ เด•เตˆเดฎเดพเดฑเตเดจเตเดจ เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดžเดพเตป เดตเดณเดฐเต† เด…เดคเตเดฏเดพเด—เตเดฐเดนเดฟเดฏเดพเดฃเต. ๐Ÿ™‚ เดŽเดจเตเดจเต‹เดŸเต เดฏเต‹เดœเดฟเด•เตเด•เตเดจเตเดจเดตเตผ, เด•เดŸเตเดŸเต เดชเดฟเดจเตเดคเตเดŸเดฐเตเด•.

เดถเดฐเดฟ, เดšเตเดฎเดคเดฒ เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต, เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เดฌเดฟเดธเดฟเดจเดธเตเดธเดฟเดฒเต‡เด•เตเด•เต เด‡เดฑเด™เตเด™เดพเด‚.

เด˜เดŸเตเดŸเด‚ เด•เตเดธเดจเตเดฎเตเด•เตเดธ

เดจเดฎเตเด•เตเด•เต เด†เด•เตเดฑเตเดฑเต€เดตเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ เด’เดฐเต เดธเตเดฐเด•เตเดทเดพ เด—เตเดฐเต‚เดชเตเดชเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเด‚ RDP_เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ เดžเด™เตเด™เตพ เด…เดตเด•เดพเดถเด™เตเด™เตพ เดเตฝเดชเตเดชเดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต† เด…เด•เตเด•เต—เดฃเตเดŸเตเด•เตพ เด…เดคเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตเด•:

$Users = @(
    "UserLogin1",
    "UserLogin2",
    "UserLogin3"
)
$Group = "RDP_Operators"
New-ADGroup -Name $Group -GroupCategory Security -GroupScope DomainLocal
Add-ADGroupMember -Identity $Group -Members $Users

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ AD เดธเตˆเดฑเตเดฑเตเด•เตพ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดŸเตเดคเตเดค เด˜เดŸเตเดŸเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เด…เดคเต เดŽเดฒเตเดฒเดพ เดกเตŠเดฎเต†เดฏเตเตป เด•เตบเดŸเตเดฐเต‹เดณเดฑเตเด•เดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เดชเด•เตผเดคเตเดคเตเดจเตเดจเดคเต เดตเดฐเต† เดจเดฟเด™เตเด™เตพ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด‡เดคเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ 15 เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เดŽเดŸเตเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ.

เด˜เดŸเตเดŸเด‚ เด•เตเดธเดจเตเดฎเตเด•เตเดธ

เด“เดฐเต‹ RDSH เดธเต†เตผเดตเดฑเตเด•เดณเดฟเดฒเตเด‚ เดŸเต†เตผเดฎเดฟเดจเตฝ เดธเต†เดทเดจเตเด•เตพ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด…เดตเด•เดพเดถเด‚ เด—เตเดฐเต‚เดชเตเดชเดฟเดจเต เดจเตฝเด•เดพเด‚:

เดธเต†เดฑเตเดฑเต-RDSPpermissions.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")
        }
    }
}

เด˜เดŸเตเดŸเด‚ เด•เตเดธเดจเตเดฎเตเด•เตเดธ

เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เด—เตเดฐเต‚เดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เด—เตเดฐเต‚เดชเตเดชเดฟเดจเต† เดšเต‡เตผเด•เตเด•เตเด• เดฑเดฟเดฎเต‹เดŸเตเดŸเต เดกเต†เดธเตเด•เตเดŸเต‹เดชเตเดชเต เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เด“เดฐเต‹ RDSH เดธเต†เตผเดตเดฑเตเด•เดณเดฟเดฒเตเด‚. เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเต†เตผเดตเดฑเตเด•เตพ เดธเต†เดทเตป เด•เดณเด•เตเดทเดจเตเด•เดณเดพเดฏเดฟ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดžเด™เตเด™เตพ เด‡เดคเต เดถเต‡เด–เดฐเดฃ เดคเดฒเดคเตเดคเดฟเดฒเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต:

$Group = "RDP_Operators"
$CollectionName = "MyRDSCollection"
[String[]]$CurrentCollectionGroups = @(Get-RDSessionCollectionConfiguration -CollectionName $CollectionName -UserGroup).UserGroup
Set-RDSessionCollectionConfiguration -CollectionName $CollectionName -UserGroup ($CurrentCollectionGroups + $Group)

เด’เดฑเตเดฑ เดธเต†เตผเดตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดžเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เด—เตเดฐเต‚เดชเตเดชเต เดจเดฏเด‚, เด‡เดคเต เดธเต†เตผเดตเดฑเตเด•เดณเดฟเตฝ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เดพเตป เดฎเดŸเดฟเดฏเตเดณเตเดณเดตเตผเด•เตเด•เต เดจเดฒเตเดฒ เดชเดดเดฏ gpupdate เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเด•เตเดฐเดฟเดฏ เดตเต‡เด—เดคเตเดคเดฟเดฒเดพเด•เตเด•เดพเด‚, เดตเต†เดฏเดฟเดฒเดคเตเดคเต เด•เต‡เดจเตเดฆเตเดฐเดฎเดพเดฏเดฟ.

เด˜เดŸเตเดŸเด‚ เด•เตเดธเดจเตเดฎเตเด•เตเดธ

"เดฎเดพเดจเต‡เดœเตผเดฎเดพเตผ"เด•เตเด•เดพเดฏเดฟ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ PS เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดพเด‚:

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 "    ัะตััะธะน ะฝะต ะฝะฐะนะดะตะฝะพ"
    }
}

PS เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, PS เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดจเตเดฑเต† เด…เดคเต‡ เดชเต‡เดฐเดฟเตฝ เด’เดฐเต cmd เดซเดฏเดฒเดฟเดจเตเดฑเต† เดฐเต‚เดชเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เด…เดคเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดทเต†เตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด‚:

RDSManagement.cmd

@ECHO OFF
powershell -NoLogo -ExecutionPolicy Bypass -File "%~d0%~p0%~n0.ps1" %*

เดžเด™เตเด™เตพ เดฐเดฃเตเดŸเต เดซเดฏเดฒเตเด•เดณเตเด‚ "เดฎเดพเดจเต‡เดœเตผเดฎเดพเตผเด•เตเด•เต" เด†เด•เตโ€Œเดธเดธเต เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจ เด’เดฐเต เดซเต‹เตพเดกเดฑเดฟเตฝ เด‡เดŸเตเด•เดฏเตเด‚ เด…เดตเดฐเต‹เดŸเต เดตเต€เดฃเตเดŸเตเด‚ เดฒเต‹เด—เดฟเตป เดšเต†เดฏเตเดฏเดพเตป เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด‡เดชเตเดชเต‹เตพ, cmd เดซเดฏเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†, เด…เดตเตผเด•เตเด•เต RDS เดทเดพเดกเต‹ เดฎเต‹เดกเดฟเดฒเตเดณเตเดณ เดฎเดฑเตเดฑเต เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต† เดธเต†เดทเดจเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด…เดตเดฐเต† เดฒเต‹เด—เต เด”เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เดจเดฟเตผเดฌเดจเตเดงเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚ (เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เด’เดฐเต "เดนเดพเด‚เด—เดฟเด‚เด—เต" เดธเต†เดทเตป เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดฏเดฟ เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดพเดคเตเดคเดชเตเดชเต‹เตพ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเด•เตเด‚).

เด‡เดคเต เด‡เดคเตเดชเต‹เดฒเต† เดคเต‹เดจเตเดจเตเดจเตเดจเต:

"เดฎเดพเดจเต‡เดœเตผเด•เตเด•เต" เดตเต‡เดฃเตเดŸเดฟRDP เดธเต†เดทเดจเตเด•เดณเตเดŸเต† เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต เดšเตเดฎเดคเดฒเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต

เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเตRDP เดธเต†เดทเดจเตเด•เดณเตเดŸเต† เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต เดšเตเดฎเดคเดฒเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต

เด…เดตเดธเดพเดจเดคเตเดคเต† เดšเดฟเดฒ เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เตพ

เดธเต‚เด•เตเดทเตเดฎเดค 1. เดธเต†เตผเดตเดฑเดฟเตฝ Set-RDSPpermissions.ps1 เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดŽเด•เตโ€Œเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดžเด™เตเด™เตพ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด‚ เดจเต‡เดŸเดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจ เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดธเต†เดทเตป เดธเดฎเดพเดฐเด‚เดญเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, โ€œเดฎเดพเดจเต‡เดœเดฑเดฟเดจเตโ€ เด’เดฐเต เด†เด•เตโ€Œเดธเดธเต เดชเดฟเดถเด•เต เดฒเดญเดฟเด•เตเด•เตเด‚. เด‡เดตเดฟเดŸเต† เดชเดฐเดฟเดนเดพเดฐเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต: เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดค เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดฒเต‹เด—เดฟเตป เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดตเดฐเต† เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเด•.

เดธเต‚เด•เตเดทเตเดฎเดค 2. เด†เตผโ€Œเดกเดฟโ€Œเดชเดฟ เดทเดพเดกเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดจเดฟเดฐเดตเดงเดฟ เดฆเดฟเดตเดธเด™เตเด™เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเด‚, เดฐเดธเด•เดฐเดฎเดพเดฏ เด’เดฐเต เดฌเด—เต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดซเต€เดšเตเดšเตผ เดžเด™เตเด™เตพ เดถเตเดฐเดฆเตเดงเดฟเดšเตเดšเต: เดทเดพเดกเต‹ เดธเต†เดทเตป เด…เดตเดธเดพเดจเดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเด‚, เดŸเตเดฐเต‡เดฏเดฟเดฒเต† เดญเดพเดทเดพ เดฌเดพเตผ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตโ€Œเดคเดคเดฟเดจเต เด…เดชเตเดฐเดคเตเดฏเด•เตเดทเดฎเดพเด•เตเด‚, เด…เดคเต เดคเดฟเดฐเดฟเด•เต† เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดตเต€เดฃเตเดŸเตเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. -เดฒเต‡เดพเด—เดฟเตป. เด…เดคเต เดฎเดพเดฑเตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดžเด™เตเด™เตพ เด’เดฑเตเดฑเดฏเตเด•เตเด•เดฒเตเดฒ: เดคเดตเดฃ, ะดะฒะฐ, เดฎเต‚เดจเตเดจเต.

เด…เดคเตเดฐเดฏเต‡เดฏเตเดณเตเดณเต‚. เดจเดฟเด™เตเด™เตพเด•เตเด•เตเด‚ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเต†เตผเดตเตผเดฎเดพเตผเด•เตเด•เตเด‚ เดจเดฒเตเดฒ เด†เดฐเต‹เด—เตเดฏเด‚ เดจเต‡เดฐเตเดจเตเดจเต. เดŽเดฒเตเดฒเดพเดฏเตโ€Œเดชเตเดชเต‹เดดเตเด‚ เดŽเดจเตเดจเดชเต‹เดฒเต†, เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดซเต€เดกเตโ€Œเดฌเดพเด•เตเด•เต เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต, เด’เดชเตเดชเด‚ เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เดนเตเดฐเดธเตเดต เดธเตผเดตเต‡เดฏเดฟเตฝ เดชเด™เตเด•เต†เดŸเตเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต‹เดŸเต เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ

เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดค เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เดฎเดพเดคเตเดฐเดฎเต‡ เดธเตผเดตเต‡เดฏเดฟเตฝ เดชเด™เตเด•เต†เดŸเตเด•เตเด•เดพเตป เด•เดดเดฟเดฏเต‚. เดธเตˆเตป เด‡เตปเดฆเดฏเดตเดพเดฏเดฟ.

เดจเดฟเด™เตเด™เตพ เดŽเดจเตเดคเดพเดฃเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต?

  • 8,1%AMMYY เด…เดกเตเดฎเดฟเตป5

  • 17,7%AnyDesk11

  • 9,7%เดกเดพเด‚เดตเต†เดฏเตผ6

  • 24,2%เดฑเดพเดกเตเดฎเดฟเตป15

  • 14,5%RDS เดทเดพเดกเต‹ 9

  • 1,6%เด•เตเดตเดฟเด•เตเด•เต เด…เดธเดฟเดธเตเดฑเตเดฑเต / เดตเดฟเตปเดกเต‹เดธเต เดฑเดฟเดฎเต‹เดŸเตเดŸเต เด…เดธเดฟเดธเตเดฑเตเดฑเตปเดธเต1

  • 38,7%เดŸเต€เด‚ เดตเตเดฏเต‚เดตเตผ24

  • 32,3%VNC20

  • 32,3%เดฎเดฑเตเดฑเตเดณเตเดณเดต20

  • 3,2%เดฒเตˆเดฑเตเดฑเตเดฎเดพเดจเต‡เดœเตผ2

62 เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดตเต‹เดŸเตเดŸเต เดšเต†เดฏเตเดคเต. 22 เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดตเดฟเดŸเตเดŸเตเดจเดฟเดจเตเดจเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•