Я хочу вызвать метод WMI, который принимает одну строку в качестве входных данных, одно целое число в качестве входных данных и одно целое число в качестве выходных данных.

Вот текущий пример:

$obj=Get-WmiObject -class "class1" -namespace "space1" $obj| Invoke-wmiMethod -name fun -ArgumentList $devUUID , $role , $status

1 ответ1

2

Что именно вы пытаетесь достичь здесь?

Простой Get-WMIObject и пара Read-Hosts должны сделать то, что вам нужно:

$className = Read-Host "Enter Class Name"
$computerName = Read-Host "Enter Computer Name"
if ([string]::IsNullOrWhitespace($computerName)) {
    $computerName = "."
}

Get-WmiObject -ComputerName $computerName -Class $className

Включите немного дополнительной проверки ошибок, чтобы вы не пытались проверить недопустимое имя класса и т.д., И вы должны быть готовы. Пример ниже:


Вы также можете связываться внутри командных строк следующим образом:

Get-WMIObject -Class ($string1 + "32" + "_" + $string2) -ComputerName "."

(в этом случае $ string1 содержит "WIN", а $ string2 содержит "BIOS")

Вещи в скобках обрабатываются до его родительской команды. Вы можете даже пойти глубже и сделать скобки в скобках .. PowerShell запускается на самом глубоком уровне и работает до тех пор, пока не достигнет родительской команды, а затем выполнит полностью вычисленные строки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .