| | | 2 | | 14,891 |
計劃把原本的手工部署與設定操作逐步轉成 PowerShell Script。這樣做有幾個好處: 作業標準化,避免人為失誤 寫成腳本,不管誰來操作結果都一致,不會無人交接手藝失傳,也排除腦殘眼拙手滑出錯的風險, 大量部署或需重複執行時可節省可觀時間 例如要部署上百台機器的場合。 可設定排程自動化部署...
| | | 1 | | 3,255 |
PowerShell 可以無縫整合 .NET 程式,威力無窮。但這也導致很多時候我搞不清楚這裡可以直接用 C# 寫法,還是該照 PowerShell 的規矩來? 新手上路階段,我最常踩到的坑就是多參數 PowerShell 函式的寫法。例如下面這段程式,大家猜猜輸出的結果是什麼? Hell? fun...
| | | 0 | | 2,938 |
最近常在寫自動化及半自動化工作腳本,愈發覺得 PowerShell 好用,尤其能無縫整合 .NET 程式庫這點讓它威力無極限。但也開始學到一些實用但我之前沒學過的用法,會在 PowerShell FAQ 系列陸續整理分享。 【問題】PowerShell Function 如何接收外部函式作為輸入參數...
| | | 0 | | 7,316 |
我有個需要中介伺服器轉接 WebAPI 請求的情境,ApWeb 主機與 ApiWeb 主機間網路不互通,故需要在中間網段架設 Proxy 串接,之前玩過 IIS ARR ,打算找台 IIS 設成 Reverse Proxy 負責轉送 ApWeb 主機發出的 WebAPI 請求。ARR 之前已設過幾次...
| | | 4 | | 10,846 |
自從體驗過用 VSCode 開發 PowerShell 的便利性,VSCode 便成為我的奧林匹克指定 PowerShell 開發工具。但有個小問題,在 .ps1 寫中文會變亂碼。 從微軟官方文件 Understanding file encoding in VSCode and PowerShe...
| | | 0 | | 2,663 |
先前談過防禦式 SQL 更新 - 用更嚴謹的態度執行正式資料庫更新作業,滿足保留資料更新前後對照、過程與預期不同自動煞車、方便檢閱複核... 等要求。純 SQL 語法簡單明瞭,但施行有些前題:操作環境必須有安裝 GUI 或 Command Line 的 SQL Client 工具、操作人員必須具備 ...
| | | 4 | | 1,907 |
征服使用 WebClient 呼叫 WCF後的下個目標,自然是學會用 PowerShell 呼叫 WCF,繼續精進野外求生技能。 歷經這段時間的 PowerShell 實戰練習,我得到重要心得:.NET 開發者想用 PowerShell 處理未知情境有捷徑 - 先寫出 C# 程式達成目標再將程式邏輯...
| | | 1 | | 6,754 |
同事報案,某台未加入網域的主機原本使用 LDAP 執行帳號密碼驗證,最近被要求改用 LDAPS,ASP.NET 程式遇上奇怪的 Unknown Error (0x80005000) 錯誤。 背景知識:如同 HTTP 被要求改用 HTTPS、FTP 要改為 SFTP,伴隨著資安意識抬頭,非加密傳輸的 ...
| | | 0 | | 8,162 |
分享私房小工具程式。 正式上線流程常需交付程式碼清單及異動程式碼,過去 TFS TFVC 時代我寫過類似的工具,改用 Git 之後,先前已分享過匯出 Git Commit 檔案並維持資料夾結構的寫法,當時是使用 PowerShell 加 xcopy。這回想更上層樓,兩個願望一次滿足 - 依資料夾結構...
| | | 0 | | 12,289 |
使用 PowerShell 處理認證身分時,常會被要求以 System.Security.SecureString 型別傳遞密碼參數。Windows 作業系統針對 SecureString 有額外的安全防護,包含內容加密儲存、降低記憶體搬移或轉存次數、可透過 Dispose() 主動釋放記憶體......
| | | 0 | | 3,527 |
又到了 PowerShell 練習時間。今天的題目是 - 如何在 PowerShell 引用 C# DLL? 借用上一篇介紹的 DotNetZip 當例子,我打算用 PowerShell 動態建立加密 ZIP 檔。 準備 PowerShell 腳本 Test.ps1 如下,並將 DotNetZip....
| | | 0 | | 1,671 |
要查詢 .NET 組件的平台目標 (Platform Target,AnyCPU、x32 或 x64),我過去都是用 .NET Framework SDK 的 CoreFlags.exe。但實務上有些不方便,第一是 .NET Framework SDK 安裝目錄通常不包含在 PATH 環境變數,直接...
| | | 5 | | 4,716 |
遇到一個需求,某個上傳 CSV 的 WebAPI 想改成讓使用者選擇檔案上傳,由於是暫時性 Workaround,不想為此多寫上傳檔案網頁。 呼叫 WebAPI 上傳檔案對程式人員是小事一椿,知道檔名路俓下個指令用 curl 或 PowerShell 就搞定,但對一般電腦使用者來說多少有點難度。 雖...
| | | 2 | | 5,243 |
工作上遇到的需求。從他處取得程式碼在本機用 Git 弄了簡單版控(不需要伺服器就可以切分支比對修改歷程,寫錯能退回原版,超讚的),改了幾支程式想將修改結果打包合併回出處。 檔案分散在多層目錄,修改已放進同一 Commit。我想依其資料夾結構整理檔案,壓縮打包後在原專案解開後覆寫,之後簽入原專案的 T...
| | | 4 | | 9,902 |
今天被問了一個問題:「如何快速查詢 IIS 特定站台的 Log 路徑?」 還不簡單,用 IIS 管理員介面一查就有。 等等,LogFiles 目錄下一堆 W3SVC1、W3SVC2、W3SVC3... 誰是誰? 之前的笨解法是看目錄或檔案時間跟檔案大小,再依各站台流量去猜,再不然就是打開 .lo...
| | | 4 | | 5,114 |
Web 主機上 Log 成長頗快,我想寫個小程序將時間較久的 Log 以月為單位壓縮儲存節省空間。 實測壓縮後體積只剩 3%,足足減少 30 倍有餘,估計可省下大量空間。 類似的工具之前寫過 C# 版,這回試試用 PowerShell 解決。 Log 檔一天一個,壓縮排程設在每月第一天。執行時前一個...