The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何調整 PowerShell 的 Invoke-WebRequest 改用 TLS 1.2 協定下載檔案

記得去年(2018)二月的時候,GitHub 在部落格宣布正式移除所有不安全的 TLS 加密連線協定版本,骨董級的 SSLv3 就不用說了,老早就被廢棄。當時主要是廢棄 TLSv1TLSv1.1 版本,且套用到 github.comapi.github.com 所有的 HTTPS 加密連線,記得當時還有不少災情傳出。你可能很難想像,使用 PowerShell 的 Invoke-WebRequest 下載使用 HTTPS 加密連線的檔案,預設採用的加密協議竟然是 SSLv3TLSv1 版本!本篇文章將分享如何調整這個預設值。

... 繼續閱讀 ...

如何修正 PowerShell 執行龜速的元兇 (關閉進度列提示)

PowerShell 有個對開發人員非常不友善的預設值,就是 $ProgressPreference 這個偏好設定變數 (Preference Variables),他的預設值為 Continue,也就是 Cmdlet 執行時預設會顯示 Cmdlet 的執行進度 (如果有進度列提示的話),這個進度列提示雖然很貼心地顯示在命令提示字元上,但卻會導致 Cmdlet 執行速度徹底被拖慢,慢到非常誇張,浪費了我們寶貴的生命。這篇文章就要告訴大家如何設定與調整,以便在日後可以更有效率的執行 PowerShell 命令!

... 繼續閱讀 ...

如何在 Azure Lab Services 中批次啟動與停止實驗室中所有虛擬機器 (VMs)

最近因為企業內訓的授課需求,需要在 Azure 上建立 20 台客製化環境的虛擬機器(VMs),這個時候正是使用 Azure Lab Services 的最佳時機 (以前的名稱叫做 Azure DevTest Labs 實驗室服務)。由於透過 Azure Lab Services 建立的 VMs 可以設定每天定時自動關機、自動開機,用以節省 Azure 的花費,這是一個非常貼心的設計。不過,客戶這邊的課程並不是每天上課,而是每周上課一次,這個設定就不太好用了。本篇文章我來分享剛寫好的兩份 Azure PowerShell 指令檔,方便日後批次啟動或停止這些實驗室中的虛擬機器。

... 繼續閱讀 ...

如何使用 PowerShell 建立開發測試用途的自簽憑證 (Self-Signed Certificate)

前篇文章我們學會了用老牌的 MakeCert 建立自簽憑證 (self-signed certificates),對於大部分數位憑證的需求已經綽綽有餘,確實簡單易用。但是 MakeCert 在使用上有許多限制,例如他沒辦法簡單的「複製」(Clone) 現有已經過期的憑證 (每次都要輸入完整的參數重建)、無法設定 金鑰使用方法 (keyUsage)、無法建立 Subject Alternative Name (SAN) 多域名憑證等等。這篇文章我將介紹如何利用 Windows 內建的 New-SelfSignedCertificate Cmdlet 來建立自簽憑證。

... 繼續閱讀 ...

介紹好用工具:Win 10 內建的 PackageManagement 套件管理器 (OneGet)

OneGet 是微軟新一代 Windows 套件管理器 ( 類似 Ubuntu Linux 底下的 apt-get 工具 ),這名字還蠻漂亮的,不過前陣子卻把名稱改為 PackageManagement,但無論如何,我覺得 OneGet 比較好聽,你只要知道這兩個是一樣的東西就好了。 目前這套工具已經內建於 Windows 10 作業系統中,透過 PowerShell 的 Cmdlet 就可以呼叫使用,這個鮮為人知的全新工具試圖解決未來所有軟體安裝的問題,本篇文章將詳細介紹 OneGet 的基本概念與使用方式。

... 繼續閱讀 ...

如何修復 PowerShell 無法執行任何 Cmdlet 的問題

在我目前這台 Windows 10 電腦中,有兩個 Windows PowerShell 捷徑,分別是 Windows PowerShellWindows PowerShell (x86) 這兩個,從捷徑名稱很容易看得出其差異,Windows PowerShell 這個是在 64 位元環境下使用的 PowerShell,可以載入 64 位元的各式 PSModules 或 PSSnapin 到執行環境中。而 Windows PowerShell (x86) 則是在 32 位元的 x86 架構下使用的 PowerShell,可以載入那些只支援 x86 架構的 PSModules 或 PSSnapin 到執行環境中。不過今天在我的電腦,又再次發生 Windows PowerShell (x86) 視窗開啟後,任何 Cmdlet 都無法執行的窘境,這個問題我在 4 個月前曾經遇過一次,當時花了我一個多小時才找到解法。但今天又花了我將近一個小時找出問題並修復他,真是太浪費時間了,因此我決心寫一篇文章,記錄這個詭異的靈異現象與更詭異的解決方法 (至今尚未能理解這個問題發生的原因)。

... 繼續閱讀 ...

如何利用 Powershell 同步本機磁碟與 Amazon S3 的檔案

最近在協助客戶將 Amazon S3 上面的檔案遷移到 Windows Azure Storage,若要遷移這些存在 S3 上面的檔案,勢必要先把檔案下載回來,所以我今天打算分享一個不用錢的解決方案,讓你可以快速的同步本機與雲端上的檔案,你可以把本機磁碟中的檔案同步到 Amazon S3,也可以從 Amazon S3 同步檔案到本機磁碟中,已經同步過的檔案還會自動跳過,所以除了第一次同步外,日後每次同步檔案的速度都將非常快。

... 繼續閱讀 ...

使用 Windows PowerShell 如何自動登入 Office365 進行管理

先前講過幾篇關於使用 Windows PowerShell 管理微軟線上服務與 Exchange Online 的方法,不熟悉的人可能要先看過【Office 365 管理系列:使用 PowerShell 管理微軟線上服務】以及【Office 365 管理系列:用 PowerShell 管理 Exchange Online】文章。由於我們希望能自動化一些管理工作,不過每次執行 Connect-MsolService 命令時,總是會要求手動輸入帳密登入,這樣我們怎樣才能將常見的管理工作完全自動化呢?因此,我今天要分享一個 Windows PowerShell 的小技巧,讓你可以在登入微軟線上服務或 Office 365 的時候,完全不需要輸入帳號、密碼,就能夠自動登入,並執行你想執行的管理命令。

>> 要試用 Office 365 的朋友,可點擊 Office 365 Enterprise E3 試用版 - 30 天期 進行申請喔 <<

... 繼續閱讀 ...