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); } } }); }