MIM Config Documenter tool now availiable on GitHub RRS feed

  • General discussion

  • I am happy to announce that the Identity Community Projects team has published the MIM Config Documenter tool to the Microsoft GitHub Organization as an open source community project.
    MIM configuration documenter is a tool to generate documentation of a MIM / FIM synchronization or service installation.
    The goal of this project is to:
    • Document deployment configuration details for the MIM / FIM solution!
    o Including MIMWAL Workflow definitions
    • Track any configuration changes you have made since a specific baseline!!
    • Build confidence in getting things right when making changes to the deployed solution!!
    You can find the project code, releases, and documentation at:
    Tuesday, May 23, 2017 6:47 PM

All replies

  • I have tried this.

    I have several questions.

    First of all the documentation is very confusing. Not everyone has english as first language.

    Secondly there are no binaries at least none in the download. Lots of .cs files, one .sln file and that is all. No guidance how to build the .dlls and .exe

    Finally when you figure out how to get the MIMConfigDocumenterCmd.exe and MIMConfigDocumenter.dll built it crashes when trying to create the report.

    MIMConfigDocumenterLog Error: 40000 : MIMConfigDocumenter (1.17.0522.0): 06/28/2017 10:52:56.6800: Exception in 'MIMServicePolicyDocumenter : GetReport'. Details: System.NullReferenceException: Object reference not set to an instance of an object.
       at MIMConfigDocumenter.MIMServicePolicyDocumenter.FillWorkflowActivityValueExpressions(DataTable activityValueExpressionsTable, XElement hashtable, Int32 activityIndex, Int32 sectionIndex)
       at MIMConfigDocumenter.MIMServicePolicyDocumenter.FillWorkflowActivityDetails(Boolean pilotConfig)
       at MIMConfigDocumenter.MIMServicePolicyDocumenter.ProcessWorkflow()
       at MIMConfigDocumenter.MIMServicePolicyDocumenter.ProcessWorkflows()
       at MIMConfigDocumenter.MIMServicePolicyDocumenter.GetReport().
    MIMConfigDocumenterLog Error: 40000 : MIMConfigDocumenter (1.17.0522.0): 06/28/2017 10:52:56.7268: Exception in 'MIMServiceConfigDocumenter : GetReport'. Details: System.NullReferenceException: Object reference not set to an instance of an object.
       at MIMConfigDocumenter.MIMServicePolicyDocumenter.GetReport()
       at MIMConfigDocumenter.MIMServiceConfigDocumenter.ProcessServicePolicyConfiguration()
       at MIMConfigDocumenter.MIMServiceConfigDocumenter.GetReport().
    MIMConfigDocumenterLog Error: 40000 : MIMConfigDocumenter (1.17.0522.0): 06/28/2017 10:52:56.9920: Exception in 'MIMConfigDocumenter : GetReport'. Details: System.NullReferenceException: Object reference not set to an instance of an object.
       at MIMConfigDocumenter.MIMServiceConfigDocumenter.GetReport()
       at MIMConfigDocumenter.MIMConfigDocumenter.GetReport().

    Wednesday, June 28, 2017 8:31 AM
  • Fantastic tool!

    Well done to the team for this one!!

    • Edited by Shim Kwan Wednesday, June 28, 2017 8:33 AM
    Wednesday, June 28, 2017 8:32 AM
  • Obviously, you downloaded the wrong zip for v1.17.0610.0. You downloaded source code zip. And the version you are actually running v1.17.0522.0 was reported to have that issue. Download the correct zip for the latest version that fixes it and many more. 
    Wednesday, June 28, 2017 12:09 PM
  • Thank you. It was our error, the latest sources compiled OK (only 68 warnings!) and work well.

    One problem, we get a nice report but we also receive several errors in the ErrorLog.

    They are all the same kind of error. An example is:

    MIMConfigDocumenterLog Error: 40000 : MIMConfigDocumenter (1.17.0610.0): 06/29/2017 09:59:38.6281: Column 'Bound Object Type, Bound Attribute Type' is constrained to be unique.  Value 'User, Company' is already present. Data Row: User|<a class="Added" href="#_1031549184">User</a>|Company|<a class="Added" href="#_1858373292">Company</a>|False|Added|<a class="Added" href="#_1031549184">User</a>|<a class="Added" href="#_1858373292">Company</a>|   at System.Data.UniqueConstraint.CheckConstraint(DataRow row, DataRowAction action)
       at System.Data.DataTable.RaiseRowChanging(DataRowChangeEventArgs args, DataRow eRow, DataRowAction eAction, Boolean fireEvent)
       at System.Data.DataTable.SetNewRecordWorker(DataRow row, Int32 proposedRecord, DataRowAction action, Boolean isInMerge, Boolean suppressEnsurePropertyChanged, Int32 position, Boolean fireEvent, Exception& deferredException)
       at System.Data.DataTable.InsertRow(DataRow row, Int64 proposedID, Int32 pos, Boolean fireEvent)
       at System.Data.DataRowCollection.Add(Object[] values)
       at MIMConfigDocumenter.Documenter.AddRow(DataTable table, Object row, Boolean vanityRow)

    Thursday, June 29, 2017 7:36 AM
  • First, again, you can choose to compile the source code if there is concern with downloading the precompiled exe or you can use the precompiled exe available for downloaded at It's really up to you. If you do choose to compile the source code, then the familiarity with Visual Studio and C#.NET is expected. Hence no instructions on how to compile the source code.

    The "Binding Summary" section table expects display name combination for 'Bound Object Type, Bound Attribute Type' to be unique. Looks like you have duplicates for User - Company and such... You can check the "Bindings" section and see why they are duplication. If there is any genuine reason for them to be duplicate, you can ignore the error. If not, you remediate your FIM/MIM deployment.

    If there is any genuine reason for them to be duplicate and hence this is to be treated as a bug, please log an issue on the GitHub.

    Thursday, June 29, 2017 12:38 PM