powershell - 从 2 个 csv 文件循环问题复制 GPO
问题描述
我有 2 个 csv 文件,一个带有 Win7 GPO 显示名称,另一个带有 Win10 显示名称。我想遍历两个 csv,以便将 GPO 设置从 Win7 复制到新的 Win10 显示名称 GPO。当我运行我的循环时,它会将相同的第一个 win7 GPO 应用于所有新的 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"
}
}
解决方案
如果您的 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
.
推荐阅读
- qt - QtCreator: Custom QML Import Path 指出我指定的目录不是目录。我尝试导入的 QML 类型变为绿色
- python - 从节点文件到 python 文件的音频文件输入
- node.js - 如何修复 OpenSSL SSL_read: error ssl3_get_record:decryption failed or bad record mac?
- c++ - 在其中一个模板中使用带有模板的头文件和 cpp 文件时编译时未定义的引用
- python - 读取文本文件以创建列表,然后转换为字典 python
- php - 如何将特定的 js 和 css 添加到 joomla 中的特定页面?
- r - 在日期范围内加入
- haskell - 嵌套应用函子时使 QualifiedDo 和 ApplicativeDo 一起工作
- node.js - 在 Google My Business API 下列出企业帐户
- curl - 检查/强制 curl 连接的加密