Weird xpath observation - is this a bug?
Using export-fimconfig to test a failing xpath filter, I have observed that this works:
"/Group[(MailNickname = 'users') and (ObjectID != 'd0b565d6-e460-4451-a482-0d0c7a2d0cda')]"
but this one does not:
"/Group[(ObjectID != 'd0b565d6-e460-4451-a482-0d0c7a2d0cda') and (MailNickname = 'users')]"
even though they should be exactly the same thing.
The error returned to powershell is as follows:
Export-FIMConfig : Failure on making enumeration web service call.
Filter = /Group[(ObjectID != 'd0b565d6-e460-4451-a482-0d0c7a2d0cda') and (MailNickname = 'users')]
Error= Microsoft.ResourceManagement.WebServices.Client.UnwillingToPerformException: The endpoint could not dispatch the request. ---> Microsoft.ResourceManagement.WebService
s.Faults.ServiceFaultException: The endpoint could not dispatch the request.
at Microsoft.ResourceManagement.WebServices.EnumerationClient.Enumerate(Message request)
at Microsoft.ResourceManagement.WebServices.EnumerationClient.Enumerate(Enumerate enumerate, EnumerateHelper helper)
at Microsoft.ResourceManagement.WebServices.Client.ResourceTemplate.EnumerateResources(SearchParameters parameters)
--- End of inner exception stack trace ---
at Microsoft.ResourceManagement.WebServices.Client.ResourceTemplate.EnumerateResources(SearchParameters parameters)
at Microsoft.ResourceManagement.WebServices.ResourceManager.MoveNext()
at Microsoft.ResourceManagement.Automation.ExportConfig.EndProcessing()
At line:1 char:24
+ $obj = Export-FIMConfig <<<< -uri $URI -CustomConfig $filter
+ CategoryInfo : InvalidOperation: (:) [Export-FIMConfig], InvalidOperationException
+ FullyQualifiedErrorId : ExportConfig,Microsoft.ResourceManagement.Automation.ExportConfig
There is also this error in the event log:
Requestor: urn:uuid:577d1793-8db1-47c8-a84c-12b7104d0ed3
.Net SqlClient Data Provider: System.Data.SqlClient.SqlException: The multi-part identifier "valueOfProposition1.ObjectKey" could not be bound.
The multi-part identifier "valueOfProposition1.ObjectKey" could not be bound.
The multi-part identifier "valueOfProposition1.ObjectKey" could not be bound.
The multi-part identifier "valueOfProposition1.ObjectTypeKey" could not be bound.
The multi-part identifier "valueOfProposition1.ObjectKey" could not be bound.
The multi-part identifier "valueOfProposition1.ObjectKey" could not be bound.
The multi-part identifier "valueOfProposition1.ObjectKey" could not be bound.
The multi-part identifier "valueOfProposition1.ObjectTypeKey" could not be bound.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader()
at Microsoft.ResourceManagement.Query.QueryProcessor.ExecuteQuery(Query query, Nullable`1 maximumTime, Boolean& endOfSequence, Boolean countResultsOnly, Int64& resultCount, Int64& executionTime)
at Microsoft.ResourceManagement.WebServices.RequestDispatcher.ExecutePullActionImpl(PullRequestParameter pullParameter)
at Microsoft.ResourceManagement.WebServices.RequestDispatcher.ExecuteEnumerateAction(RequestType request)
at Microsoft.ResourceManagement.WebServices.RequestDispatcher.ExecuteAction(RequestType request)
at Microsoft.ResourceManagement.WebServices.RequestDispatcher.ExecuteAction[ResponseBodyType](RequestType request)
at Microsoft.ResourceManagement.WebServices.RequestDispatcher.DispatchRequest[ResponseBodyType](RequestType request, Guid requestIdentifier, Object redispatchSingleInstanceKey, Boolean isRedispatch)
at Microsoft.ResourceManagement.WebServices.RequestDispatcher.DispatchRequest[ResponseBodyType](RequestType request)
at Microsoft.ResourceManagement.WebServices.ResourceManagementService.Enumerate(Message request)
http://www.wapshere.com/missmiis
May 23rd, 2011 7:41am
Smells like a bug.
If it were blocking you I'd say file the PSS case, but since you have a good workaround (a query that performs as you expect) then I would file the bug on Connect. CraigMartin Edgile, Inc. http://identitytrench.com
Free Windows Admin Tool Kit Click here and download it now
May 23rd, 2011 12:22pm
Smells like a bug.
If it were blocking you I'd say file the PSS case, but since you have a good workaround (a query that performs as you expect) then I would file the bug on Connect. CraigMartin Edgile, Inc. http://identitytrench.com
May 23rd, 2011 12:22pm
It's not blocking me cos I can just reverse the order of the queries - but it does seem wrong that the order should matter in the first place.http://www.wapshere.com/missmiis
Free Windows Admin Tool Kit Click here and download it now
May 23rd, 2011 2:02pm