Мне не хватает чего-то фундаментального в PowerShell.
У меня есть скрипт, который генерирует две коллекции, имена компьютеров с информацией о версии конкретного приложения и отдельный список имен пользователей, который берется из списка имен компьютеров, потому чтоимена пользователей указаны в именах компьютеров, например имя компьютера:
XXXXXX02jbloggs
Владельцем этого компьютера является jbloggs, а jbloggs является допустимым объектом AD, который имеет полное имя joe blogs.
Конечной целью скрипта является создание отчета с именами компьютеров, владельцем SamAccountName, полным именем и подробностями приложения, которые скрипт специально проверяет.
Например,
какие версии Adobe Reader существуют на этом диапазоне машин
Пока у меня есть:
$ErrorActionPreference = "SilentlyContinue"
$Computers = Get-ADComputer -Server BlahBlah.com -Filter {name -like "XXXXXX02*"} |
Select-Object -ExpandProperty Name
$Users = $Computers -Replace '\D*\d*(\w*)', '$1'
$Results = foreach ($Computer in $Computers) {
Get-CimInstance -ComputerName $Computer -ClassName Win32_Product |
Where-Object{$_.Name -like "*Adobe Reader*"} |
Select-Object PSComputerName, Name, Version, InstallDate
}
$FullNames = ForEach ($user in $Users) {
Get-ADUser -Server BlahBlah.com -Identity $User -Properties * |
Select-Object -ExpandProperty Name
}
$Results
получает менясписок имен компьютеров, Adobe Reader xxx, версия и дата установки. $FullNames
получает мне список полных имен на основе их идентификаторов пользователя
Я не знаю, как создать сценарий, чтобы он создавал полное имя, имя пользователя, имя компьютера, имя приложения и дату установки.
Вот почему я говорю, что мне не хватает чего-то фундаментального в PowerShell, яискали пользовательские объекты, вложенные циклы и другие идеи, но безрезультатно.Действительно ищу несколько советов по этому типу проблемы, так как я привел несколько похожих примеров.Любой совет будет принята с благодарностью.