コード例 #1
0
 internal SetADPrincipalGroupMembership(SetADPrincipalGroupMembershipOperationType operationType)
 {
     this._validExtendedPrincipalList = new List <ADPrincipal>();
     this._operationType = operationType;
     this.Init();
     base.BeginProcessPipeline.Clear();
     base.ProcessRecordPipeline.Clear();
     base.ProcessRecordPipeline.InsertAtEnd(new CmdletSubroutine(this.SetADPrincipalGroupMembershipProcessCSRoutine));
     base.EndProcessPipeline.InsertAtStart(new CmdletSubroutine(this.SetADPrincipalGroupMembershipEndCSRoutine));
 }
コード例 #2
0
        private bool SetADPrincipalGroupMembershipEndCSRoutine()
        {
            string defaultPartitionPath;
            string str  = null;
            string str1 = null;
            string str2 = null;
            SetADPrincipalGroupMembershipOperationType setADPrincipalGroupMembershipOperationType = this._operationType;

            switch (setADPrincipalGroupMembershipOperationType)
            {
            case SetADPrincipalGroupMembershipOperationType.AddGroupMembership:
            {
                str  = string.Format(CultureInfo.CurrentCulture, StringResources.AddADPrincipalGroupMembershipShouldProcessDescription, new object[0]);
                str2 = string.Format(CultureInfo.CurrentCulture, StringResources.AddADPrincipalGroupMembershipShouldProcessCaption, new object[0]);
                str1 = string.Format(CultureInfo.CurrentCulture, StringResources.AddADPrincipalGroupMembershipShouldProcessWarning, new object[0]);
                break;
            }

            case SetADPrincipalGroupMembershipOperationType.RemoveGroupMembership:
            {
                str  = string.Format(CultureInfo.CurrentCulture, StringResources.RemoveADPrincipalGroupMembershipShouldProcessDescription, new object[0]);
                str2 = string.Format(CultureInfo.CurrentCulture, StringResources.RemoveADPrincipalGroupMembershipShouldProcessCaption, new object[0]);
                str1 = string.Format(CultureInfo.CurrentCulture, StringResources.RemoveADPrincipalGroupMembershipShouldProcessWarning, new object[0]);
                break;
            }
            }
            if (base.ShouldProcessOverride(str, str1, str2))
            {
                ADPrincipal[]  array    = this._validExtendedPrincipalList.ToArray();
                List <ADGroup> aDGroups = new List <ADGroup>();
                foreach (SetADPrincipalGroupMembership <P> .ADGroupPartitionDNPair aDGroupPartitionDNPair in this._validExtendedGroupPartitionPairList)
                {
                    if (aDGroupPartitionDNPair.PartitionDN == null)
                    {
                        defaultPartitionPath = this.GetDefaultPartitionPath();
                    }
                    else
                    {
                        defaultPartitionPath = aDGroupPartitionDNPair.PartitionDN;
                    }
                    string str3 = defaultPartitionPath;
                    try
                    {
                        object[] group = new object[4];
                        group[0] = aDGroupPartitionDNPair.Group;
                        group[1] = array;
                        group[2] = str3;
                        group[3] = false;
                        base.InvokeCommand.InvokeScript(this._command.ToString(), false, PipelineResultTypes.None, null, group);
                    }
                    catch (RuntimeException runtimeException1)
                    {
                        RuntimeException runtimeException  = runtimeException1;
                        object[]         distinguishedName = new object[2];
                        distinguishedName[0] = aDGroupPartitionDNPair.Group.DistinguishedName;
                        distinguishedName[1] = runtimeException.Message;
                        string str4 = string.Format(CultureInfo.CurrentCulture, this._perGroupOperationFailedMessage, distinguishedName);
                        base.WriteWarning(str4);
                        DebugLogger.LogError("SetADPrincipalGroupMembership", str4);
                        aDGroups.Add(aDGroupPartitionDNPair.Group);
                    }
                }
                if (aDGroups.Count <= 0)
                {
                    if (this._cmdletParameters.GetSwitchParameterBooleanValue("PassThru"))
                    {
                        foreach (ADPrincipal aDPrincipal in this._validExtendedPrincipalList)
                        {
                            base.WriteObject(aDPrincipal);
                        }
                    }
                }
                else
                {
                    ADException aDException = new ADException(this._overallOperationFailedMessage);
                    base.ThrowTerminatingError(new ErrorRecord(aDException, "1", ErrorCategory.OperationStopped, aDGroups.ToArray()));
                }
                return(true);
            }
            else
            {
                DebugLogger.LogInfo("SetADPrincipalGroupMembership", "User selected NO when asked to confirm..exiting without doing anything.");
                return(false);
            }
        }