microsoft / AADConnectConfigDocumenter

AAD Connect configuration documenter is a tool to generate documentation of an AAD Connect installation.
Other
245 stars 49 forks source link

Single quotes in AADConnect Rule Names lead to System.Xml.XPath.XPathException #22

Closed oleschri closed 5 years ago

oleschri commented 5 years ago

When you have a rule name that contains single quotes, example: Custom: In from AD - Only sync Users with msDS-cloudExtensionAttribute = 'exampleexample' this leads to

Connector SubType: ''. Exception in 'AzureADConnectSyncDocumenter : GetReport'. Details: System.Xml.XPath.XPathException: '/Pilot/Synchronizat
ionRules/synchronizationRule[translate(connector, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') = '{32C88088-A808-45FA-9995-2C497023971A}' and name = 'Custom: In from AD - Only sync Users with msDS-cloudExtensionAttribute = 'exampleexample'' and link
Type = 'Join'  and (count(disabled) = 0 or (disabled != 'True' and disabled != 'true' and disabled != '1')) ]' ist ein ungültiger Token.
   bei MS.Internal.Xml.XPath.XPathParser.CheckToken(LexKind t)
   bei MS.Internal.Xml.XPath.XPathParser.ParsePredicate(AstNode qyInput)
   bei MS.Internal.Xml.XPath.XPathParser.ParseStep(AstNode qyInput)
   bei MS.Internal.Xml.XPath.XPathParser.ParseRelativeLocationPath(AstNode qyInput)
   bei MS.Internal.Xml.XPath.XPathParser.ParseLocationPath(AstNode qyInput)
   bei MS.Internal.Xml.XPath.XPathParser.ParsePathExpr(AstNode qyInput)
   bei MS.Internal.Xml.XPath.XPathParser.ParseUnionExpr(AstNode qyInput)
   bei MS.Internal.Xml.XPath.XPathParser.ParseUnaryExpr(AstNode qyInput)
   bei MS.Internal.Xml.XPath.XPathParser.ParseMultiplicativeExpr(AstNode qyInput)
   bei MS.Internal.Xml.XPath.XPathParser.ParseAdditiveExpr(AstNode qyInput)
   bei MS.Internal.Xml.XPath.XPathParser.ParseRelationalExpr(AstNode qyInput)
   bei MS.Internal.Xml.XPath.XPathParser.ParseEqualityExpr(AstNode qyInput)
   bei MS.Internal.Xml.XPath.XPathParser.ParseAndExpr(AstNode qyInput)
   bei MS.Internal.Xml.XPath.XPathParser.ParseOrExpr(AstNode qyInput)
   bei MS.Internal.Xml.XPath.XPathParser.ParseExpresion(AstNode qyInput)
   bei MS.Internal.Xml.XPath.XPathParser.ParseXPathExpresion(String xpathExpresion)
   bei System.Xml.XPath.XPathExpression.Compile(String xpath, IXmlNamespaceResolver nsResolver)
   bei System.Xml.XPath.XPathNavigator.Evaluate(String xpath, IXmlNamespaceResolver resolver)
   bei System.Xml.XPath.XPathEvaluator.Evaluate[T](XNode node, String expression, IXmlNamespaceResolver resolver)
   bei System.Xml.XPath.Extensions.XPathSelectElements(XNode node, String expression, IXmlNamespaceResolver resolver)
   bei AzureADConnectConfigDocumenter.SyncRuleDocumenter.FillConnectorSyncRuleDescriptionDataSet(Boolean pilotConfig)
   bei AzureADConnectConfigDocumenter.SyncRuleDocumenter.ProcessConnectorSyncRuleDescription()
   bei AzureADConnectConfigDocumenter.SyncRuleDocumenter.GetReport(SyncRuleReportType reportType)
   bei AzureADConnectConfigDocumenter.ConnectorDocumenter.ProcessConnectorSyncRules(SyncRuleDirection direction, SyncRuleReportType reportType)
   bei AzureADConnectConfigDocumenter.ConnectorDocumenter.ProcessConnectorNormalJoinSyncRules()
   bei AzureADConnectConfigDocumenter.ActiveDirectoryConnectorDocumenter.GetReport()
   bei AzureADConnectConfigDocumenter.AzureADConnectSyncDocumenter.ProcessConnectorConfiguration(XElement connector, ConfigEnvironment configEnvironment)
   bei AzureADConnectConfigDocumenter.AzureADConnectSyncDocumenter.ProcessConnectorConfigurations()
   bei AzureADConnectConfigDocumenter.AzureADConnectSyncDocumenter.GetReport().
System.Xml.XPath.XPathException: '/Pilot/SynchronizationRules/synchronizationRule[translate(connector, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') = '{32C88088-A808-45FA-9995-2C497023971A}' and name = 'Custom: In from AD - Only sync Users w
ith msDS-cloudExtensionAttribute = 'exampleexample'' and linkType = 'Join'  and (count(disabled) = 0 or (disabled != 'True' and disabled != 'true' and disabled != '1')) ]' ist ein ungültiger Token.
   bei AzureADConnectConfigDocumenter.AzureADConnectSyncDocumenter.GetReport()
   bei AzureADConnectConfigDocumenter.AzureADConnectSyncDocumenter.GenerateReport()
   bei AzureADConnectConfigDocumenter.Program.Main(String[] args)
NileshGhodekar commented 5 years ago

Thanks @oleschri. Please try today's release. I'll close this issue now.