PowerShell -Part 7

2025/11/20(木) 21:31:44.69ID:QY1RnXH9
C#はPowerShellみたいにWMIを簡単に扱えないじゃん

WMI インスタンスの取得
https://learn.microsoft.com/ja-jp/windows/win32/wmisdk/retrieving-an-instance
2025/11/21(金) 09:24:25.92ID:+qc1E8Ol
比較
OS標準だとC#は古いやり方しかできなそう

<PowerShell>
Get-WmiObject -query "SELECT * FROM Win32_Process" | ForEach-Object {
 $name = $_.Name
 $id = $_.ProcessId
 . . .
}

<C#>
foreach (var p in new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_Process").Get())
{
 var name = p["Name"];
 var id = p["ProcessId"];
 . . .
}
2025/11/21(金) 10:03:57.43ID:3+xXClvM
>>640
最初は分けて書いてるがそれ以降のPowershellが
Windows 付かない方のPowershell 限定なのか
Windows 付く方も含めてなのかよくわからない

>>641
無印 は.Net Framework 向けでないという表現なのか
無印も.Net Frameworkだめというのかどっちなのか

.NET Framework上で動くのがWindows Powershell
3.5.1(まだある) + 2(廃止)
4.8.1 + 5.1 現行のプリインストール
.NET 上で動くのがPowershell
core2or3 + 6-7.0
5.0 + 7.1 以降
やはり改めて確認しないとわからない
なんで分かりやすい別の名前にしなかったのか
651デフォルトの名無しさん
垢版 |
2025/11/22(土) 10:00:08.95ID:X6U8TT//
WMIって非推奨なんだっけ
普通に業務で使ってるけど
2025/11/22(土) 15:21:40.53ID:LaYCYKWP
Windows クライアントの非推奨の機能
https://learn.microsoft.com/ja-jp/windows/whats-new/deprecated-features

WMIC ユーティリティは非推奨となり、今後の Windows リリースで削除される予定です。 このユーティリティは、WMI のWindows PowerShellに置き換えられます。 この非推奨は、 コマンド ライン管理ユーティリティにのみ適用されます。 WMI 自体は影響を受けません。
2025/11/22(土) 19:36:43.52ID:F8YvH3R6
wmiなくなる話はないが使い方変わってる
Powershell 6以降WMI v1コマンドレット無い
今のところWindows Powershell 無くす話はないが
書き直すならPowershell でCIM (WMI v2)コマンドレットにしておいた方が無難?
https://learn.microsoft.com/ja-jp/powershell/scripting/whats-new/differences-from-windows-powershell?view=powershell-7.5#wmi-v1-cmdlets
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況