因此,我一直在研究这段代码,但是我无法弄清楚如何将其转化为函数。
$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。
任何帮助将不胜感激。
答案 0 :(得分:1)
您应该已经包括了您的实际功能,所以我们可以了解为什么它不起作用。就是说,我生成了这个示例,可以为您提供帮助:
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