【发布时间】:2018-12-17 16:32:41
【问题描述】:
正在创建大量脚本以从 PC 收集数据。我需要一些帮助来使用“最简单”的方法提取相关数据。我只需要一个方法/概念/想法,我们将适用于其余部分。这里有3个例子
Ping Avg MS 响应:ping 的输出将显示如下结果:“最小值 = 3 毫秒,最大值 = 8 毫秒,平均值 = 4ms”。我需要提取不带“ms”的平均数并将输出重定向到文件(>PingAvg.txt)。最终结果是输出文件中只有一个“4”。
WMI AV 输出:运行“Get-WmiObject”PowerShell,如下所示。我只需要提取名称 (displayName) 或状态,并将输出重定向到文件 (>AvStats.txt)。最终结果是输出文件仅包含 AV 产品的名称“Windows Defender”或仅包含状态“393472”
PS C:\> Get-WmiObject -Namespace ROOT\SecurityCenter2 -Query "SELECT * FROM AntiVirusProduct" | Select-Object * -ExcludeProperty PSComputerName, Scope, Path, Options, ClassPath, Properties, SystemProperties, QualifiersSite, Container | Format-List -Property [a-z]
displayName : Windows Defender
instanceGuid : {D68DDC3A-831F-4fae-9E44-DA132C1ACF46}
pathToSignedProductExe : %ProgramFiles%\Windows Defender\MSASCui.exe
pathToSignedReportingExe : %ProgramFiles%\Windows Defender\MsMpeng.exe
productState : 393472
timestamp : Mon, 23 Oct 2017 14:12:56 GMT
- 获取修补的最后日期:powershell 命令和输出将如下所示。我想只获取数据并将输出重定向到文件(> LastPatch.txt)。输出文件应仅包含日期“9/25/2018”
PS C:> (get-hotfix | sort installedon)[-1] | Select-Object InstalledOn
已安装
2018 年 9 月 25 日上午 12:00:00
【问题讨论】:
-
这是非常基本的东西,到目前为止您尝试过什么? =>
Get-Help Select-Object参见 -ExpandProperty,或将命令括在括号中并在属性后面附加一个点。 -
正如@LotPings 已经说过的那样:尝试使用像这样的点来获取您想要的属性:
($conn.ResponseTime | Measure-Object -Average).Average其中$conn包含您的Test-Connection的结果或尝试(Get-HotFix).InstalledOn以获得修补程序日期