All posts tagged 'powershell' | The Will Will Web

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 建立虛擬機器都會執行的初始設定腳本

由於我每次在 Azure 上建立 Windows Server 2016 Datacenter 測試用 VM (虛擬機器) 的時候,都需要在開機後執行特定 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 天期 進行申請喔 <<

... 繼續閱讀 ...

使用 PowerShell 在 IIS7 / IIS8 所有站台新增 robots.txt 檔案

還記得我去年寫過的【個資保護、Google Hacking 與 robots.txt 的關係與設定技巧】文章嗎?在公司內部的測試環境設定 robots.txt 非常重要,因為你必須阻止 Google 與各家搜尋引擎來到你的測試網站大肆搜索,否則那些開發到一半的網站、那些可能含有不完整的資訊,全部都會揭露給無心人與有心人知道。不過,無論我提過幾次這點重要性,總是有人會「忘記」在部署網站時順手加上這個檔案,三不五時的亡羊補牢其實也蠻讓人頭疼的,今天我寫了一支 PowerShell 指令檔,就是要來徹底解決這個問題。

... 繼續閱讀 ...

Office 365 管理系列:關閉使用者密碼複雜度的方法

最近輔導一家大型機構導入 Office 365 雲端辦公平台,我幫他們批次建立了一千多個 Exchange Online 帳號,不過客戶提供的帳號清單中包含了每個人都不一樣的預設密碼。不過我在測試自己寫的自動化建立帳號程式時(PowerShell),有發現到 Office 365 拒絕了我的密碼變更需求,原因是密碼沒有符合複雜度要求,導致雖然可以建立帳號,但卻無法重設為客戶想要的密碼,本篇文章主要說明如何暫時關閉密碼複雜度要求,並且在建立預設密碼後再啟用原本的使用者密碼複雜度要求,並要求使用者首次登入必須修改密碼。

>>> 試用 Office 365 的申請連結 <<<

... 繼續閱讀 ...

Office 365 管理系列:透過 PowerShell 指派授權給使用者

當試用 Office 365 之後,如果組織確定要購買 Office 365 的線上服務,在首次付費購買授權後,因為原本試用時期的那些使用者預設都是指派【免費試用授權】,因此在購買正式授權之後,還必須執行一個步驟,那就是將目前所有的使用者切換到另一個已付費的授權上,如果使用者人數一多,操作起來就不太方便,因此我今天分享一個 PowerShell 命令,讓你用一個指令就可以將 Office 365 帳戶中所有使用者都自動切換至另一個付費的授權上。

>>> 試用 Office 365 的申請連結 <<<

... 繼續閱讀 ...

Office 365 管理系列:用 PowerShell 管理 Exchange Online

接續上次【Office 365 管理系列:使用 PowerShell 管理微軟線上服務】文章,這次我繼續寫如何透過 PowerShell 管理 Exchange Online 服務,而在本篇文章開始之前,各位千萬務必先看過前次文章,否則環境將無法成功建立。在未來,我也會分享許多 Office 365 與 Exchange Online 的 PowerShell 管理技巧,到時都需要參考本篇文章的設定。

>>> 試用 Office 365 的申請連結 <<<

... 繼續閱讀 ...