Как правильно передать объект класса Win32 в функцию - PullRequest
2 голосов
/ 09 ноября 2019

Я пытаюсь написать скрипт (PowerShell), который возвращает имя ЦП с использованием Win32:

$temp = Get-WmiObject Win32_Processor

$temp.Name

function Get-CPU-Name {
    [parameter(Mandatory=$true)][ValidateNotNullOrEmpty()][System.Management.ManagementBaseObject]$Temp1
    return $Temp1.Name
}

Get-CPU-Name

Вызов функции должен вернуть имя процессора, но ничего не возвращает. Как правильно передать переменную с результатами команды «Get-WmiObject Win32_Processor» в функцию

1 Ответ

2 голосов
/ 09 ноября 2019

Вы почти там, но забыли поместить параметр внутри param(..).

Это должно работать:

function Get-CPU-Name { 
    param (
        [parameter(Mandatory=$true, Position = 0)]
        [System.Management.ManagementBaseObject]$Temp1
    )
    $Temp1.Name
}

Get-CPU-Name (Get-WmiObject Win32_Processor)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...