Передача списка в функцию - PullRequest
1 голос
/ 05 августа 2020

У меня есть функция:

function getlocaladmin {  
param ($strcomputer)  
  
$admins = Gwmi win32_groupuser –computer $strcomputer   
$admins = $admins |? {$_.groupcomponent –like '*"Administrators"'}  
  
$admins |% {  
$_.partcomponent –match “.+Domain\=(.+)\,Name\=(.+)$” > $nul  
$matches[1].trim('"') + “\” + $matches[2].trim('"')  
}  
}

Выполнение 'getlocaladmin имя компьютера' займет слишком много времени.

Я пробовал:

Get-ADComputer -filter * |

Foreach-Object {

 $function:getlocaladmin = $using:funcDef 
 getlocaladmin $_.name
 } |
 Export-Csv -Path .\localadmins.Csv

Это ... не понравилось. Что я могу сделать, чтобы передать ему список всех компьютеров, которые у нас есть?

1 Ответ

0 голосов
/ 05 августа 2020

Сначала вам нужно изменить функцию:

function getlocaladmin {  
param ([string[]]$strcomputer)  
  
$admins = Gwmi win32_groupuser –computer $strcomputer   
$admins = $admins |? {$_.groupcomponent –like '*"Administrators"'}  
  
$admins |% {  
$_.partcomponent –match “.+Domain\=(.+)\,Name\=(.+)$” > $nul  
$matches[1].trim('"') + “\” + $matches[2].trim('"')  
}  
}

Затем вы можете назвать это так:

$array = Get-ADComputer -Filter * | Select-Object -ExpandProperty Name
getlocaladmin $array

Get-WMIObject s ComputerName параметр получает string[] это означает, что вы можете передать ему массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...