在 CLI 簡易測量網頁回應時間
工作上有個小需求,想找到簡便方法顯示網頁回應速度,方便快速擷圖對照改善前後的時間差異。 相關軟體很多,但我不想為此安裝程式,以既有工具優先;Chrome/Edge F12 開發者工具的網路功能也有每個 HTTP Request 的時間報表,是個不錯的選項: 不過,我想找到更簡單的 CLI 做法,貼... Read More
View Article【茶包射手雜記】Azure DevOps Server ElasticSearch 記憶體上限問題
幫忙看了一起 Azure DevOps Server 主機剩餘記憶體不足發出告警的案例。(註:Azure DevOps Server 就是 TFS Server 啦,TFS 從 2019 版改名叫 Azure DevOps Server,雖有 Azure 之名,但可安裝在地端) 重新認識幾件事: ... Read More
View ArticleAD 跨界整合 - AD FS 服務安裝
最近頻頻聽到新名詞 - ADFS,腦中卻沒什麼概念,甚為惶恐,趕緊研究做點 Lab 壓壓驚。 AD FS 是 Active Directory Federation Service 的縮寫,用白話解釋,傳統印象中,原本只能企業內部限定 Windows 使用的 AD,透過 AD FS 可拓展到公司外... Read More
View ArticleAD 跨界整合 - 使用 AD 登入第三方網站
上篇文章 辛苦安裝完 AD FS,接下來試試 AD FS 跨界整合的威力。 AD FS 支援多種登入協定,包含 WS-FED、SAML-P、OAuth 等,但 OAtuh 已成當今業界標準,聚焦 OAuth 就好。AD FS 認證身分取得授權的 OAuth 流程有以下幾種: Implicit Gr... Read More
View ArticleAD 跨界應用 - 地端雲端 AD 整合 (Azure AD Connect Sync)
時至今日,企業必須使用雲端服務,或將應用程式部署到雲端供人員在外使用的情境日益普遍。服務存取需被控管,必然有帳號密碼及權限管理需求,整合企業既有 AD 帳號群組會比另建一套帳號系統省事有效率,但 AD 屬資安攻防的一級戰區,不宜貿然開發對外,設計應用時必須格外謹慎。 要讓 AD 同時支援企業內部及雲... Read More
View Article【茶包射手日記】NuGet 完全無法安裝套件
想在伺服器跑一下 Azure AD 登入程式範例,將本機的專案資料夾複製到 Windows Server,用 Chocolatey 安裝 dotnet-sdk、vscode(註:不少朋友問「何不 winget?」,winget 要從微軟商店安裝對 Server 不友善),Server 搖身變成 .N... Read More
View Article【茶包射手日記】無法使用 PowerShell 修改 ASP.NET 3.5 匿名存取
近年來設定 IIS 站台我都改用 PowerShell 指令操作(參考:再談 IIS 與 ASP.NET 網站自動安裝設定 - 使用 PowerShell),用指令檔取代 GUI 操作,能減少人為操作失誤風險,並邁向自動化部署的理想。 最近使用 Set-WebConfigurationPropert... Read More
View Article使用 gMSA 讓 Windows 排程與服務帳號更安全
前幾天研究 AD FS 有意外收獲,學到好東西 - gMSA,Group Managed Service Account。 Windows 服務或排程必須設定執行身分,若不需用 AD 認證存取遠端資源,可考慮使用 Local System、Local Service與Network Service ... Read More
View ArticlePowerShell 小工具 - 盤點 IIS 站台設定
遇到接手現有網站主機、網站搬家規劃等需求,我想要有個工具可以盤點 IIS 上設了哪些網站應用程式、對映哪些 AppPool、Runtime 是 .NET 2.0 還是 4.0、哪些目錄特別設了匿名或 Winodws 整合驗證、鎖哪些來源 IP... 等種種細節。 自己許願自己實現,決定寫個 Powe... Read More
View ArticleCoding4Fun - 我的 GPG 金鑰紙本備份解決方案
實體金鑰方便又安全,但前題是私鑰檔案必須妥善保管,一旦被偷走前功盡棄,白忙一場。存到離線媒體會比放在電腦硬碟安全,即便被人遠端控制或偷用電腦,也沒東西可偷。故在備份好金鑰並存入實體金鑰後,應該馬上將其從電腦中刪除,也要避免上傳到雲端,讓檔案從物理上與網路隔離以策安全。保管好除了避免被偷,還要確保資料... Read More
View Article七月鬼話:檔案總管有但 PowerShell 看不到的檔案
前幾天分享過用 PowerShell 盤點 IIS 站台設定的小技巧,同事回報說使用時遇到鬼問題:PowerShell 找不到 C:\Windows\System32\inetsrv\Config\applicationHost.config 但檔案總管明明有看到檔案也可開啟: 乍聽以為是權限問題... Read More
View Article古蹟維護雜記 - VS2022 無法建立 ASP.NET (.NET Framework) 專案
裝了最新版 VS2022,想建個 ASP.NET MVC (.NET Framework 4.X) 專案不得其門而入,輸入 ASP.NET 關鍵字,只見 ASP.NET Core 專案範本,沒看到 .NET Framework 版本:(VS2022 表示:那是啥?) 2023 年還在維護開發 .N... Read More
View Article初試 Azure DevOps Server Pipeline 地端編譯專案
雲端是當今顯學,基於保密及資安考量,許多企業還是會選擇在地端甚至網路隔離環境作業。微軟的版控解決方案 - TFS Server 的繼任者是 Azure DevOps Server,雖有 Azure 之名,但可在安裝在企業內部隔離網路環境,稱職扮演地端版控伺服器角色。 最近嘗試在 Azure DevO... Read More
View Article批次檔執行單行 PowerShell 指令之內嵌雙引號字元處理
想將 "TIME:$(Get-Date -Format HH:mm)" | Add-Content "$(Get-Date -Format yyyyMMdd).txt" 當成 PowerShell.exe -Command 參數放在 .bat 檔執行,卡了老半... Read More
View ArticleHTTP Host Header 資安弱點
同事分享資安知識一則:在網頁引用 Host Header 可能形成資安弱點,給予攻擊者操作重新導向或引用惡意程式的機會。特筆記備忘。 使用 IIS + ASP.NET 示範如下: <%@Page Language="C#"%> <html> <... Read More
View ArticleIIS ARR (Application Request Routing) 安裝 (2023 版)
這幾年蠻常用 IIS ARR 架 Reverse Proxy 或做網址重新導向(應用範例:在 ASP.NET MVC 站台使用 IIS ARR、HTTP Host Header 資安弱點防護),由於常需在隔離環境離線安裝,我找到最簡便的做法是下載四合一組合包 Application Request ... Read More
View Article.NET 小技巧 - 讀取其他程式開啟中的檔案
寫了個小工具偷看網站即時 Log,配合 NLog 使用時正常,但遇到 log4net Log 會出現「The process cannot access the file 'xxxx.log' because it is being used by another process.」錯誤。(註:手邊... Read More
View Article古蹟維護雜記 - ODP.NET 元件註冊 SOP
Oracle Client 版本問題像鬼魂般揮之不去,x86/x64、11.2/12.1...,歷經多年糾纏,現在遇到 .NET 要連 Oracle,我一律力推改用 Managed ODP.NET。 但老系統多如牛毛,老鳥都知道「If it works, don't touch it!」是有益身心健... Read More
View Article【茶包射手日記】SSH 無法連線:Incorrect Signature
嘗試 SSH 連線某台 Unix 主機時出現 Incorrect Signature 錯誤: 該主機歷史悠久,使用者眾,理論上不該存在無法 SSH 連線問題,所以我優先懷疑是自己客戶端有問題。這種狀況的 SOP 是找對照組比較,我的 SSH 客戶端依據玩 USB 實體金鑰的心得,是用 Win32-... Read More
View ArticleAI 小書僮 - Edge 瀏覽器之網頁 / PDF 自動摘要
這波 AI 熱潮,大家最先想到的都是 ChatGPT。微軟身為 OpenAI 主要投資者,有近水樓台之便,也在加速將 AI 整合到自家產品,除了讓人期待但仍在封測的 Office 365 Copilot (正式名稱為 Microsoft 356 Copilot,但我想 Office Copilot ... Read More
View Article