「Windows」標籤的文章
帶有「Windows」標籤的文章共 115 篇,依發布日期由新到舊排列。
-
Windows 虛擬化的深層(第 3 回)── 數秒就能啟動的虛擬機器:為什麼 WSL2、Windows Sandbox 與容器這麼輕
為什麼 WSL2 與 Windows Sandbox 能在數秒內啟動、感覺這麼輕?本文從動態基礎映像、direct map、動態記憶體配置到 Hyper-V 隔離容器,解說這些機制。
-
Windows 虛擬化的深層(第 2 回)── 連核心都看不到的記憶體:VBS、HVCI 與 Credential Guard 如何運作
在相容硬體上全新安裝時,VBS 預設啟用,並用 Hypervisor 與 SLAT 做出比核心更強的隔離。本文解說 VTL、Secure Kernel、HVCI 與 Credential Guard 的結構。
-
Windows 虛擬化的深層(第 1 回)── 你的 Windows 其實跑在哪裡?Hypervisor 與分割區
啟用 Hyper-V 後,主機 Windows 本身會以根分割區的身分跑在 Hypervisor 之上。本文從 VT-x、SLAT、VMBus 的角色解說虛擬化的基礎。
-
Win32 執行緒集區 API ── 用 CreateThreadpoolWork 做「不自己建立執行緒」的並行
原生程式碼裡到處呼叫 CreateThread 嗎?本文依一次資訊解說 Vista 重新設計的 Win32 執行緒集區 API──work、timer、wait、io 四種物件、清理群組,以及回呼裡不該做的事。
-
具名管道實務 ── 從設計到安全性,整理 Windows 的標準 IPC
以實務角度解說 Windows 標準行程間通訊──具名管道。從一次資訊整理位元組/訊息模式的選擇、同時服務多個用戶端的伺服器設計、ACL 與偽裝的安全性,以及 .NET 的具名管道串流。
-
從睡眠恢復就壞掉的應用程式 ── Windows 電源事件的機制,以及耐得住恢復的業務應用寫法
打開筆電,業務應用程式的連線卻斷了──原因是設計從未把睡眠算進去。本文依一次資訊整理 WM_POWERBROADCAST 的通知流程、Modern Standby 的行為、斷線/重連設計、睡眠抑制,以及調查指令。
-
DllMain 與載入器鎖定 ── 「DLL 初始化什麼都別做」真正的理由
為什麼不能從 DllMain 呼叫 LoadLibrary,也不能和其他執行緒同步。本文依一次資訊說明載入器鎖定如何序列化每個 DLL 通知、結構上必定成立的死結場景、延遲初始化的正確設計,以及無回應的調查方式。
-
「沒有回應」的真面目 ── Windows 如何判定應用程式當住,以及不卡住的設計
Windows 的「沒有回應」是作業系統判定視窗 5 秒未取出訊息後,換成幽靈視窗的機制。本文涵蓋該判定的內部、無回應的經典原因、把重工作移出 UI 執行緒的設計,以及調查無回應的程序。
-
虛假喚醒 ── 條件變數為何「沒被通知也會醒來」,以及 Windows 上正確的等待方式
條件變數的等待即使沒有通知到來也可能返回(虛假喚醒)。本文從 Windows 實作說明規格為何允許它,並展示 Win32、C++ 與 C# 裡用 while 迴圈與述語正確等待的寫法。
-
剪貼簿與拖放的運作方式 ── 在業務應用程式中正確處理 OLE 資料傳輸
貼上 Excel 表格格式就散掉;關掉來源應用程式就再也貼不上──兩者都來自剪貼簿把同一份內容一次放進多種格式。本文涵蓋標準格式、延遲轉譯、OLE 拖放,以及管轄剪貼簿歷程與雲端同步的原則。
-
WPR/WPA 實務 ── 從系統整體調查「整台 PC 變慢」
工作管理員追不到的「整台 PC 變慢」「開機很慢」,可用 WPR/WPA 擷取整個 OS 的 ETW 追蹤再讀。本文說明 wpr.exe 擷取步驟,以及在 WPA 裡怎麼讀 CPU、等待與磁碟 I/O。
-
從應用程式看 Windows 關機 ── 正確扛住結束通知、重新啟動與斷電
夜間 Windows Update 重啟把量測資料弄壞——這種事故可用設計避免。本文依一次資訊整理 WM_QUERYENDSESSION 與 PRESHUTDOWN 等結束通知的接法、幾秒內做完收尾,以及斷電也不留下半截檔的寫法。
-
Windows 應用程式無障礙入門 ── 為 UI Automation 與合理調整做準備
在 2024 年 4 月施行的日本消除對身心障礙者歧視法修正背景下,本文以螢幕閱讀器讀取 Windows 應用的機制 UI Automation 為中心,從實務整理 WinForms/WPF 的命名、鍵盤操作、對比與驗證工具。
-
日文字型與字元的陷阱 ── 業務應用裡的 JIS2004、IVS、外字
「葛這個字在畫面與列印表單看起來不一樣。」「人名裡的某個字顯示不出來。」業務系統的字元麻煩,一旦把字元碼(資料)層與字型(外觀)層分開,就能處理。本文整理 JIS2004 字形變更、異體字選擇器與外字(EUDC)的實務對應。
-
從群組原則到 Intune ── 中小企業的裝置管理移轉指南
AD 伺服器到了該換的時候,該繼續用群組原則,還是改走 Entra ID 加 Intune?本文為中小企業整理兩者套用方式的差異、授權、用 Group Policy analytics 盤點、五階段移轉情境,以及容易踩的坑。
-
Windows 服務帳戶選定 ── LocalSystem、虛擬帳戶與 gMSA
您是否仍以 LocalSystem 執行 Windows 服務?本文以判斷表比較 LocalService、NetworkService、虛擬帳戶、網域使用者與 gMSA 的權限與網路身分,說明如何以最小權限營運。
-
OneDrive「隨選檔案」與業務應用 ── 預留位置打破的前提與對策
桌面 CSV 打不開、匯入以「找不到檔案」失敗,原因可能是 OneDrive 的已知資料夾搬移與隨選檔案。本文說明預留位置的運作、如何用屬性判斷狀態,以及應用與 IT 各自能做的事。
-
Windows 應用程式相容如何運作 ── 用相容模式、Shim 與 Compatibility Administrator 延續舊應用
為什麼勾選相容模式後舊應用又會啟動。本文說明 Shim(API 攔截)的機制、代表性 Shim 的作用、用 Compatibility Administrator 與 sdbinst 部署的方法、失效界限,以及延長壽命與遷移的判斷。
-
Windows 記憶體的深層(第3回)── 區段物件與寫時複製:DLL 與檔案對應的真面目
把區段物件、映像與資料對應、共享快取、寫時複製串起來,說明 DLL 與共享記憶體如何共用實體頁面。
-
今日的 Windows 殼層整合 ── 右鍵選單、檔案關聯,以及 Windows 11 改了什麼
說明 Windows 11 右鍵選單為何藏到「顯示更多選項」後面,從副檔名→ProgID→verb 關聯基礎、傳統殼層擴充套件注意事項,到 IExplorerCommand 與 MSIX/sparse package 路徑。
-
企業內部 Proxy 與 Windows 應用程式 ── 整理 WinINET、WinHTTP、.NET 的 Proxy 解析
瀏覽器連得上,只有業務應用程式過不了企業內部 Proxy。原因多半是 WinINET、WinHTTP、環境變數與 .NET 各自讀到的 Proxy 設定不一致。本文整理 PAC 與 WPAD、驗證 Proxy、TLS 檢查與隔離步驟。
-
Windows 記憶體的深層(第2回) ── 實體頁面的一生:五份清單與分頁檔的真相
把 PFN 資料庫、Standby、Modified、記憶體壓縮與分頁檔串起來,說明實體頁面離開 Working Set 之後會去哪裡。
-
Windows 封包擷取實務 — pktmon、netsh trace、Wireshark 怎麼選
應用程式紀錄只留下「逾時」的通訊故障,往下一層看實際走過線路的封包就能調查。即使伺服器不能安裝 Wireshark,也能用內建的 pktmon 與 netsh trace 擷取。本文整理擷取與分析分開的現場作法。
-
Windows 記憶體的深層(第 1 回) ── 虛擬位址變成實體 RAM 的瞬間:頁面錯誤從頭到尾
把 VirtualAlloc、VAD、頁面表、TLB、demand-zero 與硬錯誤串起來,說明虛擬位址被賦予實體 RAM 的那一瞬間。
-
解讀 Windows 錯誤碼 ── Win32、HRESULT、NTSTATUS 三層結構
出現 0x80004005 時,先分解再搜尋。本文整理 Win32 錯誤、HRESULT、NTSTATUS 的三層結構、0x8007xxxx 是包起來的 Win32 錯誤這個最重要模式,以及用 err.exe 與 PowerShell 查詢的方法。
-
Windows 的「記憶體使用量」代表什麼 ── 正確解讀 Working Set、Private Bytes、Commit 與分頁檔
工作管理員的記憶體、Working Set、Private Bytes、Commit 並非同一個數值。本文解說 Windows 虛擬記憶體與實體記憶體的關係、分頁檔的角色,以及在記憶體不足或洩漏調查時應該檢視的指標。
-
多執行緒實務最佳實踐 C 語言篇 ── 以 Win32 API 的方式安全撰寫
C 語言 × Win32 的多執行緒有其定式:以 _beginthreadex 建立執行緒、SRW 鎖與條件變數、Interlocked、以停止事件 + WaitForMultipleObjects 設計停止流程。本文一併整理 TerminateThread 的危險性與 DllMain 的限制。
-
多執行緒實務最佳實踐 C++ 篇 ── 以 RAII 與 jthread 從結構上消除事故
C++ 的多執行緒是資料競爭會變成未定義行為的世界。本文整理 std::thread 解構函式的陷阱、以 jthread 與 stop_token 設計停止機制、scoped_lock 的死鎖迴避、atomic 的正確定位,以及與 Win32 同步 API 的使用區分。
-
多執行緒的實務最佳實踐 .NET篇 ── 在增加執行緒之前先決定的事
針對 .NET/C# 整理能防止「建立執行緒後偶爾當機、卡死」的設計定石。內容涵蓋不自行建立執行緒而改用 Task、減少共享可變狀態、鎖的紀律、以 CancellationToken 設計停止機制,以及 UI 執行緒的處理方式。
-
磁碟區陰影複製服務(VSS)的機制與實務 ── 為什麼能備份使用中的檔案
明明使用中的檔案會因共用違規而無法複製,備份軟體卻為什麼辦得到?本文解說磁碟區陰影複製服務(VSS)中要求者・寫入器・提供者的角色分工、寫入時複製的機制、vssadmin 的實務操作與差異區的陷阱。
-
在 C#・PowerShell 中使用 WMI/CIM ── 硬體資訊取得・處理程序監控・遠端查詢的實務指南
取得 PC 序號、監控磁碟可用空間、偵測處理程序啟動,這些定番需求的標準答案就是 WMI/CIM。本文解說 Get-CimInstance 等 CIM Cmdlet 的用法、從舊版 Get-WmiObject 的遷移方式、C# 的 System.Management 與 CIM API 該如何區分使用,並附上實例...
-
群組原則(GPO)實務入門 ── 運作機制、生效確認與 Intune 的分工
你是否在不清楚「用 GPO 分發」是什麼意思的情況下,就在操作 AD 環境?本文從實務角度說明群組原則的運作機制與 LSDOU 套用順序、以 gpupdate、gpresult 確認生效狀況、與 Intune 的分工,以及客戶端 GPO 改變應用程式行為的陷阱。
-
Windows 安全性稽核原則與事件記錄調查實務 ── 成為看得懂 4625 的資訊系統人員
這是一份實務指南,用來回應「請幫忙查一下登入失敗的記錄」這類需求。內容涵蓋基本與詳細稽核原則的關係、最低限度應啟用的子類別、事件 ID 4624/4625/4688 的判讀方式、Security 記錄檔的容量設計,以及使用 Get-WinEvent 擷取的方法。
-
Windows LAPS 實務指南 ── 停止在所有電腦共用同一組本機系統管理員密碼
所有電腦共用同一組本機系統管理員密碼,是讓一台遭入侵就波及全部電腦的 Pass-the-Hash 攻擊溫床。本文說明已成為作業系統標準功能的 Windows LAPS 如何自動輪替密碼、AD/Entra ID 的儲存設定,以及實務運用上的陷阱。
-
Windows 憑證存放區實務指南 ── 該放進使用者,還是電腦?
用戶端憑證應該放進使用者存放區還是電腦存放區?從 certmgr.msc 與 certlm.msc 的差異、私密金鑰的權限授予,到用 PowerShell 進行到期日盤點,本文有系統地整理憑證常見事故的解法。
-
Windows 防火牆與業務應用程式 ── 受信規則要在安裝程式中登錄
「開發機上正常運作,但在客戶端卻無法通訊」的典型原因就是 Windows 防火牆。本文說明受信預設封鎖與設定檔的機制、為何不能把正式環境交給通知對話方塊處理,以及在安裝程式中登錄受信規則與問題排查的步驟。
-
BitLocker 實務指南 ── 從回復金鑰的管理開始建立磁碟機加密
Windows 11 24H2 以後,乾淨安裝時「裝置加密」會預設啟用,「不知不覺就被加密了」的事故已成為現實。本文以回復金鑰的儲存位置判斷表為主軸,整理其機制、組織內的運用、事故應對到廢棄處理。
-
Windows I/O 的深層(第 6 回・最終回) ── 篩選驅動程式與迷你篩選驅動程式:Procmon 與病毒掃描為何能夠介入 I/O
本文是透過圖解說明 Windows 篩選驅動程式與迷你篩選驅動程式的系列最終回。整理了篩選管理員與海拔、pre/post 回呼、Procmon 與防毒軟體能夠檢查全部 I/O 的機制,直到「唯獨那個環境慢」的調查步驟。
-
Windows I/O 的深層(第 5 回) ── NTFS 的內部結構:從 MFT 理解檔案系統
本文是透過圖解說明 NTFS 內部結構的系列第 5 回。從開發者視角整理 MFT 與檔案記錄、多重資料流(Zone.Identifier)、硬連結與 8.3 短檔名、重新解析點、兩種日誌,直到稀疏與壓縮等內容。
-
Windows I/O 的深層(第 4 回) ── 快取管理員:你的 WriteFile 究竟何時送達磁碟
本文是透過圖解說明 Windows 快取管理員的系列第 4 回。整理了以檔案映射方式實作的快取、預先讀取與延遲寫入、FlushFileBuffers 與 FILE_FLAG_NO_BUFFERING 的區分使用,直到斷電導致資料消失的條件。
-
Windows I/O 的深層(第 3 回) ── I/O 完成埠(IOCP)與 .NET 執行緒集區:async/await 的地下室
本文是以圖解說明 I/O 完成埠(IOCP)的系列文章第 3 回。將完成佇列與執行緒數控制合而為一的設計、並行值與 LIFO 釋放、.NET 執行緒集區,直到 async/await 接續實際執行的執行緒為止,逐一整理。
-
MSMQ 能用到什麼時候 ── 「連淘汰都稱不上」的遺留佇列遷移判斷
MSMQ 並未列在官方的淘汰清單中,但 System.Messaging 只存在於 .NET Framework,成為遷移到 .NET 的障礙。本文以事實釐清「已淘汰」的傳聞與實際現況,整理繼續使用或遷移的判斷基準,以及遷移目標的選擇方式。
-
Windows I/O 的深層(第 2 回) ── 同步 I/O 與非同步 I/O:OVERLAPPED 的真正含義
本文為以圖解說明 Windows 同步 I/O 與非同步 I/O(重疊 I/O)的系列文章第 2 回,將完整整理 FILE_FLAG_OVERLAPPED 的意義、完成通知的 4 種方式、明明是非同步卻同步完成的條件、取消的作法,直到與 .NET 的對應關係。
-
AppLocker・App Control for Business(WDAC)與業務應用程式發布 ── 在被「執行控制」封鎖之前
本文整理 AppLocker、App Control for Business(原稱 WDAC)與 Smart App Control 的差異,以及讓自家業務應用程式不被客戶環境的執行控制封鎖,開發與發布方應採取的對策,同時也整理被封鎖時如何解讀事件記錄檔。
-
Windows I/O 的深層(第 1 回) ── 所有讀寫都會變成 IRP:I/O 系統全貌
本文是從根本解說 Windows I/O 系統的系列文章第 1 回,透過圖解整理物件管理員的名稱空間、驅動程式・裝置・檔案這三種物件、IRP 的生命週期,直到 CloseHandle 幕後的機制。
-
SMB 簽章與 LDAP 通道繫結 ── 在實務中補齊 NTLM 對策的「剩餘一半」
在停止使用 NTLM 之前,能抑制中繼攻擊損害的防禦手段就是 SMB 簽章與 LDAP 簽章・通道繫結。本文從實務角度整理各作業系統的預設值、稽核事件的判讀方式、邁向強制執行的步驟,以及業務應用程式與機器的修正方法。
-
圖解NTLM與Kerberos ── 為什麼驗證會「回退」到NTLM
以圖解方式整理NTLM與Kerberos的差異。內容涵蓋挑戰/回應機制、TGT與服務票證、SPN無法解析時Negotiate回退到NTLM的條件、中繼攻擊與Pass-the-Hash成立的原因,以及NTLMv1遭到移除的來龍去脈,並附上官方文件佐證。
-
NTLM廢除會讓業務應用程式停擺嗎 ── 稽核記錄的擷取方式,以及消除相依性的順序
本文彙整了在 NTLM 廢除之前,盤點自家 Windows 環境與業務應用程式在何處相依 NTLM 的具體步驟。內容涵蓋稽核原則、NTLM/Operational 記錄檔中事件 8001~8004 的追蹤方式、落回 NTLM 的典型模式與修正方法,以及 SMB 的 NTLM 封鎖。
-
Windows 的 TPM 是什麼 ── 圖解「不讓金鑰外流的保險箱」與測量啟動
本文以圖解說明 TPM。從不讓金鑰流出晶片外的機制、PCR 與測量啟動、在 BitLocker 與 Windows Hello 中的運用方式、dTPM・fTPM・Pluton 的差異、以 Get-Tpm 確認的方法,到被要求輸入回復金鑰時的因應,皆以實務角度整理。
-
用 winget + PowerShell 自動化 PC 配置 ── 讓操作手冊變得可執行
本文整理讓新進員工 PC 的環境建置可重現的方法,涵蓋以 winget 進行應用程式導入與 export/import、WinGet Configuration 的宣告式組態、以 PowerShell 補充的設定,以及無人執行時的注意事項。
-
PowerShell 的安全性強化 ── 日誌・AMSI・語言模式・JEA
本文整理在不禁止 PowerShell 的前提下安全使用它的實務做法。內容涵蓋啟用指令碼區塊記錄與逐字稿記錄、停用 AMSI 與舊版本、以語言模式進行限制,以及透過 JEA 委派權限。
-
使用 Get-WinEvent 有效率地調查事件記錄 ── 篩選的速度決定調查所需的時間
本文整理如何用 PowerShell 有效率地進行 Windows 事件記錄的調查。說明以 Where-Object 篩選為什麼慢、FilterHashtable 與 XPath 的使用區分、重新開機、登入、應用程式異常結束等調查手法,以及跨多台伺服器收集記錄的方法。
-
PowerShell與REST API串接 ── Invoke-RestMethod的實務
本文整理從PowerShell呼叫公司內部API或SaaS REST API的實務作法。內容涵蓋認證標頭的傳遞方式、日文JSON亂碼的因應對策、4xx/5xx的錯誤處理、429的重試、分頁,以及Proxy與TLS的陷阱。
-
PowerShell 腳本太慢時該檢查的地方 ── 陣列・管線・比對的訣竅
整理 PowerShell 腳本變慢的常見原因。從實務角度解說陣列 += 造成 O(n^2) 的原因、管線與 foreach 的差異、比對的雜湊表化、檔案 I/O 的改善,以及正確的測量方式。
-
告別 Write-Host ── PowerShell 的輸出資料流與日誌設計
本文整理 PowerShell 六個輸出資料流的使用區分、Write-Host 所存在的問題與正確用途、函式傳回值被污染的原因、透過 -Verbose 與 -InformationVariable 由呼叫端進行控制的方法,以及結構化日誌的留存方式。
-
PowerShell 的並行處理 ── ForEach-Object -Parallel 與工作(Job)的選用之道
從實務角度整理 ForEach-Object -Parallel、Start-ThreadJob、Start-Job 的差異與選用方式,$using: 與執行緒安全性,ThrottleLimit 的決定方法,以及反而變慢的情況。
-
從 PowerShell 正確呼叫外部 exe ── 引數的引號、結束代碼、亂碼陷阱
從 PowerShell 呼叫 robocopy 或公司內部 EXE 時,引數會被破壞、拿不到結束代碼、輸出出現亂碼。本文從實務角度整理 PowerShell 7.3 的引數傳遞變更、停止剖析權杖 --%、以及 Start-Process 的使用時機。
-
Process Explorer / Handle / VMMap 實戰 ── 從「此刻」的狀態追查無回應、洩漏、「檔案使用中」
本文是調查「愈用愈重」「檔案刪不掉」「無回應」的 Sysinternals 實戰系列第 2 彈。從實務角度解說 Process Explorer 的控制代碼搜尋、執行緒堆疊、洩漏監控欄位、handle.exe,以及用 VMMap 拆解記憶體組成的做法。
-
Windows的時間同步(w32time)與業務系統 ── 從機制原理解決「日誌時間戳記對不上」的問題
從Windows Time服務(w32time)的機制,解說裝置與PC之間日誌時間產生落差的原因。內容涵蓋網域階層與工作群組的預設行為、以w32tm指令進行的診斷、高精確度時間與虛擬機器的注意事項,一直到併用Stopwatch與UTC的日誌設計。
-
登錄檔的 32bit/64bit 重新導向與虛擬化的陷阱 ── Wow6432Node 與「明明寫入了卻讀不到值」的問題
整理 32bit 應用程式寫入 HKLM\Software 會被重新導向到 Wow6432Node 的機制、UAC 虛擬化在哪些條件下會轉送到 VirtualStore、COM 註冊依 bitness 分離所造成的實際損害,以及透過 RegistryView 或 reg.exe /reg:64 正確讀寫的方法。
-
那個批次檔,該遷移到 PowerShell 嗎? ── cmd/bat 資產盤點與遷移判斷
以判斷表整理企業內部殘留的批次檔(bat)是否該遷移到 PowerShell。對比 cmd 與 VBScript 的處境、bat 特有的弱點(例如錯誤不會中斷執行)、過渡期的寫法、指令改寫對照表與遷移步驟。
-
PowerShell 呼叫 COM 與 .NET 的實戰 ── 一口氣擴大腳本能觸及的範圍
從 PowerShell 呼叫 .NET 類別的方法、透過 Add-Type 組入 C# 與 Win32 API、COM 操作、Excel 的處理程序殘留與後續處理、Office 無人執行不受支援的原因,到 5.1 與 7 的差異,皆以實務角度解說。
-
Power Automate 與 PowerShell + 工作排程器的分工 ── 不混用自動化工具,各就各位地串接
本文整理 PowerShell + 工作排程器的夜間批次作業與 Power Automate 流程開始混雜在公司內部的中小企業資訊部門所需的判斷依據:兩者擅長領域的差異、該用哪一種來建置的判斷表、透過 SharePoint 進行鬆散耦合串接的協作模式,以及授權與維運上的注意事項。
-
PowerShell 中安全處理認證資訊 ── 把明文密碼逐出腳本
本文整理將 PowerShell 腳本中的明文密碼遷移至安全保存方式的做法,說明 SecureString 的實際樣貌與限制、Export-Clixml 透過 DPAPI 保存的機制,以及 SecretManagement/SecretStore 的適用場合。
-
PowerShell 腳本的引數設計與模組化 ── 從「能動的腳本」到「能交給別人用的腳本」
本文整理將 PowerShell 腳本提升到可以交給別人使用之品質的步驟,說明 param 區塊與 [CmdletBinding()]、輸入驗證、管線輸入、-WhatIf 對應、.psm1 模組化,一直到公司內部共用與 Git 管理的要點。
-
用 PowerShell 為檔案伺服器盤點 ── 容量調查與存取權限(ACL)稽核
用 PowerShell 盤點檔案伺服器的實務步驟。整理容量調查與存取拒絕的記錄、舊檔案清單與重複候選的雜湊擷取、以 Get-Acl 進行權限稽核與偵測繼承中斷、CSV 報表化、與 icacls 的分工,直到 Set-Acl 的安全變更步驟。
-
PowerShell Remoting(WinRM)入門 ── 一次管理多台 Windows
PowerShell Remoting(WinRM)一次管理多台 Windows 的入門介紹。整理其運作機制與連接埠 5985/5986、執行 Enable-PSRemoting 會發生的事、工作群組的 TrustedHosts、Invoke-Command 與 PSSession、second hop 問題,直...
-
Windows PowerShell 5.1 與 PowerShell 7 的差異 ── 公司內部腳本遷移實務指南
本文整理 Windows PowerShell 5.1 與 PowerShell 7 的關係(共存與 pwsh.exe)、5.1 不再新增功能的官方方針、編碼差異造成的亂碼問題、以 #Requires 進行防禦,直到更新工作排程器為止的遷移步驟。
-
用 PowerShell 自動化 Excel・CSV 業務處理 ── 彙總・比對・報表輸出的實務食譜
用 PowerShell 自動化 CSV 彙總・比對與 Excel 報表輸出的實務食譜。解說 Import-Csv/Export-Csv 的字元編碼預設值(5.1 與 7 的差異)、以 Group-Object 進行彙總、用 Compare-Object 與雜湊表進行比對,以及 ImportExcel 與 Exc...
-
PowerShell 的錯誤處理與重新執行設計 ── 從 try/catch 失效的陷阱到 exit code、重試的實務定石
本文從實務角度整理 PowerShell 終止錯誤與非終止錯誤的差異、try/catch 失效的陷阱與 -ErrorAction Stop 的實務定石、以 $LASTEXITCODE 判定成敗、exit code 設計,直到指數退避的重試機制。
-
PowerShell 的執行原則與指令碼簽署 ── 從「用 Bypass 蓋住問題」的做法畢業的實務指南
PowerShell 的執行原則是「並非安全邊界,而是安全裝置」。本文整理 RemoteSigned 等原則的差異、範圍的優先順序、Mark of the Web 與 Unblock-File、指令碼簽署,以及公司內部發布的現實運用方式。
-
如何理解 Windows 的工作階段隔離 ── Session 0・RDP・多使用者同時執行
整理 Windows 應用程式開發者容易混淆的「工作階段」概念。說明服務無法顯示 UI 的 Session 0 隔離原因、RDP 連線時工作階段的行為、具名物件的工作階段隔離,以及共用 PC・RDS 環境常見的設計失誤,從實務角度解說。
-
防止 Windows 應用程式重複啟動 ── 具名 Mutex 與重複執行時的視窗前置
整理業務用 Windows 應用程式的常見需求「不讓同一個應用程式啟動兩次」,如何用具名 Mutex 實作。涵蓋 Global\ 與 Local\ 命名空間差異在 RDP 環境中的陷阱、擁有執行緒限制與 AbandonedMutexException、考量 SetForegroundWindow 限制下的既有執行...
-
在 WinForms/WPF 應用程式中導入 Entra ID 驗證 ── MSAL.NET 與 WAM 代理的實務架構
從實務角度整理在 WinForms/WPF 桌面應用程式中導入 Entra ID(原 Azure AD)驗證的做法。內容涵蓋公用客戶端的概念、ROPC 廢除現況、應用程式註冊、MSAL.NET 的 AcquireTokenSilent 模式、WAM 代理、權杖快取持久化,以及導入判斷與維運上的陷阱。
-
業務應用程式的日期時間與時區 ── 從 DateTime 的陷阱到 UTC 儲存原則、測試設計
伺服器搬遷後時間整整差了 9 個小時、只有海外據點的日期會變成前一天──本文從 DateTime 的 Kind 與隱式轉換整理日期時間事故的根本原因。內容涵蓋與 DateTimeOffset 的取捨、UTC 儲存與 ISO 8601 原則、TimeZoneInfo 與夏令時間、和 SQL Server/SQLit...
-
Windows 桌面應用程式的 UI 自動測試 ── UI Automation 的原理與用 FlaUI 打造不易損壞的測試
本文從 Windows UI Automation 的原理(樹狀結構、AutomationId、控制項模式)整理 WinForms/WPF 應用程式的 UI 自動測試。內容涵蓋以 FlaUI 實作的最小範例、WinAppDriver 的現況、透過 AutomationId 設計與條件等待讓測試不易損壞的方法,以及...
-
WPF 高 DPI 對應──「不是應該對 DPI 很強嗎」卻仍模糊、暈邊的原因與對策
WPF 以 DIP(1/96 英吋)進行版面配置,一開始就是 System DPI Aware,但移到 DPI 不同的螢幕時整體會暈邊,點陣圖與細線也會模糊。本文從實務角度整理原因判斷、.NET Framework 4.6.2/.NET 上的 Per-Monitor DPI 對應宣告方式、UseLayoutRou...
-
WinForms 的高DPI支援 - 4K螢幕顯示模糊、版面跑掉的原因與實務對策
本文從 DPI 虛擬化與 DPI 感知模式(System Aware / Per-Monitor V2)的角度,整理 WinForms 應用程式在4K螢幕、150%縮放環境下顯示模糊、版面跑掉的原因,並說明 .NET 與 .NET Framework 各自的設定方式、AutoScaleMode 與設計工具的陷阱,...
-
Windows 的行程間通訊該怎麼選 ── 具名管道 / TCP / gRPC / 共享記憶體 / COM 判斷表
整理 Windows 應用程式之間該如何選擇溝通方式。以判斷表整理具名管道、本機 TCP、gRPC、共享記憶體、檔案協作、COM 各自的強項與陷阱,並從實務角度說明 UI+服務分離・32bit/64bit 橋接・權限邊界等典型架構,以及具名管道的實作範例。
-
在 C# 中將 SQLite 用於業務應用程式 ── WAL 模式・排他控制・損毀對策・與 EF Core 的取捨
整理用 Microsoft.Data.Sqlite 把 SQLite 整合進業務用 Windows 應用程式的實務知識:連線字串與連線池、WAL 模式的原理、SQLITE_BUSY 與寫入路徑單一化、用交易加速、型別對應的陷阱、用 VACUUM INTO 備份,一直到該在什麼場合使用 EF Core。
-
Windows 服務的建立與維運 ── 從工作排程器的取捨到 BackgroundService 服務化
常駐處理該做成 Windows 服務,還是工作排程器就足夠?本文整理判斷表,以及用 .NET Worker Service(UseWindowsService)建立服務的方法、執行帳戶、復原選項、事件記錄、安全停止處理,從實務角度梳理上線維運所需的設計。
-
IE 模式之後改用 WebView2 就好嗎 ── ActiveX 無法運作的限制與現實的遷移設計
本文從內部系統的角度,整理 WebView2 的基本結構、Evergreen 與 Fixed Version 兩種配布策略、使用者資料資料夾的陷阱、原生與 Web 的連結方式,並在「ActiveX 無法運作」這一限制的前提下,梳理出脫離 IE 模式依賴系統的現實遷移順序。
-
Windows應用程式資料儲存位置怎麼選 ── SQLite / JSON / 登錄檔 / Access 判斷表
Windows桌面應用程式的資料該存在哪裡、用什麼格式儲存?本文整理AppData/ProgramData的使用區分,以及SQLite、JSON檔案、登錄檔、Access(.accdb)各自的優勢與陷阱,並附判斷表,從實務角度說明防止資料損毀與位元數問題等注意事項。
-
工作排程器的工作不執行、以 0x1 結束 ── 原因排查與安全的維運設計
本文整理 Windows 工作排程器的執行帳戶與登入類型、「不論使用者是否登入均執行」的含義、以 0x1 結束的典型原因、啟用歷程記錄、防止多重啟動、PowerShell 腳本的正確呼叫方式,直到把定期執行真正落實到維運上的設計方針。
-
Windows 的 MFC 是什麼──維護既有資產的基礎知識
整理 Microsoft Foundation Classes(MFC)的概觀、與 Win32 的關係、應用程式結構、訊息映射、Document/View、DDX/DDV,以及維護時的注意事項。
-
廢棄 Windows PC 前該做的事 ── 資料清除、帳戶解除、備份的實務檢查清單
本文整理在廢棄、轉讓、出售、歸還租賃的 Windows PC 之前該做的事,涵蓋備份、資料清除、BitLocker、Microsoft 帳戶、OneDrive、公司帳戶、開發者 PC 特有的機密資訊,以及廢棄記錄留存等觀點。
-
委外・委託開發 Windows 應用程式前該整理的事項
在委外・委託開發 Windows 應用程式之前,整理既有軟體改版、設備整合、COM/ActiveX、發布與更新、維護等應留意的重點。
-
正確處理 Windows 偽裝權杖 - 執行緒層級的權限借用與安全還原方式
本文整理 Windows 偽裝權杖的實務安全處理方式,涵蓋存取權杖、主要權杖、執行緒權杖、偽裝層級、RevertToSelf,以及 .NET 的 WindowsIdentity.RunImpersonated。
-
在 C#(CSharp)中執行 PowerShell 並以物件形式接收結果
本文從實務角度整理如何從 C# 啟動 PowerShell,並以 PSObject 而非字串來接收結果,涵蓋 PowerShell SDK、AddCommand、AddParameter、BaseObject、Properties 到錯誤處理。
-
用 Pester 整備 PowerShell 測試 ── 讓維運腳本不易損壞的實務做法
本文整理用 Pester v5 測試 PowerShell 腳本的實務步驟,涵蓋日期處理、檔案操作、刪除處理、Mock,一路到 CI 執行,協助安全地建立測試基礎。
-
Windows為何演變成現在的樣子:從開發者角度看歷代Windows的演進
本文從相容性、穩定性、權限管理、驅動程式、Win32、.NET、資安等Windows應用程式開發者的角度,整理Windows 95到Windows 11的變化,而不是單純以外觀年表的方式呈現。
-
Windows應用程式開發者的CPU設定入門:優先順序・親和性・P核心/E核心
本文為Windows應用程式開發者整理CPU優先順序、親和性、P核心/E核心、省電設定、EcoQoS/Efficiency Mode之間的關係,以及衡量效能、回應性與發熱的思考方式。
-
開發者的奇愛,或者我如何學會停止憂慮並愛上Windows
Windows很麻煩。但這種麻煩,正是因為它是一個長年背負著現實業務的作業系統才會有的麻煩。
-
PowerShell 實用指令集錦 ── 累積日常工作常用的小工具
本文整理 PowerShell 日常工作中常用的實用指令,說明 Measure-Object、Group-Object、Select-String、Compare-Object、Tee-Object、Start-Transcript 等指令的使用場景與時機。
-
PowerShell 腳本應用 ── 安全地自動化日誌調查、封存與報表化
本文整理用 PowerShell 腳本安全地推進日誌調查、CSV 報表、舊日誌封存、留存紀錄,一直到工作排程器定期執行的實務步驟。
-
PowerShell 指令基礎 ── 該先學會的操作與安全使用方式
為了讓 PowerShell 初學者在實務上不會迷路,本文整理了如何尋找 Cmdlet、管線、檔案操作、CSV 處理、執行原則,以及避免事故的確認步驟。
-
Windows 為什麼會出現「Windows 已保護您的電腦」
從程式碼簽章、EV/OV 憑證、Azure Artifact Signing、MSIX、Microsoft Store、ClickOnce、內部發佈到 App Control,以實務角度整理 Windows 應用程式發佈時出現 SmartScreen 警告的原因。
-
擺脫 IE 模式依賴系統的實務指南
本文從網站清單集中管理、中立網站、WebView2 封裝、階段式重構、VDI 隔離到治理設計,整理出一套讓依賴 Microsoft Edge IE 模式的內部 Web 系統能安全延命、並逐步脫離依賴的實務步驟,內容細緻到讀者可以直接動手執行。
-
Office 2024/Microsoft 365 中 ActiveX 無法運作的原因與檢查步驟
說明在 Office 2024/Microsoft 365 中 ActiveX 無法運作時,依序排查預設停用、32bit/64bit、COM 註冊、相依 DLL、IE 模式、Click-to-Run 記錄的順序。
-
為 VBScript 停用做準備:VBA・企業內部工具盤點指南
本文整理 VBScript 分階段停用前,VBA、Excel 巨集與企業內部工具的資產盤點、靜態偵測、執行紀錄蒐集、替代技術選型、測試與分階段導入的做法。
-
GCPW 是什麼 - 用 Google 驗證處理 Windows 登入的方法
整理 Google Credential Provider for Windows(GCPW)的運作原理、與 Windows device management 併用、既有設定檔、首次登入、離線、兩步驟驗證,以及導入時的注意事項。
-
整理 Windows 的字元編碼與換行符 - Shift_JIS / UTF-8 / UTF-16、亂碼、CRLF / LF,為何混亂
本文整理 Windows 上字元編碼與換行符容易混亂的核心:bytes、UTF-8 與 CP932、UTF-16LE、BOM、CRLF 與 LF 是不同軸的概念,亂碼源於以錯誤前提 decode,且誤儲存後無法還原。讀完即可在規格中寫出明確的 encoding 與換行約定,降低事故。
-
ClickOnce 是什麼 - 以實務視角整理機制、更新、適合場面・不適合場面
本文以實務視角整理 ClickOnce 是什麼,從 manifest、快取、更新、簽章的構造,到適合公司內部 .NET 桌面業務應用程式的案件與不適合 machine-wide 或 service、driver 等深度 OS 整合的案件,幫助讀者判斷是否採用並掌握 deploymentProvider 與簽章運營要點。
-
用 Windows 沙箱加速 Windows 應用程式開發的驗證 - 以實務向整理管理員權限問題、乾淨環境、權限不足・資源不足的重現
整理在 Windows 應用程式開發中如何運用 Windows Sandbox 加速驗證的實務做法。透過按情境分檔的 .wsb、唯讀輸入與專用 Outbox 寫入分離、在容器內另建標準使用者重現權限不足、以及降低記憶體和關閉 vGPU 製造資源不足偏向,把每次的乾淨環境準備變成可重複的步驟。
-
Windows 的 DLL 名稱解析機制 - 以實務角度整理搜尋順序、Known DLLs、API set、SxS
從實務角度整理 Windows 的 DLL 名稱解析,說明 loader 在掃描檔案系統前會先處理 DLL redirection、API set、SxS、Known DLLs,並用 SetDefaultDllDirectories 與 LoadLibraryEx 旗標縮小搜尋範圍以避開 hijacking 風險。
-
Windows 什麼時候需要系統管理員權限 - UAC、保護區、設計上的分辨方式
從邊界與儲存位置的角度,整理 Windows 何時真正需要系統管理員權限:UAC、保護區、HKLM、服務、驅動、防火牆。同時說明 per-user 與 per-machine 的差異,以及把管理員處理切成獨立 EXE、服務或工作的設計取捨,幫讀者判斷該不該提權。
-
釐清 Windows 的文字編碼 - 亂碼為什麼會發生,尤其是與 Linux 搭配時什麼地方會偏掉
本文從「亂碼為什麼會發生」的角度,重新整理 Windows 在 CP932、UTF-8、UTF-16、BOM、console code page 與 PowerShell 版本之間的編碼前提差異,並聚焦與 Linux 搭配時最常翻車的場景。透過 4 個調查問題與運維 checklist,幫你把文字編碼當成 I/O...
-
外部設備狀態檢查與顯示的最佳實務 - 別只用『連線中』就交差的設計
整理外部設備整合應用的狀態檢查與顯示要點。把存在、連線、回應性、功能備妥、資料新鮮度、組態一致與監控健全性拆成多軸管理,搭配啟動列舉、event 與 poll 並用、附 timestamp 的顯示、分級告警與 backoff 重連,避免「連線中」掩蓋實際狀況,讓 operator 能判斷此刻安全可做的動作。
-
Windows 應用安全處理子行程的 checklist - Job Object、結束傳播、標準輸入輸出、watchdog 的最佳實務
在 Windows 應用上安全處理子行程,關鍵不在挑啟動 API,而是設計行程樹的擁有者與結束流程。本文整理 Job Object 的 KILL_ON_JOB_CLOSE、GUI 與 console 的 graceful shutdown、stdio 平行抽乾與 EOF、watchdog 配置與 restart ...
-
Windows 應用發布方式怎麼選 - MSI / MSIX / ClickOnce / xcopy / 自訂 updater 的判斷表
整理 Windows 應用程式的發布方式,把 MSI、MSIX、ClickOnce、xcopy 與自訂 updater 各自的適用情境攤開比較。重點不是哪一種 installer 比較新,而是與 OS 的耦合深度與更新責任由誰扛兩條軸線;讀完能依 per-user/per-machine、服務或驅動有無、更新頻率...
-
在 Windows 環境下減少 Codex 亂碼事故的最佳實務 - 先把『指示方式』釘住,再談環境整備
本文整理在 Windows 上讓 Codex 安全處理日文檔案的指示原則:讀檔前先確認 encoding 與 BOM,疑似亂碼禁止臆測儲存,既有檔案維持原狀,僅新建採 UTF-8,並在寫入後重新讀取代表性日文行驗證,把規則沉澱進 AGENTS.md 以減少事故。
-
Windows 使用者設定檔入門 - AppData 與 NTUSER.DAT
整理 Windows 使用者設定檔的基本概念、AppData 的區分使用、本機/漫遊/Mandatory/Temporary、Folder Redirection、FSLogix,以及設定檔損壞時的排查方式。
-
把 Windows 的「處理器排程」改成「背景服務」會發生什麼 - 整理 quantum、優先權提升、P-Core/E-Core
整理把 Windows 的「處理器排程」切到「背景服務」時,到底改變的是哪一層;從 quantum、前景偏好、優先權提升,一路接到 Windows 11 hybrid CPU 上 QoS 與 P-Core/E-Core 的選擇,並區分什麼情況真的有效、什麼情況其實是 DPC、驅動、EcoQoS 等別的問題。
-
在 Windows 上如何比較不同版本程式的執行速度 - 從電源模式等環境的對齊到可到的極限
本文整理在 Windows 上比較不同版本程式速度時,如何把 power mode、power plan、熱、背景雜訊與快取狀態這些雜訊削到最低,並依 wall-clock、CPU time、cycle 三種指標把差異拆開讀,必要時再用 ETW / WPR 挖出真正的理由,協助你寫出有重現性、能被別人覆驗的 be...
-
Windows 中 NIC 詳細設定一次整理 - Jumbo Packet、RSS、LSO、RSC、Flow Control、EEE、Wake on LAN 到底要怎麼設
本文以實務角度逐項拆解 Windows NIC 進階設定,從 Speed & Duplex、Jumbo Packet 到 RSS、RSC、LSO、Interrupt Moderation、Flow Control、EEE 與 Wake on LAN,說明每項調整在吞吐量、延遲、CPU 與省電之間的取捨,並提供症狀...