вывод функции PowerShell в переменную - PullRequest
3 голосов
/ 10 июня 2010

У меня в powershell 2.0 есть функция getip, которая получает IP-адрес (а) удаленной системы.

function getip {
$strComputer = "computername"

$colItems = GWMI -cl "Win32_NetworkAdapterConfiguration" -name "root\CimV2" -comp $strComputer -filter "IpEnabled = TRUE"



ForEach ($objItem in $colItems)

{Write-Host $objItem.IpAddress}

}

Проблема, с которой я столкнулся, заключается в получении вывода этой функции в переменную. Следующее не работает ...

$ipaddress = (getip)
$ipaddress = getip
set-variable -name ipaddress -value (getip)

любая помощь с этой проблемой будет принята с благодарностью.

Ответы [ 2 ]

6 голосов
/ 10 июня 2010

Возможно, это будет работать?(Если вы используете Write-Host, данные будут выводиться, а не возвращаться).

function getip {
    $strComputer = "computername"

    $colItems = GWMI -cl "Win32_NetworkAdapterConfiguration" -name "root\CimV2" -comp $strComputer -filter "IpEnabled = TRUE"

    ForEach ($objItem in $colItems) {
        $objItem.IpAddress
    }
}


$ipaddress = getip

$ipaddress будет содержать массив строковых IP-адресов.

2 голосов
/ 13 февраля 2012

Вы также можете сделать

function getip {
    $strComputer = "computername"

    $colItems = GWMI -cl "Win32_NetworkAdapterConfiguration" -name "root\CimV2" -comp $strComputer -filter "IpEnabled = TRUE"

    ForEach ($objItem in $colItems) {
        write-output $objItem.IpAddress
    }
}


$ipaddress = getip

для доступа к трубопроводу вы должны использовать возврат / запись-вывод

...