Applies ToWindows Server 2008 Windows Server 2008 R2 Windows Server 2012 Windows Server 2012 R2 Windows Server 2016 Windows Server 2019, all editions

สรุป

ความเชื่อถือฟอเรสต์มีวิธีสำหรับทรัพยากรที่อยู่ในฟอเรสต์มี Active Directory จะเชื่อถือข้อมูลเฉพาะตัวจากฟอเรสต์อื่น ความน่าเชื่อถือนี้สามารถกำหนดค่าในทั้งสองทิศทาง ฟอเรสต์เชื่อถือได้เป็นแหล่งมาของข้อมูลเฉพาะตัวของผู้ใช้ ฟอเรสต์ trusting ประกอบด้วยทรัพยากรที่ผู้ใช้ที่รับรองความถูกต้อง เชื่อถือฟอเรสต์สามารถรับรองความถูกต้องผู้ใช้ฟอเรสต์ trusting โดยไม่อนุญาตให้มีการกลับรายการจะเกิดขึ้น

การมอบหมาย Kerberos unconstrained คือ กลไกที่ผู้ใช้ส่งข้อมูลประจำตัวของการบริการเมื่อต้องการเปิดใช้งานการบริการการเข้าถึงทรัพยากรในนามของผู้ใช้ เมื่อต้องการเปิดใช้งานการรับมอบสิทธิ์ Kerberos unconstrained บัญชีการบริการในไดเรกทอรีที่ใช้งานอยู่ต้องทำเครื่องหมายว่าน่าเชื่อถือสำหรับการมอบหมายงาน วิธีนี้สร้างปัญหาถ้าผู้ใช้และบริการอยู่ในฟอเรสต์อื่น ฟอเรสต์บริการรับผิดชอบในการอนุญาตให้มีการมอบหมายงาน การมอบหมายที่มีข้อมูลประจำตัวของผู้ใช้จากฟอเรสต์ของผู้ใช้

อนุญาตให้ฟอเรสต์หนึ่งเพื่อช่วยตัดสินใจการรักษาความปลอดภัยที่มีผลกระทบต่อบัญชีฟอเรสต์อื่นละเมิดความปลอดภัยขอบเขตระหว่างฟอเรสต์ ผู้ที่เป็นเจ้าของฟอเรสต์ trusting จู่โจมสามารถร้องขอการมอบหมายของ TGT รหัสประจำตัวจากฟอเรสต์เชื่อถือได้ ให้กับทรัพยากรที่อยู่ในฟอเรสต์เชื่อถือได้เข้า นี้ไม่นำไปใช้กับ Kerberos ที่จำกัดการมอบหมาย (KCD)

Windows Server 2012 นำมาใช้บังคับสำหรับขอบเขตของฟอเรสต์สำหรับการมอบหมายเต็มของ Kerberos คุณลักษณะนี้เพิ่มนโยบายโดเมนเชื่อถือได้จะปิดใช้งานการมอบหมาย unconstrained บนพื้นฐานสำหรับแต่ละความเชื่อถือ การตั้งค่าเริ่มต้นสำหรับคุณลักษณะนี้อนุญาตให้มีการมอบหมาย unconstrained และไม่ปลอดภัย

มีโปรแกรมปรับปรุงความปลอดภัยทำให้ปลอดภัยสำหรับ Windows Server เวอร์ชันต่อไปนี้:

  • เซิร์ฟเวอร์ Windows 2019

  • Windows Server 2016

  • Windows Server 2012 R2

  • Windows Server 2012

คุณลักษณะนี้พร้อมกับการเปลี่ยนแปลงในการรักษาความปลอดภัยที่เข้มงวดได้ backported ให้เป็นรุ่นต่อไปนี้:

  • Windows Server 2008 R2

  • Windows Server 2008

ปรับปรุงการรักษาความปลอดภัยเหล่านี้ทำการเปลี่ยนแปลงต่อไปนี้:

  • การมอบหมาย unconstrained Kerberos ถูกปิดการใช้งาน โดยค่าเริ่มต้นในฟอเรสต์ใหม่และความเชื่อถือภายนอกใหม่หลังจากที่คุณติดตั้งปรับปรุง 14 พฤษภาคมและโปรแกรมปรับปรุงรุ่นที่ใหม่กว่า

  • การมอบหมาย Kerberos unconstrained ถูกปิดใช้งานในฟอเรสต์ (ทั้งเก่า และใหม่) และความเชื่อถือภายนอกหลังจากที่คุณติดตั้งการ 9 กรกฎาคม 2019 ปรับปรุงและการปรับปรุงรุ่นที่ใหม่กว่า

  • ผู้ดูแลระบบสามารถเปิดใช้งานการรับมอบสิทธิ์ Kerberos unconstrained โดยในเดือนพฤษภาคมหรือรุ่นที่ใหม่กว่าของโมดู NETDOM และ PowerShell โฆษณา

โปรแกรมปรับปรุงอาจทำให้เกิดความขัดแย้งของความเข้ากันได้สำหรับโปรแกรมประยุกต์ที่จำเป็นต้องการมอบหมาย unconstrained ข้ามฟอเรสต์หรือความเชื่อถือภายนอกอยู่ในขณะนี้ นี้เป็นจริงโดยเฉพาะอย่างยิ่งภายนอกแทนที่ค่าสถานะการตรวจสอบสินค้า (หรือที่เรียกอีกอย่างหนึ่งว่า SID ที่กรองข้อมูล) ถูกเปิดใช้งาน โดยค่าเริ่มต้นของบริษัท โดยเฉพาะอย่างยิ่ง คำขอการรับรองความถูกต้องสำหรับบริการที่ใช้การมอบหมาย unconstrained ผ่านชนิดเชื่อถือได้อยู่ในรายการจะล้มเหลวเมื่อคุณร้องขอบัตรผ่านใหม่

วันนำออกใช้ สำหรับดูเส้นเวลาปรับปรุง

วิธีแก้ไขปัญหาชั่วคราว

เมื่อต้องการรักษาความปลอดภัยของข้อมูลและบัญชีบนเซิร์ฟเวอร์ Windows รุ่นที่มีคุณลักษณะบังคับสำหรับขอบเขตของฟอเรสต์สำหรับการมอบหมายเต็ม Kerberosคุณสามารถบล็อคการมอบหมาย TGT หลังจากคุณติดตั้งโปรแกรมปรับปรุง 2019 มีนาคมข้ามมีความน่าเชื่อถือขาเข้า โดยการตั้งค่านี้ ค่าสถานะ netdom EnableTGTDelegationเป็นNo, เป็นดังนี้:

netdom.exe trust fabrikam.com /domain:contoso.com /EnableTGTDelegation:No

การมอบหมาย TGT ถูกบล็อคในฟอเรสต์ใหม่ และที่มีอยู่และความเชื่อถือภายนอกหลังจากที่คุณติดตั้งในเดือนพฤษภาคม และ 2019 กรกฎาคมอัพเดตามลำดับ

เมื่อต้องการเปิดใช้งานการมอบหมายใหม่ผ่านความเชื่อถือ และกลับไปยังการตั้งค่าคอนฟิกไม่ปลอดภัยเดิมจนกว่าจะสามารถเปิดใช้งานการมอบหมายที่มีข้อจำกัด หรือ ใช้ทรัพยากร ตั้งค่าสถานะEnableTGTDelegationให้เป็นYes

บรรทัดคำสั่งNETDOMเพื่อเปิดใช้งานการมอบหมาย TGT เป็นดังนี้:

netdom trust <TrustedDomainName > /domain:<TrustingDomainName > /EnableTgtDelegation:Yes

คุณสามารถกันทางแนวคิดคิดว่า ไวยากรณ์ NETDOM สำหรับการเปิดใช้งานการมอบหมาย TGT เป็นดังนี้:

netdom trust <domain that you are administering> /domain:<domain whose trust NETDOM is modifying> /EnableTgtDelegation:Yes

ไวยากรณ์ NETDOM เพื่อเปิดใช้งาน TGT การมอบหมายของผู้ใช้ fabrakam.com บนเซิร์ฟเวอร์ contoso.com เป็นดังนี้:

netdom.exe trust fabrikam.com /domain:contoso.com /EnableTGTDelegation:Yes

หมายเหตุ

  • ควรตั้งค่าสถานะEnableTGTDelegationในโดเมนเชื่อถือได้ (fabrikam.com ในกรณีนี้) สำหรับแต่ละโดเมน trusting (เช่น contoso.com) หลังจากที่มีตั้งค่าสถานะ โดเมนเชื่อถือได้จะช่วยให้ TGTs จะถูกมอบหมายให้กับโดเมน trusting ไม่มีอีกต่อไป

  • สถานะความปลอดภัยสำหรับ EnableTGTDelegation ไม่

  • โปรแกรมประยุกต์หรือบริการที่อาศัยการมอบหมาย unconstrained ข้ามป่าไม้ใด ๆ จะล้มเหลวเมื่อ EnableTGTDelegation ด้วยตนเอง หรือโดยทางโปรแกรมตั้งค่าใช่ ค่าเริ่มต้น EnableTGTDelegation เป็นNOในความเชื่อถือที่มีอยู่ และใหม่หลังจากที่คุณติดตั้งโปรแกรมปรับปรุง 2019 พฤษภาคมและ 2019 กรกฎาคม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการตรวจสอบความล้มเหลวนี้ ดูบริการที่อาศัยการมอบหมาย unconstrained การค้นหา ดูการปรับปรุงเส้นเวลาสำหรับเส้นเวลาของการเปลี่ยนแปลงที่มีผลต่อวิธีการแก้ปัญหานี้สามารถถูกนำไปใช้

  • สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ NETDOM ดูเอกสารประกอบของ Netdom.exe

  • ถ้าคุณต้องเปิดใช้งานการมอบหมาย TGT ในความน่าเชื่อถือ ขอแนะนำว่า คุณควรบรรเทาความเสี่ยงดังกล่าว โดยการเปิดใช้งาน Windows Guard ข้อมูลประจำตัวของ Defender ในคอมพิวเตอร์ไคลเอนต์ ซึ่งป้องกันการมอบหมาย unconstrained ทั้งหมดจากคอมพิวเตอร์ที่มี Windows Defender ข้อมูลประจำตัว Guard การเปิดใช้งาน และทำงาน

  • ถ้าคุณมีความน่าเชื่อถือภายนอกหรือฟอเรสต์ และอย่างใดอย่างหนึ่งจะถูกกำหนดค่าเป็นตรวจสอบ การมอบหมาย TGT ไม่สามารถเปิดใช้ได้เนื่องจากค่าสถานะสองมีความหมายของตรงกันข้าม บิตการตรวจสอบสินค้า strengthens ขอบเขตความปลอดภัยระหว่างการเข้าร่วมโดเมน การเปิดใช้งานการมอบหมาย TGT ลบขอบเขตความปลอดภัยระหว่างโดเมนโดยการเข้าถึงโดเมน trusting การกำหนดข้อมูลประจำตัวของผู้ใช้จากโดเมนเชื่อถือได้ คุณไม่สามารถมีได้ทั้งสองลักษณะ

    เพิ่มค่าสถานะการตรวจสอบสินค้า: ไม่มีไวยากรณ์บรรทัดคำสั่ง NETDOM ถ้าค่าสถานะการตรวจสอบสินค้าจะเปิดใช้งานอยู่ในขณะนี้

  • ถ้าคุณเปลี่ยนEnableTGTDelegationเป็นYesลบตั๋ว Kerberos บนผู้เรียกเริ่มต้น และระดับกลางตามความจำเป็น ตั๋วโดยสารที่เกี่ยวข้องกับลบเป็นแหล่งอ้างอิงของไคลเอนต์ TGT ข้ามความน่าเชื่อถือเกี่ยวข้อง ซึ่งอาจเกี่ยวข้องกับอุปกรณ์มากกว่าหนึ่ง ขึ้นอยู่กับจำนวนการข้ามการมอบหมายในสภาพแวดล้อมที่กำหนด

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับขั้นตอนนี้ ดู Windows IT Pro Center บทความต่อไปนี้:

ปกป้องข้อมูลประจำตัวของโดเมนที่ได้รับกับ Guard ข้อมูลประจำตัวของ Defender Windows

เส้นเวลาการปรับปรุง

12 มีนาคม 2019

บังคับสำหรับขอบเขตของฟอเรสต์สำหรับ Kerberos การมอบหมายเต็มจะเป็นโปรแกรมปรับปรุงเพื่อเปิดใช้งานคุณลักษณะนี้ในรุ่นทั้งหมดได้รับการสนับสนุนของ Windows Server ที่มีอยู่ในส่วนใช้งานที่ด้านบนของบทความนี้ เราขอแนะนำว่า คุณตั้งค่าลักษณะการทำงานบนความเชื่อถือฟอเรสต์ขาเข้า

การปรับปรุงจะเพิ่มคุณลักษณะบังคับสำหรับขอบเขตของฟอเรสต์สำหรับการมอบหมายเต็ม Kerberosในระบบต่อไปนี้:

  • Windows Server 2008 R2

  • Windows Server 2008

14 พฤษภาคม 2019

การปรับปรุงถูกนำออกใช้เพิ่มคำใหม่เริ่มต้นเซฟตั้งค่าคอนฟิกฟอเรสต์ใหม่และความเชื่อถือภายนอก. ถ้าคุณจำเป็นต้องมีการมอบหมายข้ามความเชื่อถือ ควรเป็นYesตั้งค่าสถานะEnableTGTDelegationก่อนติดตั้งการปรับปรุงเดือน 9 กรกฎาคม 2019 ถ้าคุณต้องการมอบหมายข้ามความเชื่อถือ คุณควรตั้งค่าสถานะEnableTGTDelegation จะถูกละเว้นค่าสถานะEnableTGTDelegationจนกว่าจะมีการติดตั้งการปรับปรุงเดือน 9 กรกฎาคม 2019 เพื่อให้เวลาในการเปิดใช้งานการรับมอบสิทธิ์ Kerberos unconstrained ใหม่เมื่อจำเป็นต้องมีผู้ดูแล

เป็นส่วนหนึ่งของการปรับปรุงนี้EnableTGTDelegationค่าสถานะจะถูกตั้งค่าเป็นNoโดยค่าเริ่มต้นสำหรับความเชื่อถือที่สร้างขึ้นใหม่ใด ๆ นี่คือลักษณะการทำงานก่อนหน้านี้ตรงกันข้าม ขอแนะนำว่า ผู้ดูแลระบบแทนบริการที่ได้รับผลกระทบจะใช้ทรัพยากรตามการมอบหมายที่มีข้อจำกัดที่กำหนดค่าเท่านั้น

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการตรวจหาปัญหาความเข้ากันได้ ดูบริการที่อาศัยการมอบหมาย unconstrained การค้นหา

9 กรกฎาคม 2019

การปรับปรุงถูกนำออกใช้ที่บังคับใช้ลักษณะการเริ่มต้นใหม่ทางด้านขาเข้าของฟอเรสต์และความเชื่อถือภายนอก รับรองความถูกต้องร้องขอ สำหรับบริการที่ใช้การมอบหมาย unconstrained ผ่านชนิดเชื่อถือได้อยู่ในรายการจะมีการพิสูจน์ตัวจริง แต่ไม่ มีการมอบหมาย บริการนี้จะล้มเหลวเมื่อพยายามเรียกใช้การดำเนินงานที่มอบหมาย

ลด ดูส่วน "วิธีแก้ปัญหา"

บริการการค้นหาที่อาศัยการมอบหมาย unconstrained

การค้นหาป่าไม้ที่มีความเชื่อถือขาเข้าที่อนุญาตให้มีการมอบหมาย TGT และเพื่อค้นหาความปลอดภัยใด ๆ รักษาที่อนุญาตให้มีการมอบหมาย unconstrained เรียกใช้ PowerShell ต่อไปนี้สคริปต์ในสคริปต์แฟ้ม (ตัวอย่างเช่น รับ-RiskyServiceAccountsByTrust.ps1 - สาม):

หมายเหตุ

นอกจากนี้คุณสามารถส่งค่าสถานะการค้นหาในความเชื่อถือที่ไม่อนุญาตให้มีการมอบหมาย TGT - ScanAll


[CmdletBinding()]  
Param  
(  
    [switch]$Collect, 
    [switch]$ScanAll 
) 
 
if ($Debug) {  
    $DebugPreference = 'Continue'  
} 
else { 
    $DebugPreference = 'SilentlyContinue'  
} 

function Get-AdTrustsAtRisk 
{ 
    [CmdletBinding()]  
    Param  
    (  
        [string]$Direction = "Inbound", 
        [switch]$ScanAll 
    ) 
 
    if ($ScanAll) { 
        return get-adtrust -filter {Direction -eq $Direction} 
    } 
    else { 
        return get-adtrust -filter {Direction -eq $Direction -and TGTDelegation -eq $false} 
    } 
} 
 
function Get-ServiceAccountsAtRisk 
{ 
    [CmdletBinding()]  
    Param  
    (  
        [string]$DN = (Get-ADDomain).DistinguishedName, 
        [string]$Server = (Get-ADDomain).Name 
    ) 
 
    Write-Debug "Searching $DN via $Server" 
 
    $SERVER_TRUST_ACCOUNT = 0x2000  
    $TRUSTED_FOR_DELEGATION = 0x80000  
    $TRUSTED_TO_AUTH_FOR_DELEGATION= 0x1000000  
    $PARTIAL_SECRETS_ACCOUNT = 0x4000000    
 
    $bitmask = $TRUSTED_FOR_DELEGATION -bor $TRUSTED_TO_AUTH_FOR_DELEGATION -bor $PARTIAL_SECRETS_ACCOUNT  
  
$filter = @"  
(& 
  (servicePrincipalname=*) 
  (| 
    (msDS-AllowedToActOnBehalfOfOtherIdentity=*) 
    (msDS-AllowedToDelegateTo=*) 
    (UserAccountControl:1.2.840.113556.1.4.804:=$bitmask) 
  ) 
  (| 
    (objectcategory=computer) 
    (objectcategory=person) 
    (objectcategory=msDS-GroupManagedServiceAccount) 
    (objectcategory=msDS-ManagedServiceAccount) 
  ) 
) 
"@ -replace "[\s\n]", ''  
  
    $propertylist = @(  
        "servicePrincipalname",   
        "useraccountcontrol",   
        "samaccountname",   
        "msDS-AllowedToDelegateTo",   
        "msDS-AllowedToActOnBehalfOfOtherIdentity"  
    )  
 
    $riskyAccounts = @() 
 
    try { 
        $accounts = Get-ADObject -LDAPFilter $filter -SearchBase $DN -SearchScope Subtree -Properties $propertylist -Server $Server 
    } 
    catch { 
        Write-Warning "Failed to query $Server. Consider investigating seperately. $($_.Exception.Message)" 
    } 
              
    foreach ($account in $accounts) {  
        $isDC = ($account.useraccountcontrol -band $SERVER_TRUST_ACCOUNT) -ne 0  
        $fullDelegation = ($account.useraccountcontrol -band $TRUSTED_FOR_DELEGATION) -ne 0  
        $constrainedDelegation = ($account.'msDS-AllowedToDelegateTo').count -gt 0  
        $isRODC = ($account.useraccountcontrol -band $PARTIAL_SECRETS_ACCOUNT) -ne 0  
        $resourceDelegation = $account.'msDS-AllowedToActOnBehalfOfOtherIdentity' -ne $null  
      
        $acct = [PSCustomobject] @{  
            domain = $Server 
            sAMAccountName = $account.samaccountname  
            objectClass = $account.objectclass          
            isDC = $isDC  
            isRODC = $isRODC  
            fullDelegation = $fullDelegation  
            constrainedDelegation = $constrainedDelegation  
            resourceDelegation = $resourceDelegation  
        }  
 
        if ($fullDelegation) {  
            $riskyAccounts += $acct    
        } 
    }  
 
    return $riskyAccounts 
} 
 
function Get-RiskyServiceAccountsByTrust  
{ 
    [CmdletBinding()]  
    Param  
    ( 
        [switch]$ScanAll 
    ) 
     
    $riskyAccounts = @() 
 
    $trustTypes = $("Inbound", "Bidirectional") 
 
    foreach ($type in $trustTypes) { 
 
        $riskyTrusts = Get-AdTrustsAtRisk -Direction $type -ScanAll:$ScanAll 
 
        foreach ($trust in $riskyTrusts) { 
            $domain = $null 
     
            try { 
                $domain = Get-AdDomain $trust.Name -ErrorVariable eatError -ErrorAction Ignore 
            } catch { 
                write-debug $_.Exception.Message 
            } 
 
            if($eatError -ne $null) { 
                Write-Warning "Couldn't find domain: $($trust.Name)" 
            } 
 
            if ($domain -ne $null) { 
                $accts = Get-ServiceAccountsAtRisk -DN $domain.DistinguishedName -Server $domain.DNSRoot 
 
                foreach ($acct in $accts) { 
                    Write-Debug "Risky: $($acct.sAMAccountName) in $($acct.domain)" 
                }             
 
                $risky = [PSCustomobject] @{  
                    Domain = $trust.Name 
                    Accounts = $accts 
                } 
 
                $riskyAccounts += $risky 
            } 
        } 
    } 
 
    return $riskyAccounts 
} 
 
if ($Collect) { 
   Get-RiskyServiceAccountsByTrust -ScanAll:$ScanAll | Select-Object -expandProperty Accounts | format-table 
}

เอาพุตของสคริปต์ของ PowerShell รายการรักษาความปลอดภัยของไดเรกทอรีที่ใช้งานอยู่ในโดเมนที่ถูกกำหนดค่าสำหรับความน่าเชื่อถือเข้ามาจากโดเมนดำเนินที่มี unconstrained การมอบหมายการตั้งค่าคอนฟิก ผลลัพธ์จะคล้ายกับตัวอย่างต่อไปนี้

โดเมน

sAMAccountName

objectClass

partner.fabrikam.com

เป็นอันตราย

ผู้ใช้

partner.fabrikam.com

labsrv$

คอมพิวเตอร์

ตรวจพบการมอบหมาย unconstrained ผ่านเหตุการณ์ของ Windows

เมื่อ Kerberos ticket ที่ออก ตัวควบคุมโดเมน Active Directory ล็อกเหตุการณ์การรักษาความปลอดภัยต่อไปนี้ เหตุการณ์ประกอบด้วยข้อมูลเกี่ยวกับโดเมนเป้าหมาย คุณสามารถใช้เหตุการณ์นี้เพื่อตรวจสอบว่า ได้มีการใช้การมอบหมาย unconstrained ข้ามความเชื่อถือขาเข้า

หมายเหตุ

การตรวจสอบสำหรับเหตุการณ์ที่ประกอบด้วยค่าTargetDomainNameที่ตรงกับชื่อโดเมนที่เชื่อถือได้ หรือไม่

แฟ้มบันทึกเหตุการณ์

แหล่งของเหตุการณ์

รหัสเหตุการณ์

รายละเอียด

รักษาความปลอดภัย

Microsoft-Windows--ตรวจสอบความปลอดภัย

4768

มีออกแบบ TGT Kerberos

รักษาความปลอดภัย

Microsoft-Windows--ตรวจสอบความปลอดภัย

4769

มีออกบัตรบริการ Kerberos

รักษาความปลอดภัย

Microsoft-Windows--ตรวจสอบความปลอดภัย

4770

Ticket บริการ Kerberos ถูกต่ออายุใหม่

การแก้ไขปัญหาความล้มเหลวในการรับรองความถูกต้อง

เมื่อการมอบหมาย unconstrained ถูกปิดการใช้งาน โปรแกรมประยุกต์อาจมีปัญหาเกี่ยวกับความเข้ากันได้กับการเปลี่ยนแปลงเหล่านี้ถ้าโปรแกรมประยุกต์ที่อาศัยการมอบหมาย unconstrained โปรแกรมประยุกต์เหล่านี้ควรถูกกำหนดค่าให้รับมอบสิทธิ์การใช้งานที่จำกัด หรือการมอบหมายที่มีใช้ทรัพยากรที่จำกัด ดูข้อมูล หรือเพิ่มเติม sF ภาพรวมการมอบหมายการที่จำกัด Kerberos.

โปรแกรมประยุกต์ที่ใช้การรับรองความถูกต้องประมาณข้ามความเชื่อถือไม่ได้รับการสนับสนุน โดยใช้การมอบหมายที่มีข้อจำกัด ตัวอย่างเช่น การมอบหมายเป็นล้มเหลวถ้าการรับรองความถูกต้องผู้ใช้ในฟอเรสต์ A ไปยังโปรแกรมประยุกต์ในฟอเรสต์ B และแอพลิเคชันในฟอเรสต์ B พยายามมอบหมาย ticket กลับไป A. ฟอเรสต์

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย