Скопируйте объект групповой политики из 2 циклов CSV файлов - PullRequest
0 голосов
/ 15 мая 2019

У меня есть 2 CSV-файла, один с отображаемым именем объекта групповой политики Win7, а другой с отображаемым именем Win10.Я хочу просмотреть оба csv, чтобы скопировать настройки GPO из Win7 в новое отображаемое имя Win10 GPO.Когда я запускаю свой цикл, он применяет один и тот же первый GPO win7 ко всем новым Win10 GPO, затем ко второму и т.д.Любая помощь будет оценена.

import-module grouppolicy
import-module activedirectory

$Win7GPOPath = "c:\temp\copyWin7GPOs.csv"
$Win10GPOPath = "c:\temp\copyWin10GPOs.csv"

$7GPO = @{}
$10GPO = @{}

$Win7GPO = import-csv $Win7GPOPath
$Win10GPO = import-csv $Win10GPOPath

ForEach($7GPO in $Win7GPO) {


    ForEach($10GPO in $Win10GPO) {

    Write-Output "Copy-GPO -SourceName $7GPO -TargetName $10GPO"
          }
    }

1 Ответ

1 голос
/ 15 мая 2019

Если ваши CSV-файлы содержат одинаковое количество строк и каждая строка в одном файле соответствует тому же номеру строки в другом файле, вы можете использовать один цикл for.

import-module grouppolicy
import-module activedirectory

$Win7GPOPath = "c:\temp\copyWin7GPOs.csv"
$Win10GPOPath = "c:\temp\copyWin10GPOs.csv"

$7GPO = @{}
$10GPO = @{}

$Win7GPO = import-csv $Win7GPOPath
$Win10GPO = import-csv $Win10GPOPath

for ($i = 0; $i -lt $Win7GPO.count; $i++) {
   Copy-GPO -SourceName $Win7GPO[$i] -TargetName $Win10GPO[$i]
}

ЕслиCSV-файл содержит заголовок, вам нужно сослаться на это свойство заголовка, например $Win7GPO[$i].Property.

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