#Windows

ส่งไฟล์ขึ้นโฮสต์แล้วทับกันเงียบๆ สามกับดักตอนคัดลอกไฟล์
ส่งไฟล์สองตัวที่ชื่อซ้ำกันขึ้นโฮสต์พร้อมกัน ตัวหลังทับตัวแรกเงียบๆ ไม่มี error ไม่มี exit code ผิด เว็บยังตอบ 200 ทุกหน้า แค่หน้าภาษาอังกฤษกลายเป็นหน้าภาษาไทย นี่คือสามกับดักที่ทำให้การคัดลอกไฟล์เสียหายโดยไม่มีอะไรเตือน

Build APM บน Windows: สารบัญ ทำ Apache + PHP 8.4 + MariaDB เอง
ซีรีส์ 7 ตอนพาคอมไพล์ Apache 2.4.69, PHP 8.4.27 และ MariaDB 11.8.9 บน Windows 11 จาก source เอง ให้เวลาที่ PHP ออกแพตช์ความปลอดภัย แก้เลขเวอร์ชันในไฟล์เดียวแล้ว build ใหม่ได้ภายในวัน หน้านี้คือสารบัญ ภาพรวม เวลา ดิสก์ และทางลัดสามคำสั่ง

Build APM บน Windows ตอนที่ 7: Deploy รัน และอัปเดต security patch
ตอนจบของซีรีส์ build Apache + PHP + MariaDB บน Windows ติดตั้งลง C:\APM สตาร์ตครั้งแรกและทดสอบ เปิดให้เครื่องใน LAN เข้าแบบปลอดภัย เล่าบั๊กจริงหกตัว (PidFile, plugin MariaDB, พอร์ต DB, ASLR 500, พาธมีช่องว่างและวงเล็บ) และขั้นตอนอัปเดตเวลามี security release ใหม่

Build APM บน Windows ตอนที่ 6: build PHP 8.4 พร้อม redis imagick
ตอนที่ 6 ของซีรีส์ build Apache + PHP + MariaDB บน Windows จาก source พาไล่ 30-php.ps1 ทีละขั้น ตั้งแต่ php-sdk คำสั่ง configure ทั้งเส้น การคัดลอก DLL จนถึงทดสอบ JIT, redis และ imagick ว่าใช้ได้จริง

Build APM บน Windows ตอนที่ 5: คอมไพล์ ImageMagick 7 ให้ PHP imagick
ตอนที่ 5 ของซีรีส์ Build APM บน Windows พาคอมไพล์ ImageMagick 7.1.2-34 กับ delegate library ราว 40 ตัวจาก source ด้วย toolchain ทางการ พร้อมแพตช์ channel mask 64 เป็น 32 ที่ทำให้ imagick build ผ่าน และเหตุผลที่ HEIC เขียนไม่ได้

Build APM บน Windows ตอนที่ 4: คอมไพล์ MariaDB 11.8 LTS เอง
ตอนที่ 4 ของซีรีส์ Build APM บน Windows พาคอมไพล์ MariaDB 11.8.9 จาก source ด้วย CMake และ Ninja ทีละขั้น ตั้งแต่เตรียมเครื่องมือ รันสคริปต์ ทดสอบบนพอร์ต 3399 ไปจนถึงเหตุผลที่ต้องล็อก collation เป็น utf8mb4_unicode_ci

Build APM บน Windows ตอนที่ 3: build Apache httpd 2.4.69 ด้วย CMake
build APR, APR-util, httpd 2.4.69 และ mod_fcgid ด้วย CMake กับ Ninja บน Windows อธิบายทุก option ว่าใส่ทำไม ไล่ DLL ที่ต้องวางข้าง httpd.exe ด้วย dumpbin ดักไม่ให้ลิงก์ DLL ตัว debug แล้วทดสอบ config ด้วย httpd -t

Build APM บน Windows ตอนที่ 2: ดึง source และ lib ด้วย vcpkg
ขั้นที่ 1 และ 2 ของการ build Apache เองบน Windows อ่านสคริปต์ 00-fetch.ps1 กับ 10-deps-vcpkg.ps1 ทีละบรรทัด ตรวจ sha256 ของ source ทุกตัว แล้วให้ vcpkg build OpenSSL 3.5 LTS กับ lib อีก 8 ตัวจาก source พร้อมคำสั่งตรวจผลทุกขั้น

Build APM บน Windows ตอนที่ 1: เตรียมเครื่องมือและแตก build kit
ตอนแรกของซีรีส์ build Apache + PHP 8.4 + MariaDB เองบน Windows ติดตั้ง Visual Studio 2022 Build Tools พร้อม component ที่จำเป็น Git CMake Ninja PowerShell 7 ตั้ง Defender แตก build kit ลง C:\apm-build แล้วไล่ดูโฟลเดอร์ versions.json และสคริปต์ lib.ps1 กับ build-all.ps1 ทีละบรรทัด

PHP มีช่องโหว่ RCE ระดับวิกฤตสองตัว (php2shell) อัปเดตด่วนวันนี้
CVE-2026-109618 กับ CVE-2026-109619 เป็นช่องโหว่ RCE ของ PHP ที่ CVSS 9.2 มี exploit สาธารณะแล้ว กระทบทุกเครื่องที่ใช้ PHP รับ request เว็บ รุ่นที่แก้แล้วคือ 8.5.12, 8.4.27, 8.3.36, 8.2.35 บันทึกนี้รวมวิธีเช็กเวอร์ชัน วิธีอัปเดตทั้ง Debian, RHEL, DirectAdmin, Docker และ Windows กับค่าชั่วคราวระหว่างรอแพตช์

VM เห็นอุปกรณ์แต่ไม่มีเน็ต เพราะ Windows ไม่มีไดรเวอร์ CDC ECM
ส่ง USB LTE dongle เข้า VM วินโดวส์แล้วเครื่องเห็นอุปกรณ์ แต่ไม่มีการ์ดเน็ตโผล่มา สาเหตุไม่ได้อยู่ที่ซิมหรือที่การส่งผ่านพอร์ต แต่อยู่ที่ dongle เปิดหน้าตาแบบ CDC ECM ซึ่งวินโดวส์ไม่มีไดรเวอร์ติดมาให้ พร้อมกับดักโหมดสตอเรจและ dhclient ที่ทับ resolv.conf ของโฮสต์

ให้เว็บอ่านเครื่องอ่านบัตรที่เคาน์เตอร์ ด้วย agent บน localhost
เบราว์เซอร์แตะเครื่องอ่านบัตรสมาร์ตการ์ดเองไม่ได้ ทางที่ใช้ได้คือเขียน agent ตัวเล็กเปิดพอร์ตบน localhost แล้วให้หน้าเว็บเรียก บทความนี้เก็บครบทั้ง secure context, CORS preflight, การแย่งพอร์ตกับ agent เจ้าอื่น, PC/SC แบบ SHARED, การถอด TIS-620 เอง และวันที่โดนแอนตี้ไวรัสเหมาว่าเป็น backdoor

ส่งไฟล์จากงานอัตโนมัติเข้า Telegram กับเพดาน 50 MB ของ Bot API
วางบริการเล็ก ๆ ในเครื่องที่รับไฟล์จากสคริปต์แล้วส่งเข้า Telegram ให้ตัวเอง เป็นช่องทางออกทางเดียวล้วน ไม่มี polling ไม่รับคำสั่งกลับ พร้อมเพดานจริงของ Bot API ที่ต้องรู้ก่อนเขียน ทั้ง 50 MB ต่อไฟล์ รูปเกิน 10 MB ที่ต้องส่งเป็นเอกสาร และกับดักภาษาไทยใน curl บน Windows

พอร์ต CDP ยังตอบ แต่สั่งงานไม่ได้ เพราะ Chrome อัปเดตทับตัวเอง
เครื่องเดียวรันงานอัตโนมัติหลายตัวที่ต้องใช้เบราว์เซอร์จริง แล้วเจอสองเรื่องพร้อมกัน — งานแย่งแท็บกันเองจนได้ผลของคนอื่น และ Chrome อัปเดตไฟล์ทับตัวเองขณะโปรเซสยังรัน ทำให้พอร์ตยังตอบแต่สั่ง Runtime.evaluate ไม่ได้ บทความนี้คือวิธีแยกงาน วิธีตรวจให้เจอ และตัวซ่อมที่ทำงานเอง

ไฟดับ 25 ชั่วโมง แล้วงานตามเวลาที่พลาดไปหายไปเลย
เครื่องที่รันงานอัตโนมัติดับสามรอบในสามวัน รอบยาวสุด 25 ชั่วโมง พอกลับมาถึงรู้ว่างานที่ตั้งด้วย Task Scheduler ตรง ๆ หายไปทั้งรอบไม่รันชดเชย ส่วนงานที่ผ่านตัวสั่งงานซึ่งเทียบเวลาเองไล่ตามครบทุกตัว บทความนี้คือค่าที่ต้องเปิด สิ่งที่ห้ามทำตอนกู้ และกับดักที่ทำให้อ่านสถานะผิด

งานอัตโนมัติหยุดส่งรูป 4 วัน เพราะ subprocess เลือก ssh ตาม PATH
เขียน subprocess.run(["ssh", ...]) แล้วปล่อยให้ระบบเลือกไบนารีตาม PATH ของคนเรียก วันหนึ่งคนเรียกเปลี่ยน ไบนารีเปลี่ยนตาม งานส่งไฟล์ตายเงียบ 4 วันโดยรายงานว่าสำเร็จทุกครั้ง บทความนี้คือวิธีจับอาการ และตัวช่วยที่ probe ไบนารีจริงก่อนใช้ พร้อมด่านตรวจความครบก่อนบอกว่าเสร็จ

ยืม VLAN ให้เครื่องมือ Windows ที่ต้องอยู่ L2 เดียวกับอุปกรณ์
โปรแกรมค้นหาอุปกรณ์ของผู้ผลิตหลายเจ้าใช้ broadcast ซึ่งไม่ข้าม L3 ต่อ VPN เข้ามาก็ยังมองไม่เห็นอุปกรณ์ ทางออกที่ไม่ต้องแตะพอร์ตสวิตช์คือวาง VM Windows ตัวเล็กไว้บน Proxmox แล้วให้ขาของมันอยู่ใน VLAN นั้นตรงๆ พร้อมกับดัก vlan-aware bridge, thin pool ที่เต็มแล้วทำ VM อื่นพัง และ virtio ที่ทำให้ลง Windows แล้วไม่มีการ์ดเน็ต

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

ขับ AutoCAD จาก PowerShell ผ่าน COM — วาดแบบด้วยสคริปต์
AutoCAD เปิด COM ไว้ให้เขียนสคริปต์สั่งได้เหมือน Excel เกาะเข้าตัวที่เปิดอยู่ด้วย New-Object แล้ววาดเส้น วงกลม ข้อความ กล่องสามมิติ สร้างเลเยอร์ ใส่เส้นบอกระยะ และเซฟไฟล์ได้ครบจาก PowerShell พร้อมกับดักสี่ข้อที่เจอมาเองรอบเดียวจำไปตลอด

สั่งงานอัตโนมัติบนเครื่อง Windows ระยะไกลผ่าน SSH + Task Scheduler
ยก workload หนักไปรันบนเครื่องแรงอีกตัวผ่าน SSH แล้วตั้งให้วิ่งเองด้วย schtasks — พร้อมกับดักที่เสียเวลาจริง ตั้งแต่ ssh เข้าไปแล้วเจอ PowerShell 5 ไม่ใช่ bash, backslash โดนกินตอนเขียนไฟล์ .bat, จนถึงเคส push ไฟล์ออกแล้วค้างนิ่งที่แก้ด้วย plink

เขียนแอปมอนิเตอร์ ping จอเดียวด้วย C++ ImGui กับ DirectX 11
แอปเล็กๆ ที่ ping อุปกรณ์ทั้งวงพร้อมกันแล้วสรุปลงจอเดียว ยิง ICMP ตรงผ่าน iphlpapi ไม่เรียก ping.exe แยกหนึ่ง thread ต่อหนึ่ง host คุยกับ UI ด้วย std::atomic วาดด้วย Dear ImGui บน DirectX 11 แล้ว build ด้วย CMake กับสคริปต์ PowerShell ตัวเดียวจบ

ทำ Android dev บน MIUI/HyperOS แล้ว adb ทำงานไม่ได้ — กับดักบน Windows
adb ไม่ได้พังหรอกครับ แต่ Git Bash แปลง path /sdcard ให้เพี้ยน, PowerShell ทำไฟล์ screenshot เป็น 0 ไบต์, MIUI/HyperOS บล็อกการติดตั้งครั้งแรก และ here-string กลืน backslash เวลาปั้นโค้ด PHP — รวมกับดักจริงตอนทำแอป Android บน Windows พร้อมคำสั่งที่ใช้ได้จริง

ต่อเครื่องชั่ง RS-232 Toledo ผ่าน Bluetooth อ่านด้วย PowerShell
ต่อเครื่องชั่งดิจิทัล TWT-01 ที่มีแต่พอร์ต RS-232 เข้าพีซีผ่านตัวแปลง Bluetooth BT578 แล้วอ่านน้ำหนักเรียลไทม์ด้วย PowerShell — ไล่ตั้งแต่จับคู่ Bluetooth หา COM port จาก MAC แกะ frame ของ Toledo Continuous 18 ไบต์ ไปจนถึงกับดัก null byte กับ scale auto-sleep ที่เจอจริงตอนใช้งาน

เขียนสคริปต์บน Windows ไปรันบน Linux — สองกับดักที่ทำไฟล์ค้างเซิร์ฟเวอร์
เขียน helper script บน Windows แล้ว scp ขึ้นไปรันบน Linux เป็นงานประจำ แต่มีสองอย่างที่กัดซ้ำ ๆ — path แบบ d:\ ที่ฝังในสคริปต์กลายเป็นชื่อไฟล์ประหลาดใน /tmp จนโดน file monitor จับ และไฟล์ token/payload ที่ลืมลบทิ้งไว้บนเซิร์ฟเวอร์ บทความนี้สรุปกฎกันพลาด

สร้าง .ppk ให้ plink/pscp บน Windows โดยไม่ต้องเปิด puttygen
puttygen.exe บน Windows เป็น GUI ล้วน สั่งแปลง OpenSSH เป็น .ppk แบบ batch ไม่ได้ (เด้ง unrecognised option) — บทความนี้เขียนไฟล์ PPK v3 ตรง ๆ ด้วย Python พร้อมสูตร MAC HMAC-SHA-256 ที่หาอ่านยาก ใช้กับ plink/pscp/WinSCP ได้ทันที

ส่ง USB เข้า WSL2 ด้วย usbipd-win — ให้ Linux บน Windows จับฮาร์ดแวร์จริง
WSL2 มองไม่เห็นอุปกรณ์ USB เพราะเป็น VM ที่ไม่มี USB controller — usbipd-win ส่งอุปกรณ์จาก Windows ข้ามไปให้ kernel ของ WSL ตรงๆ ด้วย 3 คำสั่ง list/bind/attach พร้อมข้อควรรู้จากงานจริง: attach หลุดตอนถอดสาย, กับดัก CRLF และ USB modem แย่ง default route

ใช้ Claude อัป Proxmox 8 ขึ้น 9 แล้วสร้าง Windows VM ใหม่ทั้งคลัสเตอร์
เคสจริง ใช้ VS Code + Claude อัป Proxmox 8 ขึ้น 9 ทั้ง cluster แล้วล้างสร้าง Windows VM ใหม่ทั้งหมดแบบ VDI โดยไม่ได้ ssh เข้าเครื่องเองเลยสักครั้ง ถอดคำสั่งและสคริปต์ที่ Claude สร้างระหว่างทำงานจริงออกมาเป็นขั้นตอน ให้คนหรือ AI อ่านแล้วเอาไปสั่งทำซ้ำได้จริง

ขับ SketchUp ด้วย Claude Code ตอนที่ 1 — เตรียมเครื่องมือ uv กับ PyNite
เริ่มซีรีส์ขับ SketchUp ให้เขียนแบบ 3D โครงเหล็กแล้วคำนวณ FEA ด้วย Claude Code ตอนแรกว่าด้วยการเตรียมเครื่องล้วน ตั้งสิทธิ์ Claude ลง uv และสร้าง conda env ใส่ PyNite

สร้างเซิร์ฟเวอร์ AI จากเครื่องเดสก์ท็อป WSL2 + Ollama + OpenClaw
บันทึกการประกอบเซิร์ฟเวอร์ AI ในบ้านจากศูนย์ เริ่มจาก Windows 11 IoT ลง WSL2 + Ubuntu วาง Ollama รัน LLM บนการ์ดจอสองใบ แล้วต่อด้วย OpenClaw หลาย instance ผ่าน systemd ครบทั้ง driver, custom Modelfile, การแยก user และ benchmark