Category: powershell

寫了一陣子 PowerShell,發覺自己跟它的陣列很不熟,老想著用 .NET LINQ 思維解題,有點吃力不討好。其實,PowerShell 陣列語法比 C# 靈活(例如: 索引可以是負數、用 .. 表示區間,+ 表示相對位置,註:C# 8.0 有加入一些)、ForEach()、Where() 也...

寫 PowerShell Script 時,針對較複雜或步驟較多的作業,我會在執行過程加上 Write-Host 或 Write-Output 顯示一些資訊,一方面是回報進度可避免操作者茫然焦慮,另一方面,若發生錯誤,這些線索是判斷問題點的重要依據。 PowerShell 新手的疑問是: Write...

計劃把原本的手工部署與設定操作逐步轉成 PowerShell Script。這樣做有幾個好處: 作業標準化,避免人為失誤 寫成腳本,不管誰來操作結果都一致,不會無人交接手藝失傳,也排除腦殘眼拙手滑出錯的風險, 大量部署或需重複執行時可節省可觀時間 例如要部署上百台機器的場合。 可設定排程自動化部署...

PowerShell 可以無縫整合 .NET 程式,威力無窮。但這也導致很多時候我搞不清楚這裡可以直接用 C# 寫法,還是該照 PowerShell 的規矩來? 新手上路階段,我最常踩到的坑就是多參數 PowerShell 函式的寫法。例如下面這段程式,大家猜猜輸出的結果是什麼? Hell? fun...

最近常在寫自動化及半自動化工作腳本,愈發覺得 PowerShell 好用,尤其能無縫整合 .NET 程式庫這點讓它威力無極限。但也開始學到一些實用但我之前沒學過的用法,會在 PowerShell FAQ 系列陸續整理分享。 【問題】PowerShell Function 如何接收外部函式作為輸入參數...

我有個需要中介伺服器轉接 WebAPI 請求的情境,ApWeb 主機與 ApiWeb 主機間網路不互通,故需要在中間網段架設 Proxy 串接,之前玩過 IIS ARR ,打算找台 IIS 設成 Reverse Proxy 負責轉送 ApWeb 主機發出的 WebAPI 請求。ARR 之前已設過幾次...

自從體驗過用 VSCode 開發 PowerShell 的便利性,VSCode 便成為我的奧林匹克指定 PowerShell 開發工具。但有個小問題,在 .ps1 寫中文會變亂碼。 從微軟官方文件 Understanding file encoding in VSCode and PowerShe...

先前談過防禦式 SQL 更新 - 用更嚴謹的態度執行正式資料庫更新作業,滿足保留資料更新前後對照、過程與預期不同自動煞車、方便檢閱複核... 等要求。純 SQL 語法簡單明瞭,但施行有些前題:操作環境必須有安裝 GUI 或 Command Line 的 SQL Client 工具、操作人員必須具備 ...

征服使用 WebClient 呼叫 WCF後的下個目標,自然是學會用 PowerShell 呼叫 WCF,繼續精進野外求生技能。 歷經這段時間的 PowerShell 實戰練習,我得到重要心得:.NET 開發者想用 PowerShell 處理未知情境有捷徑 - 先寫出 C# 程式達成目標再將程式邏輯...

分享私房小工具程式。 正式上線流程常需交付程式碼清單及異動程式碼,過去 TFS TFVC 時代我寫過類似的工具,改用 Git 之後,先前已分享過匯出 Git Commit 檔案並維持資料夾結構的寫法,當時是使用 PowerShell 加 xcopy。這回想更上層樓,兩個願望一次滿足 - 依資料夾結構...

使用 PowerShell 處理認證身分時,常會被要求以 System.Security.SecureString 型別傳遞密碼參數。Windows 作業系統針對 SecureString 有額外的安全防護,包含內容加密儲存、降低記憶體搬移或轉存次數、可透過 Dispose() 主動釋放記憶體......

又到了 PowerShell 練習時間。今天的題目是 - 如何在 PowerShell 引用 C# DLL? 借用上一篇介紹的 DotNetZip 當例子,我打算用 PowerShell 動態建立加密 ZIP 檔。 準備 PowerShell 腳本 Test.ps1 如下,並將 DotNetZip....

遇到一個需求,某個上傳 CSV 的 WebAPI 想改成讓使用者選擇檔案上傳,由於是暫時性 Workaround,不想為此多寫上傳檔案網頁。 呼叫 WebAPI 上傳檔案對程式人員是小事一椿,知道檔名路俓下個指令用 curl 或 PowerShell 就搞定,但對一般電腦使用者來說多少有點難度。 雖...

工作上遇到的需求。從他處取得程式碼在本機用 Git 弄了簡單版控(不需要伺服器就可以切分支比對修改歷程,寫錯能退回原版,超讚的),改了幾支程式想將修改結果打包合併回出處。 檔案分散在多層目錄,修改已放進同一 Commit。我想依其資料夾結構整理檔案,壓縮打包後在原專案解開後覆寫,之後簽入原專案的 T...