- บทความ
บทความนี้แสดงวิธีแก้ปัญหานามแฝง DNS CNAME ไม่สามารถเข้าถึงเซิร์ฟเวอร์ไฟล์ SMB
นำไปใช้กับ:Windows 10 - ทุกรุ่น, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows 7 Service Pack 1
หมายเลข KB ดั้งเดิม:3181029
อาการ
การกำหนดค่า
- คุณกำลังเรียกใช้เซิร์ฟเวอร์ไฟล์ SMB เช่น Windows Server เซิร์ฟเวอร์มีไฟล์และทรัพยากรที่กำหนดค่าโดยใช้ชื่อ NetBIOS, ชื่อโดเมนแบบเต็ม DNS (FQDN) และนามแฝง (CNAME)
- คุณมีไคลเอ็นต์ที่กำลังเรียกใช้ Windows 7, Windows Server 2008 R2 หรือ Windows รุ่นที่ใหม่กว่า
สถานการณ์
เมื่อแอปพลิเคชันหรือผู้ใช้ใช้ชื่อที่เก็บข้อมูลจริง (ชื่อ NetBIOS หรือ FQDN) สำหรับไฟล์หรือทรัพยากรอื่นๆ บนเซิร์ฟเวอร์ที่ใช้ SMB การเข้าถึงจะสำเร็จ
เมื่อแอปพลิเคชันหรือผู้ใช้ใช้นามแฝง CNAME สำหรับไฟล์หรือทรัพยากรอื่นๆ บนเซิร์ฟเวอร์ที่ใช้ SMB และคุณพยายามเชื่อมต่อกับการแชร์บนไฟล์เซิร์ฟเวอร์ด้วยนามแฝง DNS CNAME ตัวอย่างเช่น คุณพยายามเชื่อมต่อกับการใช้ร่วมกันบนเซิร์ฟเวอร์ไฟล์โดยใช้นามแฝง DNS CNAME:
NET USE * \\CNAME\share_name
ในกรณีนี้ คุณพบลักษณะการทำงานต่อไปนี้:
การเข้าถึงจากไคลเอ็นต์ Windows Server 2008 R2 หรือ Windows 7 สำเร็จ
(Video) วิธีแก้ไขเข้าแชร์ไฟล์เครื่องอื่นบน Windows ไม่ได้ เพราะติด SMB Protocol | FIX SMB: You can't connectการเข้าถึงจาก Windows Server 2012 R2, Windows 8.1 หรือไคลเอนต์ Windows รุ่นที่ใหม่กว่าไม่สำเร็จ ในกรณีนี้ คุณได้รับข้อความแสดงข้อผิดพลาดที่คล้ายกับต่อไปนี้:
เปิดโฟลเดอร์
\\นอกเส้นทางไม่สามารถเข้าถึงได้. คุณอาจไม่ได้รับอนุญาตให้ใช้ทรัพยากรเครือข่ายนี้ ติดต่อผู้ดูแลระบบของเซิร์ฟเวอร์นี้เพื่อดูว่าคุณมีสิทธิ์การเข้าถึงหรือไม่
การเข้าสู่ระบบล้มเหลว: ชื่อบัญชีเป้าหมายไม่ถูกต้อง
สาเหตุ
หากคุณใช้ Network Monitor, Wire Shark หรือ Microsoft Message Analyzer เพื่อตรวจสอบการติดตามเครือข่ายเมื่อการตั้งค่าเซสชัน SMB สำเร็จ เซสชันจะไปที่ TREE Connect
อย่างไรก็ตาม หากคุณตรวจสอบการติดตามเครือข่ายเมื่อการตั้งค่าเซสชัน SMB ไม่สำเร็จ เซสชันจะล้มเหลวโดยมีข้อผิดพลาด Kerberos KRB_AP_ERR_MODIFIED ต่อไปนี้คือตัวอย่างคำขอการตั้งค่าเซสชัน SMB ที่ไม่สำเร็จในการติดตามเครือข่าย:
MessageNumber DiagnosisTypes Timestamp Source Destination Module สรุป 112 ไม่มี DateTime Client Server SMB2 Negotiate, Status: Success, 2780879Guid: {12f74af4-be82-11e5-b5c2-005056890096}, DialectRevision: SMB 2. 112 ไม่มี DateTime Client Server SMB2 NegotiateRequest, Dialect บรรยาย: [SMB 2.0.2, SMB 2.1], ความสามารถ: , 2780879Guid: {12f74af4-be82-11e5-b5c2- 115 ไม่มี DateTime Server Client SMB2 NegotiateResponse, สถานะ: สำเร็จ, DialectRevision: SMB 2.1, ความสามารถ: SMB2GlobalCapDfs|SMB2GlobalC 116 ไม่มี DateTime Client Server SMB2 SessionSetup, สถานะ: STATUS_MORE_PROCESSING_REQUIRED, Kerberos, ค่าสถานะ: 0 116 ไม่มี DateTime Client Server SMB2 SessionSetupRequest, Kerberos, ค่าสถานะ: Unknown(0), PreviousSessionId: 0x0000000000000000 122 ไม่มี DateTime Server Client SMB2 SessionSetupResponse สถานะ: STATUS_ MORE_PROCESSING_REQUIRED, Kerberos, SessionId: 0x000004030800006D 135 ไม่มี DateTime Client Server SMB2 SessionSetup, Status: STATUS_MORE_PROCESSING_REQUIRED, Kerberos, Flags: 0 135 ไม่มี DateTime Client Server SMB2 SessionSetupRequest, Kerberos, Flags: Unknown(0), PreviousSessionId: 0x0000000000000000 143 ไม่มี DateTime Server Client SMB2 SessionSetupResponse , สถานะ: STATUS_MORE_PROCESSING_REQUIRED, Kerberos, SessionId :0x000004030800006D
ในคำขอการตั้งค่าเซสชัน SMB ที่ไม่สำเร็จ ไคลเอ็นต์ส่งต่อ CNAME SPN ที่ไม่ถูกต้อง SPN อาจไม่ถูกต้องเนื่องจากมีการลงทะเบียนสำหรับเซิร์ฟเวอร์เก่า อย่างไรก็ตาม ในคำขอตั้งค่าเซสชัน SMB ที่สำเร็จ เช่น ในกรณีไคลเอ็นต์ Windows Server 2008 R2 ไคลเอ็นต์จะส่งต่อ SPN สำหรับชื่อเซิร์ฟเวอร์จริง
หากชื่อไฟล์เซิร์ฟเวอร์ได้รับการแก้ไขผ่าน DNS ไคลเอ็นต์ SMB จะเพิ่มส่วนต่อท้าย DNS ต่อท้ายชื่อที่ผู้ใช้ระบุ นั่นคือ องค์ประกอบแรกของ SPN จะเป็นชื่อที่ผู้ใช้ระบุเสมอ ดังตัวอย่างต่อไปนี้:
CNAME.contoso.com\share_name
บันทึก
(Video) File Server and Sharing Drives in Windows Server 2019ความพยายามนี้จะล้มเหลวในการใช้งาน SMB ที่เก่ากว่า (เช่น AIX Samba 3.5.8) ซึ่งไม่สามารถกำหนดค่าสำหรับการรับรองความถูกต้อง Kerberos และไม่ฟังพอร์ตโฮสต์โดยตรงของ SMB 445 แต่เฉพาะในพอร์ต NetBIOS 139
หากชื่อไฟล์เซิร์ฟเวอร์ได้รับการแก้ไขผ่านกลไกอื่น เช่น
- เน็ตไบออส
- การจำแนกชื่อแบบหลายผู้รับในเครื่องลิงก์ (LLMNR)
- กระบวนการ Peer Name Resolution Protocol (PNRP)
ไคลเอ็นต์ SMB ใช้ชื่อที่ผู้ใช้ระบุ เช่น ชื่อต่อไปนี้:
CNAME\share_name
ปณิธาน
เมื่อต้องการแก้ไขปัญหานี้บนไฟล์เซิร์ฟเวอร์ที่ใช้โปรโตคอล SMB เวอร์ชัน 1 ให้เพิ่มปิดใช้งานStrictNameChecking
ค่ารีจิสทรี:
ตำแหน่งรีจิสทรี: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
ชื่อ DWORD: DisableStrictNameChecking
ค่า DWORD: 1
สำคัญ
อย่าใช้ DNS CNAME ในอนาคตสำหรับเซิร์ฟเวอร์ไฟล์ หากคุณยังคงต้องการตั้งชื่ออื่นให้กับเซิร์ฟเวอร์ คุณสามารถทำได้โดยใช้คำสั่งต่อไปนี้:
ชื่อคอมพิวเตอร์ NETDOM/ADD
คำสั่งนี้จะลงทะเบียน SPN สำหรับชื่ออื่นโดยอัตโนมัติ
เราไม่แนะนำให้คุณแก้ไขปัญหานี้สำหรับไฟล์เซิร์ฟเวอร์ที่ไม่ได้ใช้ Windows โดยพิมพ์คำสั่งต่อไปนี้ในหน้าต่างพร้อมรับคำสั่งที่ยกระดับบนคอมพิวเตอร์ที่ใช้ Windows คุณจะต้องเข้าสู่ระบบด้วยข้อมูลประจำตัวของผู้ดูแลระบบโดเมน จากนั้นกด Enter ที่พรอมต์คำสั่งเพื่อลงทะเบียน SPN สำหรับ CNAME ของอุปกรณ์จัดเก็บข้อมูลเซิร์ฟเวอร์ไฟล์ที่ไม่ใช่ Windows:
SETSPN -a host/alias_name targetserverSETSPN -a host/alias_name.contoso.com เซิร์ฟเวอร์เป้าหมาย
บันทึก
- หากคุณใช้ Windows 2012 Clustering ให้ติดตั้งโปรแกรมแก้ไขด่วนสำหรับไคลเอนต์ระดับล่างซึ่งคอมพิวเตอร์ Windows XP หรือ Windows Server 2003 ไม่สามารถเชื่อมต่อได้:ไม่สามารถเข้าถึงทรัพยากรที่โฮสต์บนคลัสเตอร์ล้มเหลวที่ใช้ Windows Server 2012.
- หากคุณสร้าง CNAME สำหรับชื่อคลัสเตอร์ที่ไคลเอนต์กำลังเชื่อมต่อ คุณต้องแน่ใจว่าได้ตั้งค่าคุณสมบัติในชื่อคลัสเตอร์นั้นเพื่อให้ตอบสนองกับ CNAME:วิธีกำหนดค่านามแฝงสำหรับการแชร์ SMB แบบคลัสเตอร์กับ Windows Server 2012.
การติดตามเครือข่าย
หากต้องการรวบรวมการติดตามเครือข่าย ให้ทำตามขั้นตอนเหล่านี้:
เปิดหน้าต่างพร้อมรับคำสั่งที่ยกระดับ พิมพ์คำสั่งต่อไปนี้ จากนั้นกด Enter:
การติดตาม netsh เริ่มต้นการจับภาพ NetConnection=ใช่ maxsize=100 filemode=การเขียนทับแบบวงกลม=ใช่ traceFile=c:\%COMPUTERNAME%_Repro_trace.etl
ลบการเชื่อมต่อเครือข่าย File Server ที่มีอยู่โดยเรียกใช้คำสั่งต่อไปนี้:
การใช้งานสุทธิ * /DELETE
เริ่มต้นการแคชชื่อทั้งหมดโดยการลบแคชที่มีอยู่:
หากต้องการลบแคช DNS ให้พิมพ์คำสั่งต่อไปนี้ จากนั้นกด Enter:
IPCONFIG/FLUSHDNS
หากต้องการลบแคช NetBIOS ให้พิมพ์คำสั่งต่อไปนี้ จากนั้นกด Enter:
กสทช./ร.ร
เมื่อต้องการลบแคช Kerberos ให้พิมพ์คำสั่งต่อไปนี้ จากนั้นกด Enter:
KLIST /PURGE
หากต้องการลบแคช ARP ให้พิมพ์คำสั่งต่อไปนี้ จากนั้นกด Enter:
(Video) แก้ share drive ไม่ได้ ขึ้น Windows can not accessARP -d
ลองเชื่อมต่อกับเครือข่ายที่ใช้ร่วมกันโดยพิมพ์คำสั่งต่อไปนี้แล้วกด Enter:
ใช้สุทธิ * \\server_name\share_name
เมื่อต้องการหยุดการติดตามเครือข่ายในสถานการณ์ที่ไม่สำเร็จ ให้พิมพ์คำสั่งต่อไปนี้ แล้วกด Enter:
หยุดการติดตาม netsh
รวบรวมการตั้งค่ารีจิสทรี
หากต้องการรวบรวมการตั้งค่ารีจิสทรีบนเซิร์ฟเวอร์ไฟล์ ให้เลือกเริ่ม, เลือกวิ่งพิมพ์คำสั่งในกล่อง เปิด แล้วเลือกตกลง. ทำซ้ำขั้นตอนนี้สำหรับคำสั่งต่อไปนี้:
REG.EXE บันทึก HKLM\SYSTEM C:\TEMP\%COMPUTERNAME%_SYSTEM.HIVREG.EXE บันทึก HKLM\SOFTWARE C:\TEMP\%COMPUTERNAME%_SOFTWARE.HIVREG.EXE บันทึก HKCU\Software C:\TEMP\%COMPUTERNAME%_HKCU .เอชไอวี
บันทึก
ไฟล์การตั้งค่ารีจิสทรี (.HIV) จะถูกบันทึกลงในโฟลเดอร์ TEMP บนเซิร์ฟเวอร์ไฟล์
ตรวจสอบการตั้งค่ารีจิสทรี
ตรวจสอบการตั้งค่าของค่ารีจิสทรีต่อไปนี้บนเซิร์ฟเวอร์ไฟล์:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\SmbServerNameHardeningLevelHKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\DisableStrictNameChecking
ใช้โปรแกรมแก้ไขด่วน (เซิร์ฟเวอร์และไคลเอ็นต์)
สำหรับ Windows 7 และ Windows Server 2008 R2 ใช้การยกเลิกโปรแกรมแก้ไขด่วนของ Windows 7 Enterprise ต่อไปนี้:
การยกเลิกโปรแกรมแก้ไขด่วนระดับองค์กรจะพร้อมใช้งานสำหรับ Windows 7 SP1 และ Windows Server 2008 R2 SP1
นอกจากนี้ ใช้โปรแกรมแก้ไขด่วนต่อไปนี้:
- ข้อความแสดงข้อผิดพลาด "เขียนล่าช้าล้มเหลว" เมื่อไฟล์ .pst ถูกเก็บไว้บนเซิร์ฟเวอร์ไฟล์เครือข่ายที่กำลังเรียกใช้ Windows Server 2008 R2
- คุณประสบปัญหาเวลาเข้าสู่ระบบนานเมื่อคุณพยายามเข้าสู่ระบบคอมพิวเตอร์ไคลเอ็นต์ที่ใช้ Windows 7 หรือ Windows Server 2008 R2 ที่ใช้โปรไฟล์ข้ามเขต
- OpsMgr 2012 หรือ OpsMgr 2007 R2 สร้างข้อความ "Heartbeat Failure" จากนั้นจะเข้าสู่สถานะเป็นสีเทาใน Windows Server 2008 R2 SP1
อ้างอิง
- ข้อความแสดงข้อผิดพลาดเมื่อคุณพยายามเข้าถึงเซิร์ฟเวอร์ภายในเครื่องโดยใช้ FQDN หรือนามแฝง CNAME หลังจากที่คุณติดตั้ง Windows Server 2003 Service Pack 1: "การเข้าถึงถูกปฏิเสธ" หรือ "ไม่มีผู้ให้บริการเครือข่ายที่ยอมรับเส้นทางเครือข่ายที่กำหนด"
- MS08-068: ช่องโหว่ใน SMB อาจทำให้โค้ดจากระยะไกลทำงานได้
- ไม่สามารถเข้าถึงทรัพยากรที่โฮสต์บนคลัสเตอร์ล้มเหลวที่ใช้ Windows Server 2012
- รายการโปรแกรมแก้ไขด่วนที่มีอยู่ในปัจจุบันสำหรับเทคโนโลยี File Services ใน Windows Server 2008 และ Windows Server 2008 R2
- รายการโปรแกรมแก้ไขด่วนที่มีอยู่ในปัจจุบันสำหรับเทคโนโลยี File Services ใน Windows Server 2012 และ Windows Server 2012 R2
- เพิ่มคีย์รีจิสทรี DisableStrictNameChecking
- ปิดใช้งานStrictNameChecking; นามแฝงเซิร์ฟเวอร์ไม่ทำงานจากเซิร์ฟเวอร์จริง
- ทำไมเราต้องใช้ SPN สำหรับ File Server (NAS / RAS / File Share System) DNS Alias (Cname)
ข้อจำกัดความรับผิดชอบเกี่ยวกับข้อมูลของบุคคลที่สาม
ผลิตภัณฑ์ของบริษัทอื่นที่กล่าวถึงในบทความนี้ผลิตโดยบริษัทที่ไม่ขึ้นกับ Microsoft Microsoft ไม่รับประกันโดยนัยหรืออื่นๆ เกี่ยวกับประสิทธิภาพหรือความน่าเชื่อถือของผลิตภัณฑ์เหล่านี้