Linux 和 PowerShell Core 上的 WMI

背景

上周我正在研究我的 Linux WSL,我正在使用 PowerShell Core。试图了解如何使用 WMI 监视远程计算机,就像我们在 Windows PowerShell 中所做的那样。不幸的是,PowerShell Core 没有 Get-WmiObject cmdlet。

一个快速的谷歌搜索让我找到了 wmic 实用程序,它可以下载并安装在任何 Linux 机器上。您可以查询远程 Windows 机器 WMI 并使用 PowerShell 方式输出。

您可以使用Simon Smith的指南安装 wmic 。

wmic 在行动

您可以简单地运行 wmic 命令来查看基本命令语法。

下面的命令获取 Win32_ComputerSystem 类。

PowerShell
1
wmic --user=administrator --password=ComplexPassword //DESKTOP-4OFD7A0 "SELECT * FROM Win32_ComputerSystem"

在这里,您可以使用 bash 解析字符串输出或使用简单的方法。PowerShell方式!

PowerShell 为字符串操作带来了许多底层工具。您可以将 wmic 命令输出存储到变量并使用 .Split() 方法拆分字符串。例如:

您可以使用索引访问所有值并选择要选择的任何值来创建所需的输出。

您还可以使用相同的方法编写脚本来获取远程 Windows 机器的磁盘使用情况:

PowerShell
1
2
3
4
5
6
7
8
9
#! /bin/pwsh
$ComputerName = 'DESKTOP-4OFD7A0'
    $disks = wmic --user=administrator --password=ComplexPassword //$ComputerName "SELECT * FROM Win32_LogicalDisk" | Select-Object -Skip 2
    foreach($disk in $disks){
        $driveLetter = $disk.Split('|')[3]
        $driveTotalSpace =  [math]::round(($disk.Split('|')[30]/1GB),2)
        $driveFreeSpace =  [math]::round(($disk.Split('|')[15]/1GB),2)
        Write-Host "Disk Usage for " $driveLetter " " $driveFreeSpace " free out of " $driveTotalSpace
    }

当您需要从 linux 机器访问远程机器的 WMI 实例时,这种方法会非常方便。如果您熟悉 PowerShell,您可以轻松地处理输出并创建可重用的代码。

希望这是有用的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值