【茶包射手日記】SSH.NET 無法連線特定 SFTP 主機
某批次作業使用 SSH.NET 元件走 SFTP 上傳檔案,實測上傳多台 SFTP 伺服器中有一台失敗,其訊息為「An existing connection was forcibly closed by the remote host / 遠端主機已強制關閉一個現存的連線」: 該主機與成功上傳主... Read More
View Article實用 C# 小技巧 - 零散連續動作彙整一次執行
Debounce (去抖動)是前端開發時很常用的技巧,經典應用是整合 AJAX 的欄位輸入自動完成。原始設計是每敲一個字元查一次,當使用者連續輸入 d a r k t 便會發出 "d"、"da"、"dar"、"dark"... Read More
View Article網頁操作及自動測試程式開發利器 - Playwright for .NET 筆記
之前在用 C# 呼叫 Chrome 批次產生網頁快照的簡便做法 讀者 Rong 留言提到 Playwright。最近計劃寫一些機器人程式將複雜網頁操作自動化,機緣成熟,這回就不用 PuppeteerSharp 了,想試試很多人推的 Playwright。 Playwright 是微軟 2019 推出... Read More
View Article【茶包射手日記】Visual Studio 偷偷啟用 EFS 加密檔案系統
今天電腦忽然彈出「備份您的檔案加密金鑰 / Back up your file ecnryption certificate and key」提示: 大驚! 啟用 EFS (Encrypting File System) 後一定要備份加密金鑰這個我知道,否則一旦系統出問題金鑰遺失,加密資料夾或檔... Read More
View ArticleWindows 小密技 - 拖拉整批 Word / PDF 檔進行批次列印
辦公室文書苦手會遇到的場景: 有數十上百個 Word / PDF 檔需要列印(不夠環保,但總有非紙本不可的場合),除了認命一個個打開按鈕(或快速鍵)列印,有沒有一氣喝成的簡單做法? 寫程式成癮的我,遇到這類需求都常是優先選擇寫幾行程式搞定,保證又快又好還能止癢。但最近在讀 DDD 的書有些新領悟:探... Read More
View ArticleCoding4Fun - 用 C# 寫 Google Analytics 即時報表
Google Analytics (GA) 是分析網站流量的好工具,對於行銷專業人士是火力強大的重兵器,能用來解讀客群背景與來源、觀察訪問行為及路徑、分析行銷活動效果,其中包含一堆行銷專業術語:轉換率、跳出率、區隔... 是搞網路行銷的重要依據。坦白說,以上這些我一個也不懂,除了心血來潮查查大家查哪... Read More
View Article將 Playwright 網頁自動操作程式部署到客戶端執行
上回提到我想用 Playwright for .NET 也可以用來開發網頁操作自動化機器人,但部署到客戶端可能會是問題。Playwright 原本被設計用於 End-To-End 測試,多在開發測試環境或 Build 主機上執行,程式庫下載安裝不用太講究 User Friendly。我想把它放到客戶... Read More
View ArticleAD 實驗:跨網域 AD 帳號登入 IIS 網站之 DC 連線需求
從 Windows 2000 開始,使用 AD 已超過 20 年,但我對其運作仍屬一知半解。 今天來探索一個我很想知道答案的冷門問題:若企業 AD Forest 包含多個子網域,Domain A 有台 IIS 伺服器 Web X,使用者使用另一個子網域 Domain B 的 AD 帳號登入,網站伺服... Read More
View Article沒熬過情人節的 IE11 - 強迫導向 Edge 問題及後續停用計劃
前情提要:企業 IE 保育指南 IE11 在去年 6/15 停止支援,除了 Windows 10 LTSC 版的 IE11 可以用到 2029,消費者版本 Windows 10 的 IE11 會逐步限縮使用。今年的 2/14 情人節是另一個坎,開啟 IE11 將自動跳轉 Edge,強迫改用 Edge... Read More
View Article使用 LDAP 協定驗證 AD 帳號密碼
除了使用 IIS 整合驗證跟呼叫 Windows API,.NET 還有一種流傳甚廣的 LDAP 帳號密碼驗證程式寫法: var username = "Child\\someone"; var password = "P@ssW0rd"; // web Do... Read More
View Article今晚,我想來點奇技淫巧 - 竄改 .NET 系統方法
【警告】本文要介紹的技巧很有趣,在某些情境可以巧妙解決刁鑽問題,令人拍案叫絕。 但對開發來說這類手法如同雙面刃,帶有嚴重副作用,常導致程式邏輯不易理解且難以維護。想像一下,接手程式的人追了三天三夜,百思不得其解,最後才發現有人他 X 的偷改某個 System.* 方法的傳回值,下一秒就算沒有抄起棒球... Read More
View ArticleVue.js 因停用 CSP unsafe-eval 崩壞之初步研究
讀者 Kg 分享,我愛用的 Vue 3.0 輕前端寫法若遭遇資安政策要求禁用 CSP script-src 'unsafe-eval' 將會失效。登楞!!! 研究了一下,Vue 超方便的 template 寫法 template: '<div>{{ message }}</div&... Read More
View Article批次更新 Azure VM 之 RDP/SSH 開放來源 IP
困擾我一陣子的小問題,今天花點時間寫幾行程式解決。 使用 Azure VM 時,我們需要使用 SSH 或 RDP 遠端登入,但實務上都建議要加限制來源 IP,以防成為攻擊或入侵的目標: 不信的話,在 Internet 放一台 Linux 22 Port 對外全開跑一晚上,隔天用 journalct... Read More
View Article敲指令管 Azure,該用 Azure CLI 還是 Azure PowerShell?
上回提過,這些年我已成為 CLI 的愛好者。所以學 Azure 我還是先從 Azure Portal GUI 操作開始,上手做到第三遍第四遍多半會忍不住改用 CLI 下指令。像是之前介紹 Azure Key Vault、建立磁碟快照與還原時,我都順帶筆記了 PowerShell 寫法。 不過眼尖的讀... Read More
View Article跨網域 AD 帳號存取之防火牆 Port 再研究
還是跨網域 AD 帳號登入 IIS 網站之 DC 連線需求議題的延伸。 上次實驗我們得到一個結論,使用跨網域帳號登入 IIS 時,不管走 NTLM 或 Kerberos,IIS 主機都不需直接連線跨網域DC。但這僅涵蓋帳號密碼驗證,若涉及更詳細的資料,例如查詢人員所屬群組,是否就必須直接連上跨網域 ... Read More
View ArticleSchtasks CLI 工具指定開始位置及引數
題目很簡單,我想使用指令工具建排程,建立時一併指定啟動引數(Argument)及開始位置: schtasks.exe 沒提供參數讓你指定引數,但透過 /TR 參數 /tr "'X:\Batch\demo\demo.bat' daily" 可做到類似效果。至於開始位置,schta... Read More
View ArticleChatGPT vs New Bing 比一比 - 西米露煮粥實例
ChatGPT 在去年底現身,轟動武林驚動萬教,一個會聽人話,上知天文下知地理的萬事通機器人就這麼誕生了,彷佛世上的所有問題,瞬間都有了答案。 不過,多用幾次你應該會發現 ChatGPT 的問題。第一是它的訓練資料只到 2021 年 9 月,跟不上時事跟最新資訊;第二是,它是個語言模型,在回答時不知... Read More
View ArticleWindows 小技巧 - 將電腦播放聲音轉為輸入音源
最近想挑戰將線上直播內容串接語音轉文字識別 API,試試即席翻譯。要實現這步,一個簡單做法是將 Windows 目前播放的影片、音樂、聲音當成麥克風或外界輸入的音源,如此便能串接聲音錄製軟體或 API 玩些花式應用。 上回玩「注意看,這個男人太狠了」配音時有學會用 Xbox Game Bar 錄桌面... Read More
View ArticleYouTube 影片即時語音轉文字 - Azure Speech-To-Text 不專業測試
之前玩過 Azure 文字轉語音(TTS),這次反過來,試試語音轉文字。 上次已有經驗,加上官方 SDK 程式庫跟文件十分完整,這回玩 Azure Speech-To-Text (STT) 服務過程異常順利,依照教學範例,我很快拼裝出一段由麥克風輸入連續識別成文字的程式。原理是呼叫 StartCon... Read More
View Article閒聊 - C#、VB.NET 之開發者人數、定位與發展策略比較
像我這種明末清初開始寫 ASP 的老人,最早用 VBScript、VB6 寫網站,當進入 .NET 時代都要面臨抉擇:.NET 有 C# 與 VB.NET 兩種語言選項,讓學哪一種? 當時我選了 C# (【閒聊】大家選擇的是C#或VB.NET呢?),寫一陣子便深深愛上它。符號比 VB 簡潔、允許自由... Read More
View Article