ฉันจะลบวัตถุคอมพิวเตอร์ Active Directory ที่กำพร้านี้ (ควรมี PowerShell) ได้อย่างไร


20

ฉันทำงานจากเวิร์กสเตชัน Windows 7 ที่มี PowerShell v2.0 และพยายามที่จะลบวัตถุ (orphaned?) จากLostAndFoundภาชนะในฟอเรสต์ 2008 R2 FL ฟอเรสต์และโดเมนที่เปิดใช้งาน Active Directory Recycle Binและไม่มีโชค กับอะไร

ที่สำคัญฉันต้องลบวัตถุนี้และวัตถุนี้เท่านั้น (แทนที่จะลบทุกวัตถุด้วยIsDeletedคุณสมบัติซึ่งดูเหมือนว่าเป็นทั้งหมดที่ฉันสามารถค้นหาความช่วยเหลือ)

ฉันต้องการลบเพราะเพื่อแก้ไขความสัมพันธ์ที่เชื่อถือไม่ได้คอมพิวเตอร์ถูกตัดขาดจากโดเมน (อาจทำให้วัตถุไปที่ถังรีไซเคิลแล้วไปที่LostAndFoundคอนเทนเนอร์) และเราต้องการให้มัน ชื่อเดิมกลับมา (ซึ่งขึ้นอยู่กับหมายเลขป้ายทรัพยากรบนพีซี) ความพยายามที่จะเข้าร่วมคอมพิวเตอร์อีกครั้งกับโดเมนที่มีชื่อที่ถูกต้องล้มเหลวด้วยข้อความแสดงข้อผิดพลาดด้านล่าง ( The specified account does not exist)

ป้อนคำอธิบายรูปภาพที่นี่

และพยายามเปลี่ยนชื่อเป็นชื่อที่ถูกต้องเมื่อมีอยู่แล้วในโดเมนล้มเหลวด้วยข้อความแสดงข้อผิดพลาดด้านล่าง ( The account already exists)

ป้อนคำอธิบายรูปภาพที่นี่

ดังนั้นพีซีจริงกำลังนั่งอยู่ที่นั่นด้วยชื่อที่ไม่ถูกต้องซึ่งฉันต้องแก้ไข

อย่างไรก็ตามความพยายามที่จะลบวัตถุ AD The specified account does not existนี่อัตราผลตอบแทนข้อผิดพลาด: ชื่อที่แตกต่างของวัตถุมี\อักขระ (แบ็กสแลช) อยู่ในนั้นซึ่งฉันคิดว่าเป็นเพราะมันอยู่ในLostAndFoundคอนเทนเนอร์และฉันสงสัยว่านั่นเป็นปัญหา ... และวิธีการแก้ไข ฉันกำลังใช้เปลือกของฉันเป็นdomain adminตรวจสอบว่าdomain adminsกลุ่มมีการควบคุมเต็มรูปแบบและเป็นเจ้าของของวัตถุที่เป็นปัญหาและดูเหมือนจะไม่สามารถคิดออกนี้

วัตถุที่เป็นปัญหา (ค่อนข้าง redacted):

Get-ADObject "CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects -Properties *

accountExpires                  : 9223372036854775807
CanonicalName                   : MyEmployer.prv/LostAndFound/SomeComputer
                                  DEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6
CN                              : SomeComputer
                                  DEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6
codePage                        : 0
countryCode                     : 0
Created                         : 12/7/2012 9:25:30 PM
createTimeStamp                 : 12/7/2012 9:25:30 PM
Deleted                         :
Description                     : HP6300
DisplayName                     :
DistinguishedName               : CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=
                                  prv
dNSHostName                     : SomeComputer.MyEmployer.prv
dSCorePropagationData           : {5/21/2014 1:40:31 PM, 12/31/1600 7:00:00 PM}
instanceType                    : 4
isCriticalSystemObject          : False
isDeleted                       :
LastKnownParent                 : OU=Workstations,OU=Computers,OU=One of Our Sites,DC=MyEmployer,DC=prv
lastLogonTimestamp              : 130451668084269817
localPolicyFlags                : 0
memberOf                        : {CN=PCMilerComputers,DC=MyEmployer,DC=prv}
Modified                        : 5/21/2014 1:40:54 PM
modifyTimeStamp                 : 5/21/2014 1:40:54 PM
msDS-LastKnownRDN               : SomeComputer
Name                            : SomeComputer
                                  DEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6
nTSecurityDescriptor            : System.DirectoryServices.ActiveDirectorySecurity
ObjectCategory                  :
ObjectClass                     : computer
ObjectGUID                      : 90a13eaa-c7b0-4258-bebb-87b7aed39ec6
objectSid                       : S-1-5-21-1708945318-605057401-313073093-5882480
operatingSystem                 : Windows 7 Enterprise
operatingSystemServicePack      : Service Pack 1
operatingSystemVersion          : 6.1 (7601)
primaryGroupID                  : 515
ProtectedFromAccidentalDeletion : False
pwdLastSet                      : 130451667147545072
sAMAccountName                  : SomeComputer$
sDRightsEffective               : 15
servicePrincipalName            : {HOST/SomeComputer, HOST/SomeComputer.MyEmployer.prv}
userAccountControl              : 4096
userCertificate                 : [Not included]
uSNChanged                      : 54007434
uSNCreated                      : 5004556
whenChanged                     : 5/21/2014 1:40:44 PM
whenCreated                     : 12/7/2012 9:25:30 PM

ดูเหมือนฉันจะไม่ทำงานอะไรและฉันพยายามมาก ในบันทึกย่อสิ่งที่ฉันได้ลองด้านล่าง

ก่อนด้วย PowerShell แบบบรรทัดเดียวบรรทัด cmdlet:


Get-ADObject "CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject

Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target
"CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y
Remove-ADObject : The specified account does not exist
At line:1 char:145
+ Get-ADObject "CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject <<<<
    + CategoryInfo          : NotSpecified: (CN=SomeComputer\0ADE...MyEmployer,DC=prv:ADObject) [Remove-ADObject], ADException
    + FullyQualifiedErrorId : The specified account does not exist,Microsoft.ActiveDirectory.Management.Commands.RemoveADObject

จากนั้นสิ่งเดียวกันอ้างอิง GUID แทน


Get-ADObject "90a13eaa-c7b0-4258-bebb-87b7aed39ec6"  -IncludeDeletdObjects | Remove-ADObject

Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target
"CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y
Remove-ADObject : The specified account does not exist
At line:1 char:94
+ Get-ADObject "90a13eaa-c7b0-4258-bebb-87b7aed39ec6"  -IncludeDeletedObjects | Remove-ADObject <<<<
    + CategoryInfo          : NotSpecified: (CN=SomeComputer\0ADE...MyEmployer,DC=prv:ADObject) [Remove-ADObject], ADException
    + FullyQualifiedErrorId : The specified account does not exist,Microsoft.ActiveDirectory.Management.Commands.RemoveADObject

จากนั้นให้อ่านค่าลงในตัวแปรก่อน (พยายามกับทั้ง GUID และ DN เพียงแสดงหนึ่งอันเนื่องจากข้อผิดพลาดเดียวกัน)


$blah = "90a13eaa-c7b0-4258-bebb-87b7aed39ec6"
Get-ADObject $blah -IncludeDeletedObjects | Remove-ADObject

Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target
"CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y
Remove-ADObject : The specified account does not exist
At line:1 char:60
+ Get-ADObject $blah -IncludeDeletedObjects | Remove-ADObject <<<<
    + CategoryInfo          : NotSpecified: (CN=SomeComputer\0ADE...MyEmployer,DC=prv:ADObject) [Remove-ADObject], ADException
    + FullyQualifiedErrorId : The specified account does not exist,Microsoft.ActiveDirectory.Management.Commands.RemoveADObject

จากนั้นฉันก็พบว่าฉันสามารถใช้ชีวิตได้โดยไม่ต้องโทรหา DSRMแทนที่จะทำแบบนั้น


dsrm "CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=Lost
AndFound,DC=MyEmployer,DC=prv"

Are you sure you wish to delete CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv
 (Y/N)? y
dsrm failed:CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv:The specified account does not exist.

จากนั้นผมพูดกับนรกกับทำให้ automatable ฉันจะเป็นเพียงแค่คลิกขวาและลบมันผ่าน ADSIedit

ป้อนคำอธิบายรูปภาพที่นี่


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


ปรับปรุง:

สิ่งอื่น ๆ ที่ไม่ได้ทำงานตามความคิดเห็นคำแนะนำและการสนทนากับ ServerFaulters:

การหลบหนี0ราวกับว่า\0ตัวแทนเป็นโมฆะ


Get-ADObject "CN=SomeComputer`0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject

Get-ADObject : No superior reference has been configured for the directory service. The directory service is therefore unable to issue referrals to objects outside this forest
At line:1 char:13
+ Get-ADObject <<<<  "CN=SomeComputer`0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -Includ
eDeletedObjects | Remove-ADObject
    + CategoryInfo          : NotSpecified: (CN=SomeComputer ADEL...MyEmployer,DC=prv:ADObject) [Get-ADObject], ADException
    + FullyQualifiedErrorId : No superior reference has been configured for the directory service. The directory service is therefore unable to issue referrals to objects outside this forest,Microsoft.ActiveDirectory.Management.Commands.GetADObject

การหลบหนีทั้งหมด\0Aราวกับว่าเป็นสายการบินคืนหรือขึ้นบรรทัดใหม่เช่นเดียวกับใน DOS (ลองด้วย `n,` r, `n`r และ` r`n) ทั้งหมดกลับข้อผิดพลาดเดียวกันดังนั้นจึงแสดงเพียงครั้งเดียว


Get-ADObject "SomeComputer`n`rDEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject

Get-ADObject : The object name has bad syntax
At line:1 char:13
+ Get-ADObject <<<<  "CN=SomeComputer`n`rDEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject
    + CategoryInfo          : NotSpecified: (CN=SomeComputer
DEL...MyEmployer,DC=prv:ADObject) [Get-ADObject], ADException
    + FullyQualifiedErrorId : The object name has bad syntax,Microsoft.ActiveDirectory.Management.Commands.GetADObject

หลบหนีจากการ\0Aเป็นแบบฟอร์มฟีด (ใช่ได้รับหมดหวังเล็กน้อย)


Get-ADObject "CN=SomeComputer`fDEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject

Get-ADObject : Directory object not found
At line:1 char:13
+ Get-ADObject <<<<  "CN=SomeComputer`fDEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject
    + CategoryInfo          : ObjectNotFound: (CN=SomeComputerDEL:...MyEmployer,DC=prv:ADObject) [Get-ADObject], ADIdentityNotFoundException
    + FullyQualifiedErrorId : Directory object not found,Microsoft.ActiveDirectory.Management.Commands.GetADObject

จากนั้นฉันคิดว่าฉันควรตรวจสอบว่า \0Aตัวละครนั้นเป็นปัญหาหรือไม่ดังนั้นฉันจึงเลือกวัตถุอื่นที่ฉันไม่ได้สนใจใน AD Recycle Bin ด้วย\0Aสายอักขระในนั้นและพยายามเป่ามันออกไป มันได้ผล


Get-ADObject -Filter { Name -Like '*DEL:*' } -IncludeDeletedObjects | Remove-ADObject

Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target "CN=SomeServer-SomeJackass HP LaserJet 1320
PS\0ADEL:eddb23e7-b8d8-4d00-801f-22d82c169d66,CN=Deleted Objects,DC=MyEmployer,DC=prv".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y

Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target "CN=SomeServer-SomeJackass HP LaserJet 1320 PCL
5e\0ADEL:6e72e78f-f110-492c-ad50-91107f6fbd6a,CN=Deleted Objects,DC=MyEmployer,DC=prv".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y


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

ไม่$C = Get-ADObject -Filter { Name -Like '*DEL:*' }กลับเฉพาะเด็กกำพร้าของคุณหรือไม่ ถ้าเป็นเช่นนั้นให้ทำRemove-ADObject -Identity $C.DistinguishedNameนั่น\0คือตัวสิ้นสุด null
Ryan Ries

@RyanRies มันส่งคืนเฉพาะออบเจ็กต์ของฉัน แต่การรันที่ส่งกลับThe specified account does not existข้อผิดพลาดเดียวกัน สำหรับสิ่งที่คุ้มค่าฉันได้ลองใช้การ\0เป็นแบบ null ไบต์ (และหลบหนี) เช่นเดียวกับการปฏิบัติ\A0เหมือนการขึ้นบรรทัดใหม่ / การขึ้นบรรทัดใหม่ (เช่นเดียวกับใน DOS) และไม่มีความสุข ความพยายามต่างๆที่คาดเดาและหนี\A0ตัวละครได้รับการพบกับและThe object name has bad syntax Directory object not found:(
HopelessN00b

อืม ... ฉันใช้เทคนิคนั้นกับวัตถุการแก้ไขข้อขัดแย้ง ( '*CNF:*') ตลอดเวลาและทำงานได้อย่างสมบูรณ์
Ryan Ries

คำตอบ:


3

ตามวิศวกรฝ่ายสนับสนุนของ Microsoft ฉันได้พูดคุยกับ ... และวิศวกรของ Microsoft เขาเพิ่มฉันให้กับ ... และผู้จัดการของพวกเขาคำตอบสั้น ๆ คือวิธีเดียวที่จะกำจัดตัวเองของวัตถุที่ถูกสาปนี้คือทำการคืนค่าอย่างเป็นทางการ การปรากฏตัวของวัตถุนี้ในLostAndFoundภาชนะ ฉันเชื่อว่าฉันสามารถกำจัดตัวเองได้ด้วยการบูตตัวควบคุมโดเมนทั้งหมดไปยัง LiveCD และแก้ไขฐานข้อมูลโฆษณาด้วยตนเอง แต่ขาดตัวเลือกสองตัวที่ไม่ใช่ตัวย่อฉันติดอยู่กับมัน


เป็นอย่างไรและทำไมในกรณีนี้:

เรารันrepadmin /showobjmetaวัตถุ (เพื่อดูข้อมูลเมตา) และสามารถตรวจสอบได้จากisDeletedเวอร์ชันของวัตถุ( 2) ว่าถูกลบไปแล้วจากนั้นกู้คืนโดยไม่คาดคิดและไม่สำเร็จ / บางส่วนซึ่งเป็นสาเหตุของปัญหา มันแนะนำและดูเหมือนว่าสำหรับฉันหลังจากที่วัตถุถูกกู้คืน แต่ก่อนที่การเปลี่ยนแปลงจะถูกจำลองแบบอย่างสมบูรณ์มันถูกลบอีกครั้งพร้อมกับ OU หลักของมันทำให้การกู้คืนล้มเหลวและทำให้มันกลายเป็นเด็กกำพร้า วัตถุโดยอย่างน้อยบางส่วนของโดเมนของเราเชื่อมโยงไปถึงมันในLostAndFoundภาชนะ

เนื่องจากการกู้คืนบางส่วนจะไม่สามารถกู้คืนได้ เป็นผลมาจากวัตถุSAMAccountTypeว่างเปล่าไม่สามารถลบได้ (หรือแก้ไข)

SAMAccountTypeแอตทริบิวต์เป็นค่าที่ไม่สามารถเปลี่ยนแปลงได้โดยผู้ใช้และความพยายามที่จะทำเช่นนั้นพ่นด้านล่างข้อผิดพลาด:

ป้อนคำอธิบายรูปภาพที่นี่

Operation failed. Error code: 0x209a
Access to the attribute is not permitted because the attribute is owned by the Security Accounts Manager (SAM).

0000209A: SvcErr: DSID-031A1021, problem 5003
(WILL_NOT_PERFORM), data 0

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


อย่างไรก็ตามเนื่องจากนี่เป็นกรณีที่น่าสนใจเกินกว่าที่ฉันจะเดินออกไปฉันจะแหย่ไปซักพักแล้วดูว่าฉันไม่สามารถหาทางแก้ปัญหาได้หรืออย่างน้อยก็ขยายความรู้ โฆษณาเพิ่มอีกนิดในความพยายาม เอาชนะเครื่องพิมพ์แก้ปัญหา ... และตรงไปตรงมาปรากฎว่าคอมพิวเตอร์บอกฉันว่า "WILL_NOT_PERFORM" เป็นความท้าทายที่ฉันไม่สามารถต้านทานได้

อ๋อใช่คุณจะแสดงสิ!


1

จากการโพสต์นี้คุณอาจต้องลองลบวัตถุในตัวควบคุมโดเมนที่ระบุ คุณอาจลองเรียกใช้ Get-ADObject ด้วยพารามิเตอร์ -Server เพื่อตรวจสอบว่าวัตถุนั้น จำกัด เฉพาะ DCs ที่เฉพาะเจาะจงหรือไม่ จากนั้นฉันก็ทำเช่นเดียวกันกับ Remove-ADObject


ดูเหมือนจะไม่เป็นปัญหาเนื่องจาก DC ทั้งสองที่ไซต์ของฉันมีวัตถุอยู่และการจำลองแบบฮัมเพลงเป็นเวลานานอย่างเหมาะสม แต่ไม่เคยเจ็บที่จะทำการrepadminวินิจฉัยอย่างละเอียด(ซึ่งฉันทำงานมาตั้งแต่สูญเสียความหวัง มันเป็นปัญหากับชื่อออบเจ็กต์) คำตอบที่ดีมาก ... ไม่น่าจะเป็นคำตอบที่นี่ เมื่อยกเลิกเสร็จฉันจะอัปเดตโพสต์ของฉัน
HopelessN00b

ดูเหมือนว่าจะเป็นขั้นตอนการแก้ไขปัญหาที่สมเหตุสมผลอยู่แล้ว ขอบคุณสำหรับการโหวต
Tim Ferrill

0

ฉันมีความคิดว่าอาจจะใช้งานได้มันอาจจะดูเรียบง่ายหรือไม่ธรรมดา แต่ถ้าฉันจำได้อย่างถูกต้องสิ่งนี้ได้ผลสำหรับฉันในอดีตด้วยบัญชีที่ถูกโยงถึง หากคุณสามารถกำหนดชื่อบัญชีที่แน่นอนระบบที่คุณกำลังค้นหาอยู่ไม่ว่าจะเป็นบัญชีผู้ใช้หรือบัญชี PC / Server ให้ลองสร้างบัญชีประเภทเดียวกันและชื่อเดียวกันชั่วคราว ดังนั้นคุณต้องเติมลงในช่องว่างดังนั้นพูดและให้ระบบอย่างที่มันต้องการ

ดังนั้นหากเป็นบัญชี PC / เซิร์ฟเวอร์ให้มีเครื่องเชื่อมกลับไปยังโดเมนที่มีชื่อตรงกับที่มันต้องการ แต่สำหรับจุดประสงค์ในการสร้างบัญชีเท่านั้น หรือถ้าเป็นบัญชีผู้ใช้ให้สร้างบัญชีผู้ใช้ที่มีชื่อเหมือนกัน ฯลฯ คุณอาจต้องเรียกใช้คำสั่ง gpupdate / f ในพรอมต์คำสั่งเพื่อให้เซิร์ฟเวอร์เชื่อมต่อบัญชีที่สร้างใหม่กับ OU ที่ถูกสร้างขึ้นใหม่

จากนั้นดำเนินการต่อเพื่อพยายามลบ OU ที่ถูกโยงถึงที่คุณต้องการลบในตอนแรก เมื่อคุณทำความสะอาด OU แล้วคุณสามารถลบบัญชีที่คุณสร้างขึ้นสำหรับงานนี้

ฉันหวังว่าสิ่งนี้จะช่วยคุณในการส่งเสียงเชียร์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.