示例#1
0
        public override void ExecuteCmdlet()
        {
            ExecutionBlock(() =>
            {
                if (this.IsParameterBound(c => c.ApplicationObject))
                {
                    ApplicationId = ApplicationObject.ApplicationId;
                }

                if (this.IsParameterBound(c => c.ObjectId))
                {
                    var objectId         = ObjectId.ToString();
                    var servicePrincipal = ActiveDirectoryClient.GetServicePrincipalByObjectId(objectId);
                    if (servicePrincipal != null)
                    {
                        WriteObject(servicePrincipal);
                    }
                }
                else if (this.IsParameterBound(c => c.ServicePrincipalName))
                {
                    var servicePrincipal = ActiveDirectoryClient.GetServicePrincipalBySPN(ServicePrincipalName);
                    if (servicePrincipal != null)
                    {
                        WriteObject(servicePrincipal);
                    }
                }
                else
                {
                    ulong first = MyInvocation.BoundParameters.ContainsKey("First") ? this.PagingParameters.First : ulong.MaxValue;
                    ulong skip  = MyInvocation.BoundParameters.ContainsKey("Skip") ? this.PagingParameters.Skip : 0;
                    if (ApplicationId != Guid.Empty)
                    {
                        var appId = ApplicationId.ToString();
                        Rest.Azure.OData.ODataQuery <ServicePrincipal> odataQuery = new Rest.Azure.OData.ODataQuery <ServicePrincipal>(s => s.AppId == appId);
                        WriteObject(ActiveDirectoryClient.FilterServicePrincipals(odataQuery, first, skip), true);
                    }
                    else
                    {
                        ADObjectFilterOptions options = new ADObjectFilterOptions()
                        {
                            SearchString = this.IsParameterBound(c => c.DisplayNameBeginsWith) ? DisplayNameBeginsWith + "*" : DisplayName
                        };
                        WriteObject(ActiveDirectoryClient.FilterServicePrincipals(options, first, skip), true);
                    }
                }
            });
        }