微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于 $variable.name 匹配安全组名称

如何解决基于 $variable.name 匹配安全组名称

好的,我正在尝试在特定 OU 下自动创建安全组。关键是群组成员资格,所以基本上If member of group A -> create group B.

所以我用“所有经理”组的名称属性填充变量。然后我想遍历这些 $names 并使用 {Name -like 'Reports to $name'}

检查另一个组的存在

循环部分让我失望,这就是我所拥有的:

import-module activedirectory

$ou = "ou=Stuff,ou=Resources,ou=Groups,ou=Org,dc=domain,dc=net"


$creds = "domain.net\user"
$server = "<domain controller>"



$managers = get-adGroupMember -server $server -Credential $creds -identity "All Managers" | select name
$name = $managers.name

    $ReportsTo = Get-adgroup -server $server -credential $creds -searchbase $ou -filter "Name -like 'Reports to *'" | where {$_.name -replace 'Reports to ' -in $name} | select name
$Reports = $reportsto.name
$reports

    
     
ForEach ($manager in $managers){
    
    If ($ReportsTo -NotContains $name)
    #{$name}
    {New-ADGroup -name "Reports to "$name -groupscope Global -path $ou}

} 

我知道这很丑陋,但就像我说的我不知道如何处理循环,它们对我来说仍然是新的。

解决方法

您可以执行以下操作:

$ou = 'ou=Stuff,ou=Resources,ou=Groups,ou=Org,dc=domain,dc=net'
$creds = "domain.net\user"
$server = "<domain controller>"

# Get Manager names only
$managers = Get-ADGroupMember -Server $server -Credential $creds -Identity 'All Managers' |
    Select-Object -ExpandProperty Name

# Get Group names that are in the format Reports to Manager Name
$ReportsTo = Get-ADGroup -Server $server -Credential $creds -SearchBase $ou -Filter "Name -like 'Reports to *'" |
    where {$_.Name -replace 'Reports to ' -in $managers} |
        Select-Object -ExpandProperty Name

# Find manager names that don't have a Reports to group
Compare-Object $managers ($ReportsTo -replace 'Reports to ') -PassThru | Foreach-Object {
    # Pipe found manager names into New-ADGroup command's -Name parameter
    New-ADGroup -Name "Reports to $_" -GroupScope Global -Path $ou -Server $server -Credential $creds
}

Compare-Object 默认仅列出差异。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。