几个小时了,我正在网上搜索,但还没有找到合适的解决方案。
我想将群组添加为其他群组的成员,并将CSV作为来源 CSV看起来像(第一行是标题)......
agroup,bgroup1,bgroup2,bgroup3,...
a-group1,b-group1,b-group2,b-group3
a-group2,b-group5
a-group3,b-group2,b-group3,b-group4,b-group5,b-group6
a-group4,b-group15,b-group23
(......等等...... a-group应代表公司角色,b-group对应资源的相应权限,但这不是这个问题的重点)
因此,遵循此示例a-group1
有b-group1
,b-group2
和b-group3
作为成员。
现在我的问题是我不知道如何迭代第2列结束并忽略空列/值。
有关stackoverflow的其他问题是有关整齐user,group
的CSV,但我无法做到这一点,因为CSV涵盖了行和列的内容。
有人请帮忙。
修改
对不起,到目前为止忘记了我的代码。
Import-Module ActiveDirectory
$path = Split-Path -parent $MyInvocation.MyCommand.Definition
$newpath = $path + "\input.csv"
$csv = @()
$csv = Import-Csv -Path $newpath -Delimiter ";"
$csv | Foreach-Object {
foreach ($property in $_.PSObject.Properties) {
Write-Host $_.agroup $property.Value
}
}
我做了write-host
进行测试。
最终修改
工作代码:
$csv | Foreach-Object {
foreach ($property in $_.PSObject.Properties) {
if ($property.Value -ne $null -and $property.Value -ne "") {
Add-ADGroupMember -Identity $_.agroup -Member $property.Value -WhatIf }
}
}
答案 0 :(得分:0)
使用此代码我过滤掉了空值。您可能希望删除whatif
以使其正常运行。
$csv | Foreach-Object {
foreach ($property in $_.PSObject.Properties) {
if ($property.Value -ne $null -and $property.Value -ne "") {
Add-ADGroupMember -Identity $_.agroup -Member $property.Value -WhatIf }
}
}