Powershell 从CSV嵌套组

Powershell 从CSV嵌套组,powershell,csv,active-directory,Powershell,Csv,Active Directory,我在网上搜索了几个小时,但还没有找到合适的解决方案 我想将组作为成员添加到其他组,并将CSV作为源。 CSV看起来像(第一行是标题) (…等等…其中a组应代表公司角色和b组对资源的相应权限,但这不是问题的重点) 因此,按照这个例子,a-group1有b-group1,b-group2和b-group3作为成员。 现在我的问题是,我不知道如何迭代第2列以结束并忽略空列/值 这里关于stackoverflow的其他问题是关于CSV的user,group,但我不能这样做,因为CSV覆盖了成百上千的行和


我在网上搜索了几个小时,但还没有找到合适的解决方案

我想将组作为成员添加到其他组,并将CSV作为源。
CSV看起来像(第一行是标题)

(…等等…其中a组应代表公司角色和b组对资源的相应权限,但这不是问题的重点)

因此,按照这个例子,
a-group1
b-group1
b-group2
b-group3
作为成员。
现在我的问题是,我不知道如何迭代第2列以结束并忽略空列/值

这里关于stackoverflow的其他问题是关于CSV的
user,group
,但我不能这样做,因为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
    } 
} 
我做了一个
写主机
测试

最终编辑

工作代码:

$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 } 
    } 
}

使用此代码,我过滤掉了空值。您可能需要删除
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 } 
    } 
}

到目前为止,你能设置什么样的?您只需要检查空列/值(例如,
[String]::IsEmptyOrNull
$a-ne$null和$a-ne”“
)。@Seth感谢您,修复了它:
$csv | Foreach对象{Foreach($.PSObject.property中的属性){if($property.Value-ne$null-和$property.Value-ne”“){写入主机$\u0.agroup$property.Value}}根据您所做的,您可能希望使用<代码>写输出< /代码>而不是<代码>写主机< /C>。您可以重定向它。考虑将最终代码作为答案并接受它。@ Joj76,如果您已经解决了问题,您可以将您的解决方案发布为一个答案,这比向问题添加一个编辑要好。将来发现此问答的其他人更容易了解您所做的工作。此外,如果您可以包含CSV文件的标题行,以帮助他人(或者确认是否没有标题行)。
$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 } 
    } 
}