RDP เจธเฉˆเจธเจผเจจเจพเจ‚ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจธเฉŒเจ‚เจชเจฃเจพ

RDP เจธเฉˆเจธเจผเจจเจพเจ‚ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจธเฉŒเจ‚เจชเจฃเจพ
เจœเจฟเจธ เจธเฉฐเจธเจฅเจพ เจตเจฟเฉฑเจš เจฎเฉˆเจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเจพเจ‚, เจ‰เฉฑเจฅเฉ‡ เจฐเจฟเจฎเฉ‹เจŸ เจ•เฉฐเจฎ เจฆเฉ€ เจธเจฟเจงเจพเจ‚เจคเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจฎเจจเจพเจนเฉ€ เจนเฉˆเฅค เจธเฉ€. เจชเจฟเจ›เจฒเฉ‡ เจนเจซเจผเจคเฉ‡ เจคเฉฑเจ•. เจนเฉเจฃ เจธเจพเจจเฉ‚เฉฐ เจซเฉŒเจฐเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เฉฑเจ• เจนเฉฑเจฒ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจธเฉ€เฅค เจ•เจพเจฐเฉ‹เจฌเจพเจฐ เจคเฉ‹เจ‚ - เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจฆเฉ‡ เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจเจพ, เจธเจพเจกเฉ‡ เจตเฉฑเจฒเฉ‹เจ‚ - PIN เจ•เฉ‹เจก เจ…เจคเฉ‡ เจŸเฉ‹เจ•เจจเจพเจ‚, VPN, เจตเจฟเจธเจคเฉเจฐเจฟเจค เจฒเฉŒเจ—เจฟเฉฐเจ— เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจฌเจนเฉเจค เจ•เฉเจ เจฆเฉ‡ เจจเจพเจฒ PKIเฅค
เจนเฉ‹เจฐ เจšเฉ€เจœเจผเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ, เจฎเฉˆเจ‚ เจฐเจฟเจฎเฉ‹เจŸ เจกเฉˆเจธเจ•เจŸเฉŒเจช เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเจพ เจ‰เจฐเจซ เจŸเจฐเจฎเฉ€เจจเจฒ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจธเจฅเจพเจชเจค เจ•เจฐ เจฐเจฟเจนเจพ เจธเฉ€เฅค เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจตเฉฑเจ–-เจตเฉฑเจ– เจกเจพเจŸเจพ เจธเฉˆเจ‚เจŸเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจ•เจˆ RDS เจคเฉˆเจจเจพเจคเฉ€เจ†เจ‚ เจนเจจเฅค เจ‡เฉฑเจ• เจŸเฉ€เจšเจพ เจธเจฌเฉฐเจงเจค เจ†เจˆเจŸเฉ€ เจตเจฟเจญเจพเจ—เจพเจ‚ เจฆเฉ‡ เจธเจนเจฟเจ•เจฐเจฎเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเฉˆเจธเจผเจจเจพเจ‚ เจจเจพเจฒ เจ‡เฉฐเจŸเจฐเจเจ•เจŸเจฟเจต เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจœเฉเฉœเจจ เจฒเจˆ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‰เจฃเจพ เจธเฉ€เฅค เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจœเจพเจฃเจฆเฉ‡ เจนเฉ‹, เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจ‡เฉฑเจ• เจฎเจฟเจ†เจฐเฉ€ RDS เจธเจผเฉˆเจกเฉ‹ เจตเจฟเจงเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจธเฉŒเจ‚เจชเจฃ เจฆเจพ เจธเจญ เจคเฉ‹เจ‚ เจ†เจธเจพเจจ เจคเจฐเฉ€เจ•เจพ เจนเฉˆ RDS เจธเจฐเจตเจฐเจพเจ‚ 'เจคเฉ‡ เจธเจฅเจพเจจเจ• เจชเฉเจฐเจฌเฉฐเจงเจ• เจ…เจงเจฟเจ•เจพเจฐ เจฆเฉ‡เจฃเจพเฅค
เจฎเฉˆเจ‚ เจ†เจชเจฃเฉ‡ เจธเจพเจฅเฉ€เจ†เจ‚ เจฆเจพ เจ†เจฆเจฐ เจ•เจฐเจฆเจพ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจ•เจฆเจฐ เจ•เจฐเจฆเจพ เจนเจพเจ‚, เจชเจฐ เจœเจฆเฉ‹เจ‚ เจชเฉเจฐเจธเจผเจพเจธเจ• เจฆเฉ‡ เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉŒเจ‚เจชเจฃ เจฆเฉ€ เจ—เฉฑเจฒ เจ†เจ‰เจ‚เจฆเฉ€ เจนเฉˆ เจคเจพเจ‚ เจฎเฉˆเจ‚ เจฌเจนเฉเจค เจฒเจพเจฒเจšเฉ€ เจนเจพเจ‚เฅค ๐Ÿ™‚ เจœเจฟเจนเฉœเฉ‡ เจฎเฉ‡เจฐเฉ‡ เจจเจพเจฒ เจธเจนเจฟเจฎเจค เจนเจจ, เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจ•เฉฑเจŸเฉ‹.

เจ–เฉˆเจฐ, เจ•เฉฐเจฎ เจธเจชเฉฑเจธเจผเจŸ เจนเฉˆ, เจ†เจ“ เจนเฉเจฃ เจ•เจพเจฐเฉ‹เจฌเจพเจฐ 'เจคเฉ‡ เจ‰เจคเจฐเฉ€เจเฅค

เจ•เจฆเจฎ 1

เจšเจฒเฉ‹ เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเฉเจฐเฉฑเจ–เจฟเจ† เจธเจฎเฉ‚เจน เจฌเจฃเจพเจ‰ RDP_Operators เจ…เจคเฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš เจ‰เจนเจจเจพเจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฆเฉ‡ เจ–เจพเจคเฉ‡ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹ เจœเจฟเจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจธเฉ€เจ‚ เจ…เจงเจฟเจ•เจพเจฐ เจธเฉŒเจ‚เจชเจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚:

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

เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจคเฉ‹เจ‚ เจตเฉฑเจง AD เจธเจพเจˆเจŸเจพเจ‚ เจนเจจ, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ…เจ—เจฒเฉ‡ เจชเฉœเจพเจ… 'เจคเฉ‡ เจœเจพเจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ‡เจธ เจจเฉ‚เฉฐ เจธเจพเจฐเฉ‡ เจกเฉ‹เจฎเฉ‡เจจ เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐเจพเจ‚ 'เจคเฉ‡ เจฆเฉเจนเจฐเจพเจ‰เจฃ เจคเฉฑเจ• เจ‰เจกเฉ€เจ• เจ•เจฐเจจเฉ€ เจชเจตเฉ‡เจ—เฉ€เฅค เจ‡เจน เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ 15 เจฎเจฟเฉฐเจŸเจพเจ‚ เจคเฉ‹เจ‚ เจตเฉฑเจง เจจเจนเฉ€เจ‚ เจฒเฉˆเจ‚เจฆเจพเฅค

เจ•เจฆเจฎ 2

เจ†เจ‰ เจธเจฎเฉ‚เจน เจจเฉ‚เฉฐ เจนเจฐเฉ‡เจ• RDSH เจธเจฐเจตเจฐ 'เจคเฉ‡ เจŸเจฐเจฎเฉ€เจจเจฒ เจธเฉˆเจธเจผเจจเจพเจ‚ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจจ เจฆเฉ‡ เจ…เจงเจฟเจ•เจพเจฐ เจฆเฉ‡เจˆเจ:

เจธเฉˆเฉฑเจŸ-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

เจธเจฎเฉ‚เจน เจจเฉ‚เฉฐ เจธเจฅเจพเจจเจ• เจธเจฎเฉ‚เจน เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹ เจฐเจฟเจฎเฉ‹เจŸ เจกเฉˆเจธเจ•เจŸเจพเจช เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจนเจฐเฉ‡เจ• RDSH เจธเจฐเจตเจฐ 'เจคเฉ‡เฅค เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเฉ‡ เจธเจฐเจตเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉˆเจธเจผเจจ เจธเฉฐเจ—เฉเจฐเจนเจฟ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจ‡เจน เจธเฉฐเจ—เฉเจฐเจนเจฟ เจชเฉฑเจงเจฐ 'เจคเฉ‡ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚:

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

เจธเจฟเฉฐเจ—เจฒ เจธเจฐเจตเจฐเจพเจ‚ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจตเจฐเจคเจฆเฉ‡ เจนเจพเจ‚ เจ—เจฐเฉเฉฑเจช เจจเฉ€เจคเฉ€, เจธเจฐเจตเจฐเจพเจ‚ 'เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจนเฉ‹เจฃ เจฆเฉ€ เจ‰เจกเฉ€เจ• เจ•เฉ€เจคเฉ€ เจœเจพ เจฐเจนเฉ€ เจนเฉˆเฅค เจœเจฟเจนเฉœเฉ‡ เจฒเฉ‹เจ• เจ‡เฉฐเจคเจœเจผเจพเจฐ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจ†เจฒเจธเฉ€ เจนเจจ, เจคเจฐเจœเฉ€เจนเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจšเฉฐเจ—เฉ‡ เจชเฉเจฐเจพเจฃเฉ‡ gpupdate เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจ เจ•เฉ‡เจ‚เจฆเจฐเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡.

เจ•เจฆเจฎ 4

เจ†เจ‰ "เจชเฉเจฐเจฌเฉฐเจงเจ•เจพเจ‚" เจฒเจˆ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ 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 เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจ‡เฉฑเจ• cmd เจซเจพเจˆเจฒ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเจผเฉˆเฉฑเจฒ เจฌเจฃเจพเจตเจพเจ‚เจ—เฉ‡ เจœเจฟเจธเจฆเจพ เจจเจพเจฎ PS เจธเจ•เฉเจฐเจฟเจชเจŸ เจนเฉˆ:

RDSManagement.cmd

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

เจ…เจธเฉ€เจ‚ เจฆเฉ‹เจตเฉ‡เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจซเฉ‹เจฒเจกเจฐ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ‡ เจนเจพเจ‚ เจœเฉ‹ "เจชเฉเจฐเจฌเฉฐเจงเจ•เจพเจ‚" เจฒเจˆ เจชเจนเฉเฉฐเจšเจฏเฉ‹เจ— เจนเฉ‹เจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฎเฉเฉœ-เจฒเฉŒเจ—เจ‡เจจ เจ•เจฐเจจ เจฒเจˆ เจ•เจนเฉ‡เจ—เจพเฅค เจนเฉเจฃ, cmd เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจšเจฒเจพ เจ•เฉ‡, เจ‰เจน RDS เจธเจผเฉˆเจกเฉ‹ เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจฆเฉ‚เจœเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฆเฉ‡ เจธเฉˆเจธเจผเจจเจพเจ‚ เจจเจพเจฒ เจœเฉเฉœเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจ—เฉ‡ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉŒเจ— เจ†เจ‰เจŸ เจ•เจฐเจจ เจฒเจˆ เจฎเจœเจผเจฌเฉ‚เจฐ เจ•เจฐเจจเจ—เฉ‡ (เจ‡เจน เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเฉเจคเฉฐเจคเจฐ เจคเฉŒเจฐ 'เจคเฉ‡ "เจนเฉˆเจ‚เจ—เจฟเฉฐเจ—" เจธเฉˆเจธเจผเจจ เจจเฉ‚เฉฐ เจ–เจคเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ)เฅค

เจ‡เจน เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ:

"เจฎเฉˆเจจเฉ‡เจœเจฐ" เจฒเจˆRDP เจธเฉˆเจธเจผเจจเจพเจ‚ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจธเฉŒเจ‚เจชเจฃเจพ

เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฒเจˆRDP เจธเฉˆเจธเจผเจจเจพเจ‚ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจธเฉŒเจ‚เจชเจฃเจพ

เจ•เฉเจ เจ…เฉฐเจคเจฎ เจŸเจฟเฉฑเจชเจฃเฉ€เจ†เจ‚

เจธเฉ‚เจ–เจฎ 1. เจœเฉ‡เจ•เจฐ เจฏเฉ‚เจœเจผเจฐ เจธเฉˆเจธเจผเจจ เจœเจฟเจธ 'เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจ•เฉฐเจŸเจฐเฉ‹เจฒ เจนเจพเจธเจฒ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐ เจฐเจนเฉ‡ เจนเจพเจ‚, เจธเจฐเจตเจฐ 'เจคเฉ‡ Set-RDSPermissions.ps1 เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจฒเจพเจ‚เจš เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€, เจคเจพเจ‚ "เจชเฉเจฐเจฌเฉฐเจงเจ•" เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจเจ•เจธเฉˆเจธ เจ—เจฒเจคเฉ€ เจฎเจฟเจฒเฉ‡เจ—เฉ€เฅค เจ‡เฉฑเจฅเฉ‡ เจนเฉฑเจฒ เจธเจชเฉฑเจธเจผเจŸ เจนเฉˆ: เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฒเฉŒเจ—เจ‡เจจ เจนเฉ‹เจฃ เจคเฉฑเจ• เจ‰เจกเฉ€เจ• เจ•เจฐเฉ‹เฅค

เจธเฉ‚เจ–เจฎ 2. RDP เจธเจผเฉˆเจกเฉ‹ เจฆเฉ‡ เจจเจพเจฒ เจ•เจˆ เจฆเจฟเจจเจพเจ‚ เจคเฉฑเจ• เจ•เฉฐเจฎ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจฆเจฟเจฒเจšเจธเจช เจฌเฉฑเจ— เจœเจพเจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฆเฉ‡เจ–เฉ€: เจธเจผเฉˆเจกเฉ‹ เจธเฉˆเจธเจผเจจ เจฆเฉ€ เจธเจฎเจพเจชเจคเฉ€ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉเจ†เจฐเจพ เจ•เจจเฉˆเจ•เจŸ เจ•เฉ€เจคเฉ‡ เจœเจพเจฃ เจฒเจˆ เจŸเจฐเฉ‡ เจตเจฟเฉฑเจš เจญเจพเจธเจผเจพ เจชเฉฑเจŸเฉ€ เจ—เจพเจ‡เจฌ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจตเจพเจชเจธ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ, เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ -เจฒเจพเจ—เจฟเจจ. เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เจน เจชเจคเจพ เจšเจฒเจฆเจพ เจนเฉˆ, เจ…เจธเฉ€เจ‚ เจ‡เจ•เฉฑเจฒเฉ‡ เจจเจนเฉ€เจ‚ เจนเจพเจ‚: เจตเจพเจฐ, ะดะฒะฐ, เจคเจฟเฉฐเจจ.

เจ‡เจน เจธเจญ เจนเฉˆ. เจฎเฉˆเจ‚ เจคเฉเจนเจพเจกเฉ€ เจ…เจคเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจธเจฐเจตเจฐเจพเจ‚ เจฆเฉ€ เจšเฉฐเจ—เฉ€ เจธเจฟเจนเจค เจฆเฉ€ เจ•เจพเจฎเจจเจพ เจ•เจฐเจฆเจพ เจนเจพเจ‚เฅค เจนเจฎเฉ‡เจธเจผเจพ เจตเจพเจ‚เจ—, เจฎเฉˆเจ‚ เจŸเจฟเฉฑเจชเจฃเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ‡ เจซเฉ€เจกเจฌเฉˆเจ• เจฆเฉ€ เจ‰เจกเฉ€เจ• เจ•เจฐเจฆเจพ เจนเจพเจ‚ เจ…เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเฉ‡เจ เจพเจ‚ เจ›เฉ‹เจŸเจพ เจธเจฐเจตเฉ‡เจ–เจฃ เจ•เจฐเจจ เจฒเจˆ เจ•เจนเจฟเฉฐเจฆเจพ เจนเจพเจ‚เฅค

เจธเจฐเฉ‹เจค

เจธเจฟเจฐเจซเจผ เจฐเจœเจฟเจธเจŸเจฐเจก เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจนเฉ€ เจธเจฐเจตเฉ‡เจ–เจฃ เจตเจฟเฉฑเจš เจนเจฟเฉฑเจธเจพ เจฒเฉˆ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจธเจพเจˆเจจ - เจ‡เจจ, เจคเฉเจนเจพเจกเจพ เจธเฉเจ†เจ—เจค เจนเฉˆ.

เจคเฉเจธเฉ€เจ‚ เจ•เฉ€ เจตเจฐเจคเจฆเฉ‡ เจนเฉ‹?

  • 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%LiteManager2

62 เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจจเฉ‡ เจตเฉ‹เจŸ เจ•เฉ€เจคเจพเฅค 22 เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฌเจšเฉ‡เฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹