Day-4 課程 使用 PowerShell 進行自動化管理(一)

恆逸課程:Microsoft - AZ040 使用Windows PowerShell進行自動化管理

前言:

太慘了,上課時間還有老婆幫襯著帶小孩,筆記可以兩三天一節課的進度來完成,課程一結束,恢復帶小孩時光後,拖了近兩周的時間才有辦法開始進行彙整及書寫!!

還好當時把大部分重點都先用筆記寫下來,現在就是恢復記憶,當然腦袋重新整理過的東西,一定還是跟講師講的有落差

可惜這堂課沒辦法重複聆聽。

順便一提,WMI是我從沒接觸過的一個專業領域,因此我花了很多時間在反覆學習及吸收,但課程已經結束,有太多的知識都是自己自學然後總結出來的。

因此,可能存在認知上的錯誤。

上一篇:Day-3 課程 使用 PowerShell 進行自動化管理(二)

下一篇:Day-4 課程 使用 PowerShell 進行自動化管理(二)


第四天下午上半場主要講的內容如下

  1. Making changes by using CIM and WMI

1. Making changes by using CIM and WMI

A. 查詢IP位址

尋找列出電腦正在使用的 IP 位址的儲存庫

Get-WmiObject -Namespace root\cimv2 -List | Where Name -like '*configuration*' | Sort Name
raw-image

從中可以找到Win32_NetworkAdapterConfiguration類別

這邊順便解釋一下參數的用途

這邊是使用 Get-WmiObject cmdlet 來檢索 WMI (Windows Management Instrumentation) 中指定命名空間 root\cimv2 下的所有類別。
接著,它使用 Where-Object cmdlet 篩選這些類別,只保留名稱中包含 'configuration' 的類別。
最後,使用 Sort-Object cmdlet 將結果按照名稱進行排序。

總而言之,這個命令的目的是查找 root\cimv2 命名空間中名稱中包含 'configuration' 的 WMI 類別,然後按照名稱進行排序。

Tips:
Cmdlet 是 PowerShell 中的一個術語,它是 "命令"(Command)和 "小工具"(Utility)的組合,是 PowerShell 的基本操作單元。Cmdlet 是一種輕量級的、可重複使用的命令,通常設計用來執行單一的操作或任務。

查找系統中 DHCP Network Adapter,並顯示它們的 IP 地址

Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where DHCPEnabled -eq $False | Select IPAddress
raw-image

Get-WmiObject -Class Win32_NetworkAdapterConfiguration
這部分檢索 Win32_NetworkAdapterConfiguration 類別的信息,這個 WMI 類別包含有關Network Adapter配置的屬性,包括 IP Address、Subnet mask、Default Gateway ... 等。

Where DHCPEnabled -eq $False
這部分使用 Where-Object cmdlet 篩選出 DHCP 未啟用的Network Adapter。
-eq 是等於的比較運算子,$False 表示 DHCP 未啟用。

Select IPAddress
這部分使用 Select-Object cmdlet 選擇並顯示符合條件的Network Adapter 的 IP Address。


B. 查詢作業系統版本信息

尋找列出作業系統資訊的儲存庫

​Get-WmiObject -Namespace root\cimv2 -List | Where Name -like '*operating*' | Sort Name
raw-image

在 WMI 命名空間 root\cimv2 中檢索和列舉所有名稱包含 'operating' 的 WMI 類別,然後按照名稱進行排序。

Get-WmiObject -Namespace root\cimv2 -List
這部分檢索 root\cimv2 命名空間中的所有 WMI 類別列表。

Where Name -like '*operating*'
這部分使用 Where-Object cmdlet 篩選出類別名稱包含 'operating' 的 WMI 類別。
-like 是模糊匹配運算子,*operating* 表示包含 "operating" 字串的名稱。

Sort Name
這部分使用 Sort-Object cmdlet 將篩選出的 WMI 類別按照名稱進行排序。

總而言之,這個命令可以用於在指定的 WMI 命名空間中查找名稱包含 'operating' 的 WMI 類別,並按照名稱進行排序。

這樣的操作可用於了解和檢索與 "operating" 相關的 WMI 類別,以進一步進行系統管理或監視。

從中可以找到Win32_OperatingSystem類別。

顯示Win32_OperatingSystem類別的屬性列表

GetWmiObject -Class Win32_OperatingSystem | Get-Member

檢索 Win32_OperatingSystem 類別的所有成員(Members)信息,包括屬性(Properties)、方法(Methods)、事件(Events)等

Get-WmiObject -Class Win32_OperatingSystem
這部分檢索 Win32_OperatingSystem 類別的信息,這個 WMI 類別包含有關操作系統的各種屬性和方法。

| Get-Member
這部分使用管道 (|) 將 Win32_OperatingSystem 類別的輸出傳遞給 Get-Member cmdlet,以顯示該類別的所有成員信息。

這個命令是用於查看和了解 Win32_OperatingSystem 類別的結構,看它具有哪些屬性和方法。這對於系統管理、腳本編寫或監視操作系統屬性非常有用,因為它提供了可以使用的操作和信息。

raw-image

這邊先把後面會用到到的屬性記錄下來

Version

ServicePackMajorVersion

BuildNumber


檢索 Win32_OperatingSystem 類別的信息,然後使用 Select-Object cmdlet 選擇並顯示其中的特定屬性:
VersionServicePackMajorVersionBuildNumber

Get-WmiObject -Class Win32_OperatingSystem | Select Version,ServicePackMajorVersion,BuildNumber
raw-image

Get-WmiObject -Class Win32_OperatingSystem
這部分檢索 Win32_OperatingSystem 類別的信息,這個 WMI 類別包含有關操作系統的各種屬性和方法。

Select Version,ServicePackMajorVersion,BuildNumber
這部分使用Select-Object cmdlet 選擇並顯示 Win32_OperatingSystem 類別中的特定屬性,具體是操作系統版本 (Version)、服務包主要版本號(ServicePackMajorVersion) 和建置號 (BuildNumber)。

這個命令的目的是快速獲取和顯示操作系統的一些基本資訊。

這些屬性提供了操作系統版本、服務包信息和建置號等有關操作系統狀態的基本資訊。


本次的收穫:

這邊講一下,這門課大多時間都在講語法的運用,但都要講完是真的要講很久很久很久才講得完,這些細節我會另外單獨拉一份筆記來記錄,該怎麼說呢 ...

第四堂課給我的收穫就是知道WMI的發展史、這些指令語法的用途,就這樣而已

我比較希望能得到的資訊是,為什麼要用WMI?、WMI的優勢及劣勢在哪裡?業界上有什麼相關的應用。

沒有、完全沒有。


尤其是最後一點,我上課發問關於「業界上會如何運用或有什麼相關運用的分享」

講師只回「看你需求是什麼」以及「就是這樣用」,沒有情境分享。

我一個業界人士特地花錢來聽課,就是想聽聽其他我不知道應用分享,不是來寫題目的...

11會員
30內容數
主要是將「MIS工程師」必須要懂得知識用淺顯易懂的方式分享出來,也一併幫自己完善筆記。
留言0
查看全部
發表第一個留言支持創作者!