powershell - 抓取监视器信息 Powershell
问题描述
所以我一直在玩我找到的这部分代码,但我无法弄清楚如何将它变成一个函数。
$Monitors = Get-WmiObject WmiMonitorID -Namespace root\wmi
ForEach ($Monitor in $Monitors)
{
$Manufacturer = ($Monitor.ManufacturerName -notmatch 0 | ForEach{[char]$_}) -join ""
$MName = ($Monitor.UserFriendlyName -notmatch 0 | ForEach{[char]$_}) -join ""
$MSerial = ($Monitor.SerialNumberID -notmatch 0 | ForEach{[char]$_}) -join ""
Echo $Manufacturer
Echo $MName
Echo $MSerial
}
Echo 在那里只是为了测试,但它按原样工作。一旦我尝试将它全部放入一个函数中,什么都不会吐出。我也不确定如何创建一个数组,以便将数据组合到一个单元格中。例如,监视器 1 + 2 串行单元 1,监视器 1 + 2 模型单元 2。
任何帮助,将不胜感激。
解决方案
您应该包含您的实际功能,以便我们可以看到它为什么不起作用。也就是说,我生成了这个示例,它可能会对您有所帮助:
function Get-MonitorDetails
{
param
(
[Object]
[Parameter(Mandatory=$true, ValueFromPipeline=$true, HelpMessage="Data to process")]
$InputObject
)
process
{
$Manufacturer = ($InputObject.ManufacturerName -notmatch 0 | ForEach-Object{[char]$_}) -join ""
$MName = ($InputObject.UserFriendlyName -notmatch 0 | ForEach-Object{[char]$_}) -join ""
$MSerial = ($InputObject.SerialNumberID -notmatch 0 | ForEach-Object{[char]$_}) -join ""
return [pscustomobject]@{
Manufacturer = $Manufacturer
MName = $MName
MSerial = $MSerial
}
}
}
Get-WmiObject WmiMonitorID -Namespace root\wmi | Get-MonitorDetails
推荐阅读
- postgresql - 在一台服务器上安装 Jenkins、JFrog 和 Jira
- javascript - 我正在尝试在 vue js 中使用事件总线。但是这个错误反复出现
- postgresql - 致命:主机“****”、用户“xyz”、数据库“***”没有 pg_hba.conf 条目,SSL 关闭
- azure-devops - Azure DevOps Pipeline As Code - 验证 ARM 模板
- python - 如何为在另一列熊猫中具有相同值的那些行使一列的值相同
- firebase - 通过应用程序副本访问时 Firebase DatabaseError(-3, Permission denied,)
- microsoft-teams - 无法将自定义应用添加到 Teams 管理员中的新自定义策略
- html - 在导航栏和页脚之间的主容器内填充
- html - 如何在 CSS 中使用 XML 中声明的特定属性来设计网站
- r - 在使用 auto.arima 时,我们得到了最好的 pd 和 q 值。有没有办法将这些值动态发送到 arima() 函数?