0x80070021: แก้ไฟล์ PST ถูกล็อก คัดลอกหรือ Import ไม่ได้

0x80070021 ขึ้นเมื่อคัดลอกไฟล์ PST ที่ยังถูก Outlook, OneDrive หรือโปรแกรมสำรองล็อกไว้ แก้โดยปิด Outlook ให้สนิท ตรวจ OUTLOOK.EXE ใน Task Manager แล้วคัดลอกใหม่

โดย ทีมงาน THAI DATA CLOUD อ่าน 13 นาที

แชร์FacebookXLINELinkedIn
0x80070021 — 0x80070021: แก้ไฟล์ PST ถูกล็อก คัดลอกหรือ Import ไม่ได้
0x80070021: แก้ไฟล์ PST ถูกล็อก คัดลอกหรือ Import ไม่ได้

คำตอบสั้น ๆ: 0x80070021 ขึ้นเมื่อคัดลอกไฟล์ PST ที่ยังถูก Outlook, OneDrive หรือโปรแกรมสำรองล็อกไว้ แก้โดยปิด Outlook ให้สนิท ตรวจ OUTLOOK.EXE ใน Task Manager แล้วคัดลอกใหม่

คู่มือนี้อธิบาย 0x80070021 ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย

0x80070021 คือรหัสข้อผิดพลาดของ Windows ที่ขึ้นเมื่อคัดลอก ย้าย หรือสำรองไฟล์ข้อมูล Outlook (.pst หรือ .ost) แล้วทำไม่สำเร็จ ข้อความที่เห็นคือ Error 0x80070021: The process cannot access the file because another process has locked a portion of the file. ใน File Explorer หรือในโปรแกรมสำรองข้อมูล และบางครั้งขึ้นระหว่าง Import/Export ใน Outlook สาเหตุที่พบบ่อยที่สุดคือ Outlook ยังทำงานอยู่เบื้องหลังแม้ปิดหน้าต่างไปแล้ว จึงยังล็อกบางส่วนของไฟล์ไว้ วิธีที่ได้ผลบ่อยที่สุดคือปิด Outlook ให้สนิท ตรวจใน Task Manager ว่าไม่มี OUTLOOK.EXE แล้วจึงคัดลอกไฟล์

คู่มือนี้เขียนสำหรับผู้ใช้ที่กำลังสำรองหรือย้ายไฟล์ PST เช่น ตอนเปลี่ยนเครื่อง และผู้ดูแลไอทีที่เจอ 0x80070021 ในงานสำรองข้อมูลของเครื่องผู้ใช้ เมื่อทำครบ คุณจะหาได้ว่าโปรแกรมไหนล็อกไฟล์ ปลดล็อกได้โดยไม่ทำไฟล์เสีย และย้ายไฟล์ออกจากตำแหน่งที่ทำให้เกิดปัญหาซ้ำ เช่น OneDrive หรือไดรฟ์เครือข่าย

สิ่งที่ต้องเตรียม

  • รู้ว่าใช้ Outlook แบบไหน classic Outlook มีเมนู File มุมซ้ายบน ส่วน new Outlook มีสวิตช์ New Outlook มุมขวาบนและไอคอนเฟือง Settings ทั้งสองแบบเปิดไฟล์ PST ได้ จึงต้องปิดทั้งคู่ก่อนคัดลอก
  • ตำแหน่งไฟล์จาก classic Outlook: File > Account Settings > Account Settings แท็บ Data Files > Open File Location จดไว้ก่อนปิด Outlook
  • สิทธิ์เปิด Task Manager และ Resource Monitor ของเครื่อง (ผู้ใช้ทั่วไปเปิดได้ แต่การปิดโปรแกรมของระบบหรือของผู้ใช้อื่นต้องใช้สิทธิ์ผู้ดูแลเครื่อง)
  • พื้นที่ปลายทางที่ใหญ่กว่าขนาดไฟล์ PST เช่น ไดรฟ์ USB หรือโฟลเดอร์บนดิสก์ในเครื่อง
  • เวลาที่ไม่มีงานสำรองข้อมูลอัตโนมัติทำงาน เพราะงาน backup ที่อ่านไฟล์อยู่ก็ทำให้เกิด 0x80070021 ได้ ถ้าเป็นเครื่องในองค์กร ให้ถามผู้ดูแลระบบว่างาน backup เริ่มกี่โมง
แผนภาพโปรแกรมที่เปิดไฟล์ PST ค้างไว้ ทั้ง Outlook, new Outlook, OneDrive, โปรแกรมสำรองข้อมูลและ antivirus ทำให้คัดลอกไฟล์แล้วขึ้น 0x80070021
ปลดล็อกได้เมื่อทุกโปรแกรมทางซ้ายและขวาปล่อยไฟล์ คนที่ล็อกบ่อยที่สุดคือ Outlook ที่ยังไม่ปิดสนิท

สาเหตุของ 0x80070021

0x80070021 คือรหัส Windows ERROR_LOCK_VIOLATION (error 33) แปลว่ามีโปรแกรมล็อกช่วงหนึ่งของไฟล์ไว้ Outlook ล็อกไฟล์ PST แบบนี้ตลอดเวลาที่เปิดไฟล์ จึงอ่านไฟล์จากโปรแกรมอื่นไม่ได้ รหัสใกล้เคียงคือ 0x80070020 (The process cannot access the file because it is being used by another process.) ซึ่งแปลว่าไฟล์ถูกเปิดอยู่ทั้งไฟล์ วิธีแก้เหมือนกัน ต้นเหตุที่พบจริงได้แก่

  • Outlook ยังปิดไม่สนิท ไฟล์ใหญ่ทำให้ Outlook ใช้เวลาปิดนาน บางครั้ง OUTLOOK.EXE ค้างอยู่หลังหน้าต่างหายไปแล้ว หรือมีโปรแกรมที่เชื่อมกับ Outlook เช่น Skype for Business ทำให้ Outlook ยังรันอยู่
  • new Outlook เปิดไฟล์ PST เดียวกันไว้ ถ้าเคยเพิ่มไฟล์ที่ Settings > Files > Outlook Data Files
  • ไฟล์อยู่ในโฟลเดอร์ OneDrive Microsoft ระบุว่าการซิงก์ไฟล์ PST ที่เปิดอยู่ไม่รองรับ และไฟล์ใหญ่ทำให้ OneDrive ขึ้น Processing changes หรือ A file is in use
  • ไฟล์อยู่บนไดรฟ์เครือข่ายหรือ NAS ซึ่ง Microsoft ไม่รองรับสำหรับการใช้งานต่อเนื่อง ตามเอกสาร Limits to using pst files over LAN and WAN links
  • โปรแกรมสำรองข้อมูลหรือ antivirus ที่กำลังอ่านไฟล์อยู่พอดี

ขั้นตอนที่ 1: ปิด Outlook ทุกตัวให้สนิทแล้วคัดลอกใหม่

  1. ปิด classic Outlook จากหน้าต่าง แล้วปิด new Outlook ด้วยถ้าเปิดอยู่
  2. รอ 1 ถึง 2 นาที ไฟล์ PST ขนาดหลายสิบ GB ต้องใช้เวลาเขียนข้อมูลที่ค้างลงไฟล์ก่อนปิด
  3. เปิด Task Manager (Ctrl + Shift + Esc) แท็บ Details ดูว่ายังมี OUTLOOK.EXE หรือ olk.exe หรือไม่
  4. ถ้าไม่มีแล้ว ให้คัดลอกไฟล์อีกครั้ง

ถ้าคัดลอกผ่าน แสดงว่าแก้ 0x80070021 ได้แล้ว ไม่ต้องทำขั้นต่อไป ถ้า OUTLOOK.EXE ยังค้างเกิน 5 นาที ให้คลิกขวา > End task แต่การบังคับปิดขณะ Outlook ยังเขียนไฟล์อาจทำให้ไฟล์เสีย หลังคัดลอกได้แล้วให้ตรวจไฟล์ด้วย ScanPST ตามคู่มือ ScanPST ทางที่ปลอดภัยกว่าการ End task คือรีสตาร์ตเครื่อง แล้วคัดลอกไฟล์ก่อนเปิด Outlook

ผลคำสั่ง Get-Process ตรวจ OUTLOOK, olk และ OneDrive ที่ยังทำงานอยู่ ก่อนคัดลอกไฟล์ PST ที่ขึ้น 0x80070021
ถ้ายังเห็น OUTLOOK หรือ olk หลังปิดหน้าต่างไปแล้ว ไฟล์ยังถูกล็อก รอให้ปิดเองก่อนบังคับปิด

ขั้นตอนที่ 2: หาโปรแกรมที่ทำให้เกิด 0x80070021 ด้วย Resource Monitor

ถ้าปิด Outlook หมดแล้วยังขึ้น 0x80070021 ให้หาว่าโปรแกรมไหนถือไฟล์อยู่ แทนการเดาและปิดโปรแกรมไปทีละตัว

  1. กด Windows + R พิมพ์ resmon แล้วกด Enter
  2. ไปที่แท็บ CPU แล้วขยายส่วน Associated Handles
  3. พิมพ์ชื่อไฟล์ เช่น somchai.pst หรือ .pst ในช่องค้นหาของส่วนนั้น
  4. ดูคอลัมน์ Image ว่าเป็นโปรแกรมอะไร เช่น OneDrive.exe, SearchProtocolHost.exe หรือโปรแกรมสำรองข้อมูล

ให้ปิดโปรแกรมนั้นจากหน้าต่างของมันเองหรือรอให้งานเสร็จ เช่น รองานสำรองข้อมูลจบ แทนการคลิกขวา End Process ใน Resource Monitor ถ้าเป็นโปรแกรม antivirus อย่าปิดการป้องกัน ให้รอให้สแกนเสร็จหรือให้ผู้ดูแลตั้งเวลาสแกนให้ไม่ชนกับงานสำรอง เมื่อโปรแกรมปล่อยไฟล์แล้ว รายการจะหายจาก Associated Handles ให้คัดลอกไฟล์อีกครั้ง ถ้าไม่ขึ้น 0x80070021 แสดงว่าแก้แล้ว

ขั้นตอนที่ 3: หยุดการซิงก์ของ OneDrive ชั่วคราว

ถ้า Resource Monitor แสดง OneDrive.exe หรือคอลัมน์ Location ของไฟล์ใน Data Files มีคำว่า OneDrive ให้คลิกไอคอนรูปเมฆของ OneDrive ที่มุมขวาล่าง > ไอคอนเฟือง > Pause syncing เลือก 2 hours แล้วคัดลอกไฟล์ใหม่ ถ้าคัดลอกผ่านโดยไม่มี 0x80070021 แปลว่า OneDrive คือตัวล็อก วิธีนี้ปลดล็อกได้เฉพาะครั้งนี้ ถ้าไฟล์ยังอยู่ใน OneDrive และ Outlook เปิดไฟล์ทุกวัน 0x80070021 จะกลับมาอีก ให้ทำขั้นตอนที่ 4 ต่อ

หลังคัดลอกเสร็จ ให้กลับไปที่เมนูเดิมแล้วเลือก Resume syncing เพื่อให้ไฟล์อื่นสำรองต่อตามปกติ

ขั้นตอนที่ 4: ย้ายไฟล์ PST ออกจาก OneDrive และไดรฟ์เครือข่ายถาวร

วิธีถาวรที่ทำให้ 0x80070021 ไม่กลับมาคือให้ไฟล์ที่ Outlook เปิดทุกวันอยู่บนดิสก์ในเครื่อง วิธีนี้ตรงกับขั้นตอนในเอกสาร How to remove an Outlook .pst data file from OneDrive ของ Microsoft

  1. ปิด Outlook และรอให้ OneDrive ซิงก์เสร็จ
  2. คัดลอกไฟล์จากโฟลเดอร์ใน OneDrive (มักเป็น OneDrive\Documents\Outlook Files) ไปไว้โฟลเดอร์บนดิสก์ในเครื่องที่ไม่ได้ซิงก์ เช่น C:\Outlook Files แล้วเปลี่ยนชื่อสำเนาเล็กน้อย เช่น somchai-local.pst จะได้แยกออกจากไฟล์เดิม
  3. เปิด Outlook ไปที่ File > Account Settings > Account Settings แท็บ Email เลือกบัญชี POP > Change Folder > New Outlook Data File แล้วเลือกสำเนาที่เปลี่ยนชื่อ จากนั้นเลือก Inbox ของไฟล์นั้น
  4. แท็บ Data Files เลือกรายการที่ Location อยู่ใน OneDrive > Remove > Yes (ถ้าเป็นไฟล์หลัก ต้องเลือกไฟล์ใหม่แล้วคลิก Set as Default ก่อน)
  5. ปิด Outlook แล้วจึงลบหรือย้ายไฟล์เดิมใน OneDrive

ถ้าเป็นไฟล์ archive.pst ที่ไม่ได้รับอีเมล ใช้ Data Files > Add เปิดไฟล์จากตำแหน่งใหม่ แล้ว Remove รายการเดิมก็พอ การ Remove แค่ถอดไฟล์ออกจาก Outlook ไม่ได้ลบอีเมล ขั้นตอนเลือกตำแหน่งให้เหมาะและการเปลี่ยนตำแหน่งเริ่มต้นของไฟล์ใหม่อยู่ในคู่มือ PST Location

เช็กลิสต์สิ่งที่ต้องตรวจก่อนคัดลอกไฟล์ PST เพื่อไม่ให้ขึ้น 0x80070021 ทั้ง Outlook ที่ค้าง OneDrive ไดรฟ์เครือข่ายและงานสำรองข้อมูล
ข้อสีแดงทำให้ 0x80070021 กลับมาซ้ำ ต้องย้ายไฟล์ออกจากตำแหน่งนั้นถาวร

ขั้นตอนที่ 5: แก้ 0x80070021 ที่ขึ้นระหว่าง Import และ Export ใน Outlook

ถ้า 0x80070021 หรือข้อความว่าไฟล์ถูกใช้งานอยู่ ขึ้นตอนใช้ File > Open & Export > Import/Export มักแปลว่าไฟล์ที่เลือกยังเปิดอยู่ในแถบโฟลเดอร์ของ Outlook เอง หรือถูกโปรแกรมอื่นเปิดไว้

  • Import: คลิกขวาที่ชื่อไฟล์นั้นในแถบโฟลเดอร์ > Close ก่อน หรือคัดลอกไฟล์ไปไว้โฟลเดอร์ชั่วคราวบนดิสก์ในเครื่องแล้ว Import จากสำเนา
  • Export: เลือกปลายทางเป็นไฟล์ใหม่บนดิสก์ในเครื่อง ไม่ใช่ไฟล์ที่เปิดอยู่ในโปรไฟล์ และไม่ใช่โฟลเดอร์ OneDrive หรือไดรฟ์เครือข่าย
  • ถ้าไฟล์อยู่บนไดรฟ์ USB ให้คัดลอกมาไว้ในเครื่องก่อน Outlook 2016 รุ่น 16.0.7910.1000 ขึ้นไปอาจเปิดไฟล์จากไดรฟ์ที่ไม่ใช่ดิสก์ในเครื่องไม่ได้

ทดสอบด้วยการ Import ซ้ำ ถ้าจบโดยไม่มี error และอีเมลขึ้นในโฟลเดอร์ปลายทาง แสดงว่าแก้แล้ว ขั้นตอน Import และ Export ฉบับเต็มอยู่ในคู่มือสำรองและกู้คืนอีเมลบน Outlook

ขั้นตอนที่ 6: ตรวจไฟล์หลังปลดล็อก

เมื่อคัดลอกได้โดยไม่ขึ้น 0x80070021 แล้ว ให้เทียบขนาดไฟล์สำเนากับต้นฉบับใน File Explorer ต้องเท่ากัน ถ้าในขั้นตอนก่อนหน้ามีการ End task หรือเครื่องดับ ให้รัน ScanPST กับไฟล์ต้นฉบับหลังจากมีสำเนาแล้ว จากนั้นเปิด Outlook ส่งอีเมลทดสอบถึงตัวเอง ถ้าเข้า Inbox และเปิดโฟลเดอร์เก่าได้ครบ แสดงว่าไฟล์ปกติ ถ้า Outlook ขึ้น 0x80040119 หรือข้อความว่าไฟล์เสียหลังจากนี้ ดูคู่มือแก้ 0x80040119

ปัญหาที่พบบ่อยเกี่ยวกับ 0x80070021

ทำไมปิด Outlook แล้วยังขึ้น 0x80070021?

Outlook มักยังทำงานต่ออีกพักหนึ่งหลังหน้าต่างหายไปเพื่อเขียนข้อมูลลงไฟล์ หรือมีโปรแกรมอื่นเปิดไฟล์อยู่ เช่น new Outlook, OneDrive หรืองานสำรองข้อมูล ตรวจ Task Manager แท็บ Details และใช้ Resource Monitor ตามขั้นตอนที่ 2 ถ้ายังหาไม่เจอ ให้รีสตาร์ตเครื่องแล้วคัดลอกไฟล์ก่อนเปิด Outlook

0x80070021 ทำให้ข้อมูลในไฟล์ PST เสียไหม?

ตัว error 0x80070021 ไม่ได้ทำให้ไฟล์เสีย มันแค่บอกว่าคัดลอกไม่ได้ แต่ถ้าแก้ด้วยการบังคับปิด Outlook ระหว่างที่ยังเขียนไฟล์ ไฟล์อาจเสียได้ จึงควรรอให้ Outlook ปิดเองหรือรีสตาร์ตเครื่อง และตรวจไฟล์ด้วย ScanPST ถ้าเคย End task

เก็บไฟล์ PST ไว้ใน OneDrive เพื่อสำรองโดยไม่เจอ 0x80070021 ได้ไหม?

Microsoft ระบุว่าการซิงก์ไฟล์ PST ที่เปิดอยู่ใน Outlook ไม่รองรับ ไฟล์ archive ที่ไม่ได้เปิดใน Outlook เลยซิงก์ได้ แต่ไฟล์ที่ใช้ทุกวันควรอยู่บนดิสก์ในเครื่อง แล้วสำรองด้วยการคัดลอกตอนปิด Outlook หรือใช้ระบบสำรองที่รองรับ

new Outlook ขึ้น 0x80070021 ได้ไหม?

ได้ถ้า new Outlook เปิดไฟล์ PST ไว้ที่ Settings > Files > Outlook Data Files แล้วมีโปรแกรมอื่นพยายามคัดลอกไฟล์ ให้ปิด new Outlook หรือปิดไฟล์นั้นจากหน้า Outlook Data Files ก่อน ส่วนอีเมลของบัญชีที่ใช้ใน new Outlook ไม่ได้อยู่ในไฟล์ PST จึงไม่ถูกล็อกแบบนี้

ถ้าทีมไอทีเจอ 0x80070021 ในงานสำรองข้อมูลบ่อย และต้องการวางระบบสำรองอีเมลและข้อมูลของเครื่องพนักงานที่ไม่ต้องพึ่งการคัดลอกไฟล์ PST ด้วยมือ ติดต่อทีมงาน THAI DATA CLOUD ได้ทันที และดูรายละเอียดบริการ Disaster Recovery and Backup ได้ที่หน้าบริการของเรา

อ่านเพิ่มเติมเกี่ยวกับ 0x80070021

แชร์FacebookXLINELinkedIn

มีคำถามเรื่องบริการ? ติดต่อทีมงาน