powershell - 按组织单位获取机器正常运行时间的 Powershell 脚本
问题描述
我找到了一些脚本,但没有任何效果,并试图将它们组合起来,失败了。我找不到任何可以解释如何让我找到的东西做我想要的东西的东西,所以这是我的尝试,但它不起作用所以我想知道是否有人可以帮助我让它工作?我删除了识别域信息
Get-ADComputer -Filter { Name -like "*" } -SearchBase "OU=OU,DC=DC,DC=DC" |
Select-Object -ExpandProperty Name |
Sort-Object |
Get-WmiObject -Class Win32_OperatingSystem
$wmi.ConvertToDateTime($wmi.LocalDateTime) - $wmi.ConvertToDateTime($wmi.LastBootUpTime)
解决方案
所以你有几个步骤:
获取机器列表
$list = Get-ADComputer -Filter 'Name -like "*"' -SearchBase 'OU=Computers,DC=example,DC=com'
迭代列表
$results = foreach ($pc in $list.Name) {
抓住
WMI
信息$wmi = Get-WmiObject -ComputerName $pc -Class Win32_OperatingSystem
计算正常运行时间
$uptime = $wmi.ConvertToDateTime($wmi.LocalDateTime) - $wmi.ConvertToDateTime($wmi.LastBootUpTime)
在您可以使用的集合中输出信息
[pscustomobject]@{ ComputerName = $pc Uptime = $uptime.Hours } }
减去两个datetime
对象会给您一个timespan
,因此您需要弄清楚您想要该信息的粒度(秒、分钟等)。这个过程的最终结果是$results
带有ComputerName
和的对象数组Uptime
。
推荐阅读
- c# - 如何从 python *在同一进程中运行 c# 代码*?
- python - 如何向使用 nx.shortest_path 创建的路线添加一个点?
- typo3 - 在详细视图中插入媒体图像
- sql - 出现错误 在执行 DB2 EXPORT IXF 时处理 Action String 参数中的 SELECT 字符串时出现 SQL 错误“-204”?
- excel - 将大字符串与excel中的百分比差异进行比较
- reactjs - 在 react-dates 中突出显示某些日期
- reactjs - 从 redux-saga 函数访问 React 上下文值
- angular - 从指令中创建/获取 TemplateRef
- javascript - 从 firebase 获取数据,但它显示“不变违规对象作为 React 子项无效”并建议使用数组而不是对象
- c# - 解析字符串以转换为枚举类型