ผู้ใช้หลายคนรายงานได้ข้อผิดพลาด "Cannot create a file when that file already exists" เมื่อพยายามเปลี่ยนสถานะของบริการ Smart Card (SCardSVR) จาก Disabled เป็นสถานะอื่น ปัญหาประกาศว่าพบในหลาย Windows versions รวมถึง Windows 7, Windows 8.1 และ Windows 10

สาเหตุของข้อผิดพลาด "Cannot create a file when that file already exists"
เราสืบสวนปัญหานี้จากรายงานผู้ใช้และกลยุทธ์ซ่อมแซมยอดนิยมที่ใช้แก้ปัญหานี้
พบว่าปัญหานี้เกิดจาก common Windows glitch ที่ยืนยันแล้วว่าเกิดบน Windows 8.1 และ Windows 10 Microsoft ได้ปล่อย hotfix สำหรับ glitch นี้แล้ว แต่บางผู้ใช้อ้างว่าข้อผิดพลาดยังคงอยู่แม้ติดตั้ง hotfix จาก Microsoft แล้ว
หากคุณกำลัง掙扎กับปัญหานี้ บทความนี้ให้คู่มือ troubleshooting หลายอย่าง ด้านล่างมี 3 วิธีที่ผู้ใช้ในสถานการณ์คล้ายกันใช้แก้ไขได้สำเร็จ
หากต้องการประสิทธิภาพสูงสุด ทำตามวิธีด้านล่างตามลำดับ หนึ่งในนั้นจะช่วยแก้หรือหลีกเลี่ยงข้อผิดพลาด "Cannot create a file when that file already exists"
วิธีที่ 1: ติดตั้งอัปเดต KB4057144 (Windows 10 เท่านั้น)
หากเจอปัญหาบน Windows 10 มีวิธีแก้ง่ายหนึ่งวิธี Microsoft แก้ไขปัญหานี้ด้วย hotfix update ที่ปล่อยเมื่อ มกราคม 2018
อัปเดต KB4057144 แก้ไขปัญหาที่การพยายามเปลี่ยนสถานะ Smart Card Windows service ทริกเกอร์ข้อผิดพลาด "Cannot create a file when that file already exists"
หากคุณเคยอัปเดตระบบสม่ำเสมอ น่าจะติดตั้งแล้ว แต่หากยัง ไปที่นี่เพื่อให้แน่ใจว่า KB4057144 ติดตั้งอยู่:
- กด Windows key + R เปิด Run dialog พิมพ์ ms-settings:windowsupdate Enter เปิดแท็บ Windows Update ใน Settings app

- ในหน้าจอ Windows Update คลิก Check for updates ติดตั้งทุก pending update

- เมื่อถาม restart คลิก Restart now ให้ OS ติดตั้งอัปเดต บูตเสร็จ กลับหน้าจอเดิม ติดตั้ง pending updates จนไม่เหลือ

- ติดตั้ง pending updates ครบแล้ว เข้า Services screen อีกครั้ง ดูว่าสามารถเปลี่ยนสถานะ Smart Card (SCardSVR) service ได้หรือไม่
หากยังมีปัญหาเดิม หรือเจอปัญหากับ OS อื่น ไปวิธีถัดไป
วิธีที่ 2: เปลี่ยนสถานะ Smart Card (SCardSvr) ผ่าน Regedit
หากวิธีแรกไม่ใช้ได้ อาจหลีกเลี่ยงปัญหาได้โดยใช้ Registry Editor แก้ไขสถานะของ Smart Card (SCardSvR) ผู้ใช้หลายคนรายงานว่าขั้นตอนด้านล่างช่วยให้เปลี่ยนสถานะ SCardSvR service ได้โดยไม่เจอข้อผิดพลาด
ขั้นตอน:
- กด Windows key +R เปิด Run dialog พิมพ์ "regedit" Enter เปิด Registry Editor UAC ถาม คลิก Yes ให้สิทธิ์ admin

- ใน Registry Editor ไปที่ registry key นี้:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SCardSvr

หมายเหตุ: นำทางด้วยมือ หรือวางที่อยู่ในแถบนำทางก็ได้
- ถึงที่แล้ว ดับเบิลคลิกค่า Start ด้านขวา เปลี่ยน Value data ตามสถานะที่ต้องการสำหรับ Startup type ของ SCardSVR:
Automatic = 2
Manual = 3
Disabled = 4

- คลิก OK บันทึก ปิด Registry Editor รีสตาร์ทคอมพิวเตอร์ บูตเสร็จ Startup Type ของ Smart Card (SCardSVR) service ควรเปลี่ยนแล้ว
หากยังมีปัญหาเดิม หรือหาวิธีอื่น ไปวิธีถัดไป
วิธีที่ 3: เปลี่ยนสถานะ Smart Card (SCardSvr) ผ่าน Command Prompt
หาก 2 วิธีข้างต้นไม่ได้ผล ลองดูว่าชุดคำสั่ง CMD จะช่วยได้ไหม บางกรณี ยืนยันแล้วว่าแก้ไขได้โดยเปลี่ยน Startup type ของ Smart Card (SCardSVR) service โดยตรงจาก elevated Command Prompt
ขั้นตอน:
- กด Windows key + R เปิด Run dialog พิมพ์ "cmd" กด Ctrl + Shift + Enter เปิด elevated Command Prompt UAC ถาม คลิก Yes ให้สิทธิ์ admin

- ใน elevated Command Prompt พิมพ์คำสั่งหยุด Smart Card service:
net stop SCardSvr
- หยุด service แล้ว ใช้คำสั่งใดคำสั่งหนึ่งเพื่อเปลี่ยน Startup type ของ service เป็นสถานะที่ต้องการ:
Automatic: REG add "HKLM\SYSTEM\CurrentControlSet\services\SCardSvr" /v Start /t REG_DWORD /d 2 /f Manual: REG add "HKLM\SYSTEM\CurrentControlSet\services\SCardSvr" /v Start /t REG_DWORD /d 3 /f Disabled: REG add "HKLM\SYSTEM\CurrentControlSet\services\SCardSvr" /v Start /t REG_DWORD /d 4 /f Automatic (Delayed Start): REG add "HKLM\SYSTEM\CurrentControlSet\services\SCardSvr" /v Start /t REG_DWORD /d 2 /f
- เปลี่ยน Startup Type แล้ว พิมพ์คำสั่ง restart Smart Card service:
net start SCardSvr