【问题标题】:Nest groups from CSV来自 CSV 的嵌套组
【发布时间】:2017-06-12 09:16:24
【问题描述】:


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

我想将组作为成员添加到其他组,并将 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-group1b-group2b-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
    } 
} 

我做了一个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 } 
    } 
}

【问题讨论】:

  • 到目前为止,您设置了什么样的功能?您只需要检查空列/值(例如[String]::IsEmptyOrNull$a -ne $null and $a -ne "")。
  • @Seth 谢谢,修复了它:$csv | Foreach-Object { foreach ($property in $_.PSObject.Properties) { if ($property.Value -ne $null -and $property.Value -ne "") { Write-Host $_.agroup $property.Value } } }
  • 根据您的操作,您可能希望使用Write-Output 而不是Write-Host,因为您可以重定向它。考虑发布您的最终代码作为答案并接受它。
  • @Josh76,如果您已经解决了问题,您可以发布您的解决方案作为答案,这比在问题中添加编辑要好。这将使以后发现此问答的其他人更容易了解您所做的工作。
  • 另外,如果您可以包含对人们有帮助的 CSV 文件的标题行(或确认是否没有)。

标签: powershell csv active-directory


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-21
    • 2023-03-15
    • 2014-09-20
    • 2015-08-26
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多