Как мне перевести свойство объекта в строку в Powershell - PullRequest
1 голос
/ 15 июля 2011

Я довольно хорошо знаком с PHP, Javascript и т. Д., Но я новичок в Powershell.Я пытаюсь получить IP-адреса и Mac-адреса со всех компьютеров в активном каталоге.Я натолкнулся на скрипт, который получает объект со всеми именами компьютеров и перечисляет их через цикл foreach.Внутри этого цикла я пытаюсь выполнить следующее:

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

Очевидно, что это не работает, поскольку не может получать данные из конвейера.Можно ли взять свойство name и преобразовать его в строковую переменную для использования в Get-WmiObject?Я пытался объявить строковую переменную с этим $ objComputer.name в качестве значения и пробовал $ ($ objComputer.name), но ни один из них не сделал этого для меня.Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 15 июля 2011

я думаю, что вам нужен дефис перед комп ...точка):

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

с использованием $ objComputer, хотя вы можете сделать это

$objComputer = @{ "name" = "." }

Matt

0 голосов
/ 17 июля 2011

К сожалению, Get-WmiObject не принимает входные данные конвейера.Несмотря на то, что передача $ objComputer.name совершенно допустима (если $ objComputer является объектом, имеющим член name), вы можете присвоить значение имени виртуальному объекту и передать переменную свойству ComputerName.

foreach($objComputer $computers)
{
    $name = $objComputer.name
    $colItems = GWMI -cl Win32_NetworkAdapterConfiguration -comp $name -filter "IpEnabled = TRUE"
    $colItems
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...