Como definir ou desmarcar “O gerente pode atualizar a lista de associação” usando o PowerShell

2

Para o grupo de distribuição, posso definir o parâmetro O gerenciador pode atualizar a lista de associações usando o ADUC mmc, mas não consigo encontrar como fazer isso usando o PowerShell. Além disso, até mesmo a propriedade Gerente pode atualizar a lista de associação está definida no ADUC, na listagem do PowerShell para a propriedade Get-QADGroup ManagerCanUpdateMembershipList ainda está definida como false .

    
por Maximus 03.03.2010 / 07:31

3 respostas

2

Em um ambiente do AD 2003, este é um processo de duas etapas:

Add-QADPermission -Identity -Account -Rights WriteProperty -Property "Member" -Aplicar a 'ThisObjectOnly'

Set-QADGroup -ManagedBy

O primeiro comando definirá as permissões necessárias e estará funcional, mas se não houver uma conta de usuário já especificada no campo Gerenciado por no ADUC, esse campo permanecerá vazio e a caixa não será marcada. O segundo comando preencheu este campo e, quando ambas as condições forem atendidas, a caixa será verificada.

Tenha em mente que o ManagerCanUpdateMembershipList arquivado nas propriedades do Grupo ainda lerá FALSE em um ambiente do AD sem o Active Roles Server. Este campo é aparentemente um campo proprietário para o Active Roles Server.

    
por 17.08.2010 / 21:07
1

Eu tenho uma postagem no blog que explica como fazer isso com o módulo ActiveDirectory e ADSI, você pode encontrá-lo aqui , se você quer apenas o código:

 <#
.Synopsis
   Sets manager property on AD group and grants change membership rights.
.DESCRIPTION
   Sets manager property on AD group and grants change membership rights.
   This is done by manipulating properties directly on the DirectoryEntry object
   obtained with ADSI. This sets the managedBy property and adds an ACE to the DACL
   allowing said manager to modify group membership.
.EXAMPLE
   Set-GroupManager -ManagerDN "CN=some manager,OU=All Users,DC=Initech,DC=com" -GroupDN "CN=TPS Reports Dir,OU=All Groups,DC=Initech,DC=com"
.EXAMPLE
   (Get-AdGroup -Filter {Name -like "sharehost - *"}).DistinguishedName | % {Set-GroupManager "CN=some manager,OU=All Users,DC=Initech,DC=com" $_}
#>
function Set-GroupManager {
    param (
        [Parameter(Mandatory=$true, ValueFromPipeline=$false, ValueFromPipelinebyPropertyName=$True, Position=0)]
        [string]$ManagerDN,
        [Parameter(Mandatory=$true, ValueFromPipeline=$false, ValueFromPipelinebyPropertyName=$True, Position=1)]
        [string]$GroupDN
        )

    try {
        Import-Module ActiveDirectory -NoClobber

        $mgr = [ADSI]"LDAP://$ManagerDN";
        $identityRef = (Get-ADUser -Filter {DistinguishedName -like $ManagerDN}).SID.Value
        $sid = New-Object System.Security.Principal.SecurityIdentifier ($identityRef);

        $adRule = New-Object System.DirectoryServices.ActiveDirectoryAccessRule ($sid, '
                    [System.DirectoryServices.ActiveDirectoryRights]::WriteProperty, '
                    [System.Security.AccessControl.AccessControlType]::Allow, '
                    [Guid]"bf9679c0-0de6-11d0-a285-00aa003049e2");

        $grp = [ADSI]"LDAP://$GroupDN";

        $grp.InvokeSet("managedBy", @("$ManagerDN"));
        $grp.CommitChanges();

        # Taken from here: http://blogs.msdn.com/b/dsadsi/archive/2013/07/09/setting-active-directory-object-permissions-using-powershell-and-system-directoryservices.aspx
        [System.DirectoryServices.DirectoryEntryConfiguration]$SecOptions = $grp.get_Options();
        $SecOptions.SecurityMasks = [System.DirectoryServices.SecurityMasks]'Dacl'

        $grp.get_ObjectSecurity().AddAccessRule($adRule);
        $grp.CommitChanges();
    }
    catch {
        throw
    }
}

pode ser encontrado aqui

    
por 29.11.2014 / 10:04
0

Sua pergunta me intrigou e usei o google para encontrar uma resposta ... Não tenho experiência com os cmdlets da Quest no PoSh.

A descrição de New-QADGroup diz que usar o parâmetro ManagerCanUpdateMembershipList requer conexão com o servidor ActiveRoles

por 20.03.2010 / 23:22