老實說,我在寫 PowerShell 的時候,偶爾會遇到一些非常葩的設計,很多時候不深入探究,根本就無法理解。以我今天要寫的這篇文章為例,當你執行一個 Cmdlet 並回傳資料時,當你可能拿到 0 筆、1 筆、超過 1 筆的情況時,正常人應該會覺得我們應該會得到一個「陣列」,但是你知道嗎,在 PowerShell 竟然可能會用到三種不同的處理方式,超怪的。因為這個問題實在遇到太多次了,這次我終於有空寫成文章,希望可以給遇到相同問題的人一些指引。
... 繼續閱讀 ...
昨天我建立了一個有 18 個 Repos 的專案,在批次設定的過程,我肯定要用 Azure Pipelines 的 YAML syntax 來撰寫,否則用傳統編輯器設定,肯定按到手酸。不過,在撰寫的過程中,有一次不小心寫壞了,導致一次 18 個 CI 同時啟動,但我只有四條 Pipelines 可用,一想到要等全部跑完才能測試下一輪,就覺得我應該要寫支小程式批次取消。因此這篇文章就是為此而生,讓你快速的取消所有尚未啟動的 Pipelines 作業。
... 繼續閱讀 ...
有時候我們想要在 Azure 很快速的建立一台 VM (虛擬機器) 來用,除了透過 Azure Portal 之外,我想最快速的方式,不外乎是透過 Azure CLI 命令列工具了,只要把之前筆記的 CLI 命令找出來,複製貼上就馬上有一台 VM 可以用。這篇文章我打算分享幾個我之前整理的 Azure CLI 筆記,幫助我日後可以更快速的找到命令。
... 繼續閱讀 ...
現在資安意識抬頭,許多東西都開始採用「零信任」的基礎來進行規劃。今天這篇文章,主要針對在 CI/CD 的環境下,如何透過 Personal Access Token (PAT
) 來存取 Git 儲存庫。
... 繼續閱讀 ...
有時候我們想要在 Azure DevOps Services 上面刪除一些早期的 Pipeline (Build),但是刪除時卻會遇到 One or more builds associated with the requested pipeline(s) are retained by a release. The pipeline(s) and builds will not be deleted. 的問題,導致我們怎樣都無法刪除。這篇文章我打算來說明一下幾個重要觀念,以及如何才能成功刪除這些用不到的 Pipelines。
... 繼續閱讀 ...
我們過往設定 CI/CD 的時候,為了要避免 Pull request 的時候也不小心觸發 Release 部署網站,我們都會建立另外一組 Build pipeline 專門給 Pull request 時使用 ( 特定 Branch 的 Build Validation )。不過,這個額外的 Build pipeline 跟原本分支的 Build pipeline 完全一樣,額外維護這份 Pipelines 顯得非常多餘。我今天終於研究出正確的設定方式,所以這篇文章將來說明正確的設定方式。
... 繼續閱讀 ...
因為我過往建立了數十個不知道何時建立的 PAT
(Personal Access Token) 金鑰,為了避免有 PAT 不小心外洩,索性就把我個人在 Azure DevOps Services 上的 PAT
全部清除,然後所有自動化作業都壞了,還好很容易修理。除此之外,我也修改了個人密碼,結果導致本機要透過 git clone
下載 Azure Repos 上面的原始碼也都失效。但重點是,雖然認證失敗,卻不會跳出讓我重新登入,原因是「使用者認證」被快取了,這篇文章我要來說說清除「快取」的方法!
... 繼續閱讀 ...
這十幾年來,在 Windows 使用 PowerShell 呼叫一些命令列工具,一直都存在一個惱人的問題,那就是傳入 *.exe
的參數會自動將雙引號("
)過濾掉,導致程式無法正確執行。這個問題終於在 PowerShell v7.2.0
得到了解決,這篇文章我就來說說這個問題的來龍去脈。
... 繼續閱讀 ...
遷移 SQL Server 資料庫是一件感覺好像很簡單,但做起來可能會很麻煩的工作。其實透過 SSMS 就可以做到很多種不同的資料庫遷移方法,但我想找一個能夠更方便的方式,透過命令列的方式自動化整個遷移過程,最近我找到了這個 mssql-scripter 工具,完全可以符合我的需求。這篇文章我就來說說我的應用情境,以及 mssql-scripter 工具的使用方式。
... 繼續閱讀 ...