4

Я совершенно новичок в PowerShell. Я только начал поднимать это вчера. Когда я нашел ресурс под названием «Изучите Windows PowerShell сейчас, прежде чем он станет экстренным», я понял, насколько подходящим является название.

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

Моя цель - предоставить детальный отчет о полных зависимостях COM.

Основы, которые мне нужно знать:

  1. Как сделать итерацию в PowerShell?
  2. Как мне сохранить промежуточные результаты в массиве или списке?

2 ответа2

1

Давайте попробуем это снова.

Итерация в powershell выполняется одним из трех способов:

  1. Используйте команду foreach для массива: Foreach ($ item in $ array) {#actions}
  2. Используйте действие Powershell select для построения массива: $ array = Select-childitem -Recurse
  3. Отправьте массив по конвейеру в фильтр: $ array | where-object {$ _-like "Строка поиска"}

Самый простой способ сохранить результаты запугивания - это добавить его в переменную инициализированного массива.

$array = @() #Initialize array
$array += $item #Add item to array

Вот некоторый основной пример кода, чтобы найти что-то в реестре.

cls
$GUID = "*{3336F667-9049-4D46-98B6-4C743EEBC5B1}*"
$RegPath = "HKLM:\"
$Results = Get-ChildItem $RegPath -Recurse -ErrorAction SilentlyContinue | Where-Object{$_ -like $GUID}
foreach ($item in $Results)
{
    Write-Host $item
}

Использование Get-ChildItem - плохой способ поиска в реестре, но он работает.

Надеюсь это поможет

-1

1) Используйте петли. Доступны стандартный стиль For , Foreach и Do/While .

2) Используйте переменные:

$strComputers = @("Server1", "Server2", "Server3")
$strComputers.Count
$strComputers[0]
$strComputers[1]
$strComputers[2]

PowerShell не требует строго типизированных переменных, поэтому следите за магическими преобразованиями. :)

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