Fixes and Enhancements - UnitySync

Created: 2019-08-20 11:39:38
Modified: 2023-12-06 10:13:58
Tags: UnitySync Release Notes Install Guide

UnitySync v4.6

  • [r3172] Enhanced shell.exe options:
    New parameter, - -conn required (multiple allowed)
    Updated usage output.

  • [r3165] Switched discovery in o365 to iterative by gathering GUIDs first then searching on each guid.

  • [r3167] Added url to 404 & 500 errors in UI

  • [r3163] Increased check_lock (o365) timeout from 15 to a 60 count.

  • [r3161] Switched o365 group membership detection to use guid instead of identity or dn.

  • [r3157] Removed cleanup of temp files used in o365 discovery

  • [r3156] Removed attribute lists from discovery of o365. With the new get-exorecipient command it doesn’t seem to make a difference speedwise.

  • [r3154] Completely rewrote o365 discovery to use exo native functions.

  • [r3152] Switched to get-exomailbox

  • [r3150] Added o365iterate=yes to fix issue with Microsoft not honoring -resultsize unlimited for get-user & get-mailbox This should be removed once Microsoft fixes this issue.

UnitySync v4.5

  • [r3145] Enhanced level 5 logging for ldap connection errors
  • [r3143] Enhanced level 2 logging for o365 exception handling on Add when a Guest Account already exists.
  • [r3141] Enhanced handling of o365 delete error ADServerSettingsChangedException. The object will not be deleted from connections database. Attempts will be made on each run until the delete is a success or true fail.
  • [r3136] Added openldap 2.6.4 Updated setup lib to openssl-1.1.1t
  • [r3126] Updated o365.ps1 to only run windows commands on windows.
  • [r3121] Updated Windows version logging as well as platform.
  • [r3114] Made change to optimize o365 discovery
  • [r3112] Fixed locking issue when reading pwsh stderr.
  • [r3108] o365 shell now captures pwsh error messages
  • [r3107] Expanded error messages if there was a problem launching pwsh.exe
  • [r3106] Removed AD-o365 group sync mapping. No longer supported. Added powershell debugging logs to connection directories. File names begin with pwsh-
  • [r3103] Added CGI test.bat file
  • [r3100] Fixed syntax issue with commands like set-contact in o365 that use the “-Confirm” option
  • [r3098] Fixed issue with console logging in UI not refreshing
  • [r3097] Fixed bug in ldif-o365 Cannot process argument transformation on parameter ‘ExchangeEnvironmentName’
  • [r3096] Removed un-needed unblock commands for o365.ps1. Ensured that all powershell calls now use pwsh.exe instead of powershell.exe
  • [r3093] Improved on o365 file lock checking for running
  • [r3092] Improved file lock checking for powershell in linux - Removed legacy memwatch debugging
  • [r3090] o365 Tests were running old powershell.exe which has been switched to pwsh.exe
  • [r3088] Fixed o365 startup environment error.
  • [r3086] Updated o365 query for groups for unlimited members
  • [r3085] Clened up javascript in UI. Dialogs are now where they
  • [r3084] Fixed memory leak in UI, caused browser to crash.
  • [r3082] Added new o365 discovery parameter list-opath-filter to narrow group discovery
  • [r3081] Made newline unix vs dos on CSV output to be
  • [r3080] Updated SMTP functions, Removed sendmail option (Not used), Changed types of encryption: Plain/TLS/StartTLS
  • [r3069] Windows code signing is done for all exe & cgi files.
  • [r3067] Finialized/Tested smartmods (ldap destination smartmods=yes)
  • [r3060] o365.ps1 will now disconnect EXO on error
  • [r3058] invalid id/pw error now correct for o365 when run in shell
  • [r3057] Set autocomplete off for ldif fields in UI
  • [r3056] Change o365srcuri & o365dsturi to o365srcenviron & o365dstenviron
  • [r3055] Changed over powershell to pwsh for v7
  • [r3050] Added extra error reporting the ExO start session stuff.
  • [r3049] Cleaned up global sourcedef files
  • [r3048] Removed syntegra
  • [r3047] Removed icl directory
  • [r3046] removed communigatepro
  • [r3045] Removed compaq
  • [r3044] Removed Zimbra
  • [r3043] Removed imail
  • [r3042] Removed appleopenldap
  • [r3041] Removed exchange 5.5
  • [r3040] Removed support for Lotus Notes
  • [r3034] Fixed bug where escaping of a dn component was
  • [r3032] Set ui-themes to “default” of redmond
  • [r3030] Fixed possible bug in objectclass matching in join
  • [r3017] Release v4.1.0

UnitySync v4.1

  • Add: new mapping which encodes value to base64 Example: usercert=^mycert#b64^
  • Add: new requirement for JOIN ONLY connections. On JOIN only connection and if using a custom object map file, the map file must include a DN mapping (on Sync, the Destination DN is NOT actually affected). Recommend: dn=cn=component0,~struct~. Although not required, we recommend the use of Modify Attribs.
  • Add: msepoch function to eval.js
  • Add: Join Multiple Match is no longer a hard error (won’t stop Batch on Sim)
  • Add: enhanced level 2 logging for joinquery and dstdn data [30844].
  • Add: enhanced sync to O365 handling of “already exists” errors. Soft links to previously synced objects can now occur in the event of either errors [30937]: TaskException: There are multiple recipients matching identity and ProxyAddressExistsException: The proxy address "smtp:joeSmith@abc.mail.onmicrosoft.com" is already being used by the proxy addresses or LegacyExchangeDN of "joeSmith@abc.com".
  • Add: simulation run during batch will no longer halt sync on multiple match.
  • Add: enhanced logging for DB error 19 object.joinquery and object.dstdn
  • Fix: bug in O365 Fixed get-mailbox call
  • Fix: modified O365 discoveries to use non-exov2 commands due to EXOV2 commands not discovering all attributes
  • Add: override to disable default discovery of O365 Group membership
  • Fix: O365 discoveries which returned unexpected results when changing from Basic Auth to EXOV2
  • Add: logging change - “join match” changed to “join rejected”
  • UI Fix: when New button is pressed it does not revert to landing page before presenting dialog
  • UI Fix: where Destination O365 test button would error invalid id
  • UI Fix: for problem with O365 connection tests
  • Fix: to place powershell.pid in the proper connection directory rather than bin
  • UI Add: a close button to console view
  • UI Fix: allowing escape to work reliably
  • Add: on install allow “everyone” full access to global and connections
  • UI Fix: where cafile was still a part of javascript in UI
  • Add: O365 override of default Group discovery gen-memberof=no
  • Fix: issues in logic where join port 3269 was not used if the destination port was 636 (but not defined)
  • Fix: updated matching of objectclasses for joins so only matches last value of entry’s objectclass
  • Add: internal function for referencing the last value of a multi-valued attribute
  • Fix #30639: issue with string_split was causing random crashes.
  • UI Fix #30638: Sync Monitor was returning invalid json
  • Fix: several bugs related to object class handling as well as dn normalization
  • Add: O365 EXOv2 support works in linuxwith SSL_Library_init issues (debian 10): sudo pwsh  “Install-Module -Name PSWSMan -Scope AllUsers”
  • Fix: dirweb issue where gsuite auth was returning ‘unknown’
  • Add #30341: UI Email Notification added option to email log files (per connection)
  • Fix #30160: delete structure no longer happens if delete is set to ‘disable’. The attempt will be ignored.
  • Fix: bug where shell.exe will crash if an invalid connection directory is given
  • Add: enhancement in O365 config. Added config.txt overrides o365dsturi and  o365srcuri to override the default URI for O365 connections used in o365.ps1
  • Add: update dnhashgen UI to match dest LDAP for ports/ssl etc
  • UI Fix: for closing console log window in UI
  • Fix: reverted LDAP to include posts in UI

UnitySync v4.0

  • Add: all custom map/sourcedef files are logged at level 2, Std stuff at 3
  • Fix: removed linewrap from console viewer in UI
  • Fix: bug where ldap-ldif would crash if source IP is left blank
  • Fix: large console issue, now only the last 16k bytes are shown
  • Fix: removed javascript caching from dirweb
  • Fix: issue with missing CGI files from linux build
  • Add: button to request a license key which will compose an email to keys@dirwiz.com
  • Add: new feature - logview.cgi UI Action (Disc/Sim/Sync) to view console immediately. This window may be closed and re opened; displays tail of console.txt
  • Add: the full content of eval.js is now logged at level 3
  • Fix: updated shell’s console writing to flush buffers on every write
  • Add: enhanced google auth token issues; re-added curl https support
  • Fix: code cleanup removed some case sensitivity internally
  • Add: new feature - if jsexclude=yes in config.txt the (internal) javascript
  • Add: new feature - if jsexclude=yes, function exclude() will be called to test for exclusion
  • Fix: removed –unorphan from the shell help text
  • Fix: changed logic on check_lock to retry if permission denied for 30 seconds
  • Fix: o365 powershell script cleanup; powershell.pid is now removed
  • Add: will not run if powershell is less than v5.1 (needed by exov2)
  • Add: support for EXOv2
  • Fix: issue with ldif-o365 hanging when trying to launch powershell
  • Add: logging of o365.ps1 at log level 4 for debugging
  • Fix: possible bug in lock file timing with o365
  • Add: new map files for gcontacts/gquite - adam connections
  • Add: support for o365, discovery of unified groups; unified groups & distribution groups are merged as one mass of “groups”
  • Add: new function uslog(‘text’,level) to javascript (default lvl 3)
  • Add: A comma separated list of host names/ip can be configured for all LDAP connections to act as a failover.
  • Add: revamped new connection dialog with new dropdown theme.
  • Add: javascript function to pull attributes and variables (getsrc and getint)
  • Add: logging of PowerShell environment
  • Add: code to extract powershell environment data
  • Fix: for linux powershell
  • Fix: updated powershell script for exchange online powershell v2
  • Fix: issue with add/del/rename connections in the GUI (javascript issue)
  • Add: company name on launch of installer
  • Fix: removed browser check from installation scripts
  • Fix: removed old MSIE 8 browser check
  • Add: finalized GUI select menu UI upgrade
  • Add: updated all dialog window positions to fit new API
  • Fix: issue with shell on linux clients not reading the correct return code on exit
  • Fix: issue with linux odbc not checking /etc for config files
  • Add: if “sendmail” is used as the SMTP server in global options, sendmail delivery will be used instead of ip connections; this is applicable for linux clients
  • Fix: removed ldap-debugging option; was tagged as experimental
  • Add: updated with openssl 1.1.1 & openldap 2.4.50
  • Fix: issue with JSON decoding Unicode characters
  • Fix: bug where crash would occur with large ldif objects in o365 discovery
  • Fix: bug with key save on landing page
  • Add: button to request key to landing page
  • Fix: bug in lab key handling; lab keys no longer need directory counts in them (ignored)
  • Add: cyberark support to LDAP, o365 and ODBC connections
  • Fix: issue with ! in ldap search query
  • Fix: issue with multi valued attributes on search
  • Add: $PSVersionTable to Init response for o365 work
  • Fix: fetching of o365 groups to .txt files will always happen (as needed for memberof generation) however the group check box will honor if groups are written to ldif.txt
  • Fix: issue with extra checkboxes in source o365 tab
  • Add: o365 MemberOf - support for query filter on o365 Discover
  • Fix: changed Group member attribute to a DN rather than an identity
  • Add: enhancements for linux UnitySync - o365 Discovery/Sync now supported
  • Fix: bug where unorphan not recognized
  • Add: switched windows platform to call local aes256 on builds
  • Fix: issue with shell not correctly recognizing a connection name
  • Add: enhanced shell.exe cmdline options and help
  • Fix: syntax error in key
  • Fix: issue with decryption of release dates. Enhanced the code to prevent a crash in the future
  • Add: o365 - AD User map file

UnitySync v3.0

  • Add: UnitySync Install file and all executable files: all code signed to properly identify DirWiz distribution (should help prevent false positive with virus checker)
  • Add: LDAP StartTLS functionality. In UI, added StartTLS option to SSL drop-down
  • Add: support for Discovery of GSuite (Users or Contacts)
  • Add: support for Sync to create GSuite contacts
  • Add: unorphan will delete ALL objects (users, groups, and contacts) in the destination Sync Container. Log Orphans now creates file with list of DNs only; this file can NOT be used with ldifde to delete orphans.
  • Fix: “Process lists as:” to “Process lists:”
  • Fix: enhanced o365 powershell calls to reset connection after 1 hour of use (fixes timeout reAuth issue)
  • Fix: issue where the UI delete of a connection (in a directory) would remove the entire directory.
  • Fix: removed destination azure maps; sync to Azure no longer supported
  • Fix: updated Azure maps (Azure Discovery sync to AD only)
  • Fix: issue where a crash would occur if a custom display name were selected but no mapping syntax entered.

UnitySync v2.x - all minor versions

UnitySync v2.9

  • Add: ‘Hidden’ option on O365 Source tab
  • Add: enhanced O365 discovery and file merge functions
  • Add: improved speed of O365 Discovery (JSON)
  • Fix: retired Groupwise templates and instructions
  • Fix: crash when a bad connection name is used
  • Fix: crash which occurred when Console logging level set to 3-Detailed or higher and connection run initiated from UI
  • Fix: issue when O365 Discovery logged Contacts when only Users were selected on Source tab
  • Add: support for RHEL in Linux version of software
  • Fix: crashing on LDIF write entry when running in background
  • Add: updated CGI programs to the new CGI error handler
  • Add: output of extra status files in each connection directory to show errors & stats from last run (for disc-, sim-, and sync, -stats.txt and -error.txt)
  • Add: enhanced logging to optionally write console output to console.txt in the connection directory
  • Fix: bug with PostalCode attribute not being set in O365
  • Fix: removed extra double quotes not needed for escaped parameters for powershell commands
  • Fix: bug in O365 powershell commands (for example, some hard coded parameters like -name are now escaped
  • Fix: cleaned up logging functions to use static memory rather than dynamic to potentially reduce memory leaks
  • Fix: issue with rogue powershell processes (for example, if a UnitySync process gets killed leaving the powershell process still running, it is detected using powershell.pid in the connection directory)
  • Fix: issue with ldif-o365 where delete/add was not recognized correctly.
  • Add: helper eol script for DNS servers
  • Fix: changed handling of Database UNIQUE constraint failed error as as a non-error for Run/Error Summary purposes
  • Fix #663: issue where disk space checking occurred on stderr; if the console is run in background the error gave a false positive of no disk space
  • Fix #661: issue where source index changes on a Join does not write to the database properly resulting in a permanent constraint violation; this will take 2 syncs to work its way through
  • Fix #662: typo in configuration html templates for dnhashgen dropdown

UnitySync v2.8

  • Add: Disk Space Error-checking - On Discovery, check diskspace on write to ldif.txt. On Disc, Sim or Sync, abort on detection of loss of adequate disk space.
  • Fix #657: eval.js was mishandling a parameter value which contained a backslash (\) but only when run via shell.exe. Correct value resulted when run via UI. Fixed by making case irrelevant and changing any backslash to forward slash to match UnitySync’s connection naming convention.
  • Add: removed “Both” option for Source CSV quote option (does nothing).
  • Add: improved memwatch to avoid memory leaks
  • Add: added display-parse-badchars config parameter. Specified characters are stripped from ~cn~ displayname before display parsing runs. Example syntax: display-parse-badchars=‘(“)
  • Add: adaptive parsing now only uses first, initial & last name field for clues. Rank and gq fields are ignored and rely on tables
  • Add: modified the way fieldproxy-xxx works as an internal variable. Any Source value marked as “primary” (caps such as SMTP vs smtp) will get pushed to the top of the list
  • Add #641: field-hex for ODBC & CSV discoveries. This operates exactly like field-base64
  • Add #647: increased ODBC buffer to 1 megabyte/attribute on Discovery
  • Add: logging of shell.exe now returns errorlevel from sub-programs
  • Add: enhanced Discovery of O365. Source query format has been simplified allowing use of ‘ldap like’ syntax, so it no longer uses a powershell formatted query string. Existing connections must be modified.
  • Add: with enhanced Discovery of O365, the Discovery process now includes Discovery of ALL objects of specified type (Users, Contacts). Then these O365 records are filtered through the Source Query filters and finally, resulting records are merged into ldif.txt.
  • Add: Discovery of O365 Users has been enhanced to discovered and merge the following data types: getuser, get-mailuser, get-maibox
  • Add: changed multivalued separator from percentage sign (%) to a pipe symbol (|). Our internal separator changed to support O365’s use of pipe separator.
  • Add: in O365 Sync, name/id/dn field are required to be limited to 64 characters. This limit is now hard coded.
  • Add: updated all o365-person map files to remove “cn=” from the dn
  • Add: support to O365 Sync to handle a Delete/Add/Modify scenario
  • Add: additional logging on O365 Discovery

UnitySync v2.7

  • Add: Exchange 2016 is now supported
  • Add #607: shell now uses global SMTP to send notification email if there is a missing config.txt for the connection specified. This includes typo of connection name as well as config.tmp situation.
  • Add #621: sync to ODBC can now auto trim based on DB table definitions. Use optional raw config parameter: odbc-autotrim=yes. Default is no.
  • Fix #620: fixed LDAP discovery which was dropping one value (i.e. Member) for every 1500 in an Active Directory multi-valued attribute.
  • Add #573: experimental addition of status.html which displays status for all connections. Not yet an option in the UI. Browse to \status.html. (If using IIS, must add ‘status.cgi’). See https://www.dirwiz.com/kb/3058 for details.
  • Add #617: added option to limit log file attachment size on Notification emails. The default is: attachlimit= 5000000 bytes (5Mb).
  • Add #633: improved SMTP error messages in log level 3. Also, smtp.txt content is now logged at level 3.
  • Add: in Global SMTP settings, custom Port option box removed. Instead, add custom port after hostname i.e. MyMail.smtp.us:9800. Default still 25.
  • Add: syncs will now indicate ‘End Of Life’ outputting message at the end of the log. This tells the user if their software version is EOL. Refer to latest: https://www.dirwiz.com/kb/348
  • Fix #610: disabling a user in Simulation will no longer ACTUALLY disable the user object.
  • Fix #454: simulation no longer miscounts ADDS on Move/Mod.
  • Add #580: support modify of Destination password of existing user (unicodepwd)

UnitySync v2.6

  • Fix #602: improved speed of UI when dns is mis-configured
  • Add: new logo and header image in UI
  • Fix #509: each process may write to config.tmp and if file length of config.tmp is zero (symptom of critical disk space) it will not be renamed to config.txt
  • Fix #566: Log File level 2 - file size logged (i.e. ldif.txt)
  • Fix #591/597/598: enhanced O365 sync to include more attributes (i.e. CustomAttribs and Phone)
  • Fix #592: crash when O365 sync tried to modify missing Destination contact (bad pointer in handling mod errors)
  • Fix #593: issue where custom list mapping would not appear correctly if the Destination type was incorrectly formatted (i.e. O365)
  • Fix #519: issue if sourcedef name (nameparts) has the wrong number of commas
  • Fix #470: issue if map file missing ~struct~ in DN caused crash
  • Fix #391: delete structure attempted even if ignore delete is set
  • Fix #590: issue where data with linefeeds was corrupting javascript
  • Add: function strip_lf to eval.js (strips linefeed)

UnitySync v2.5

  • Add #586: added support for Azure Discovery (not Sync)
  • Add #585: ODBC/CSV raw config parameter field-base64. This is a comma-delimited list of Source columns to be treated as containing base64 data. This allow the discovery ldif.txt to prefix the attribute with a double colon. This was added to allow the use of JOIN with the Destination ObjectGUID i.e ldif data from CSV/ODBC: ADObjectGuid:: yHY5FkXeL0SlID1shGqgRw== Join Query: (ObjectGUID=^ADObjectGuid^)
  • Add: support to Discover/Sync O365 Groups as Groups (WITH membership)
  • Fix: issue with already-exists (recovery mode) when syncing to O365.
  • Add: increased ODBC discovery buffer size from 2048 to 8096bytes for each attribute value discovered.
  • Fix #575: shell command converts engine to lower case to solve case sensitivity issue with Linux.
  • Add: support for all foreign characters being synced to O365. This also includes special characters: new line etc.
  • Add #570: NULL is now a valid option for searchmodebase (always returns true). This can be used with Destination GC’s with non-child domains in them. Also allows for NULL sourcecontext. New kb https://www.dirwiz.com/kb/3024 to explain the functionality.

UnitySync v2.4

  • Fix #555/#566: enhanced O365 discovery handling of O365 windowsemailaddresses attribute. UnitySync can now sync O365 emailaddresses to AD proxyaddresses.
  • Fix #553: replaced perl with javascript for custom mapping and eval functions. This fixes the issue with apostrophe in if/then/else statements.
  • Fix# 558: enhanced O365 discovery to allow limiting of attributes discovered via custom attribs= in sourcedef. Note: minimum Required attributes are
    • DistinguisedName
    • objectclass
    • primarysmtpaddress
  • Fix #539: enhanced licensing functions to uniquely identify installations in the absence of a required attribute. Fixes ‘Missing Volume ID’ error in Windows and Linux.
  • Fix #538: fixed issue with invalid object class with O365 discovery (in pre-releases v2.2.21 through 2.3.0)
  • Fix #549: enhanced orphan detection for faster performance
  • Fix #552: enhanced Recovery sync run for faster performance
  • Fix #540: issue where case sensitivity of config.txt entries caused entries not to fill in on the User Interface.

UnitySync v2.3

  • New Feature - Add: sync directly to/from Office 365
  • Add: support for Destination template/engine “O365” - To create contacts in a Destination Office 365 directory
  • Add: support for Source template/engine “O365” - To discover Users, Contacts, Groups from a Source Office 365 directory.
  • Support syncs to/from an O365 directory and any of the following other directory types: AD/Exchange, ADAM, Notes, ODBC, CSV, Groupwise, Netscape, OpenLDAP, O365
  • Removed obsolete activedir-activedir-contact (o365 sync)-person.txt
  • Fix #504: bug where UI would crash if license key expired in less than a day.
  • Fix #484: CA Cert configuration in Destination dnhashgen tab
  • Fix #483: ODBC and CSV Source connections were not successfully handing spaces/special characters in Source column headers. This has been fixed as follows: Column header names from ODBC & CSV will be filtered to be ldif compliant. Allowed character set on discovery of COLUMN HEADER values are now: az A-Z 0-9 and ‘-’ (dash). In a Source CSV/ODBC column header, any characters outside of this set are converted to ‘-’ (dash). Field Definitions and Custom map file column names must also show a dash.

UnitySync v2.2

  • Fix Heartbleed Vulnerability: updated openSSL to 1.0.1g which fixes the heartbleed bug
  • Add #338: ability to manually define internal variables per connection as intvars.txt (same format as config.txt)
  • Fix #472: Source SSL CA cert pull-down would not load
  • Fix #467: issue of DN’s containing foreign characters getting confused with orphans
  • Fix #468: issue with multi-valued separator in ODBC & CSV discoveries
  • Fix #446: error where log file would get corrupted if run from the UI, which only occurred in Windows versions
  • Add #482: mod-attribs now works for ldif-odbc
  • Fix #481: issue with dirweb checking port 8080 even if alternate port is specified
  • Fix #479: no-mod-attribs now works with ODBC Destination
  • Fix #471: UI crash on loading the connection when a line in config.txt started with a #
  • Fix: issue with Error log summary where it thought there was an error when there was none, resulting in all functions ending in error
  • Fix: issue with storing a blank value in a UI field (would not erase)
  • Fix: issue with CGI saving check-boxes

UnitySync v2.1

  • Add: 64 bit UnitySync (must run on 64 bit OS)
  • Fix #362: ldap-ldif would halt if run from UI in console log level 3 or higher.
  • Fix #358: SMTP send log now quietly exits if an SMTP server is not defined (no message is given)
  • Fix #360: loading issue where Destination engine type is ldif
  • Fix #355: issue where modrdn was not properly escaping the new RDN
  • Fix #356: added adaptive display name parsing support
  • Fix #359: issue where connection load would hang if the engine is not defined in config.txt
  • Fix #354: issue if addressbooks is NULL on Exchange Server discovery, an attempt to discover GAL will not be performed.
  • Fix #340: bug where function orphan logs its own placement DN
  • Fix #353: issue where field-nameparts was not being properly filled in when connection loads in UI
  • Fix #346: formatting issue with multiple processes running in process list in UI
  • Fix #250: issue where a discovery will now fail correctly when there is no more HD space
  • Fix #352: UI bug where SSL test would not work unless a cacert was specified
  • Fix #351: in the event of a DB error on a join the decoded join query will now be logged at level 3
  • Fix #350: specific to Notes, bug where a null context should be ignored if it is included in the Source context from a rootdse
  • Fix #347: issue where -person.txt custom map file caused an error in UI
  • Fix #345: issue where join queries (Destination LDAP) without labels were not being properly hidden
  • Fix #344: issue where “both” join was not appearing correctly on load, also found there was the same issue with dnhashgen forms
  • Fix #343: issue where connections in a sub directory were not showing up correctly in the UI process list
  • Fix #343: ODBC connection pulldown was not properly set on load on both Source & Destination
  • Fix #341: issue with missing libcsv.so.3 in Linux build
  • Add #251: added ability to download ldif.txt & export.txt from UI under the custom tab
  • Fix #330: in IE9+ if the compatibility view is clicked UI would treat as an invalid browser; new code forces compatibility view disabled (button should disappear)
  • Fix #334: issue in UI where csv-delimiter was being saved as c-csv-delimiter
  • Add #335: DirWeb now has 2 command line parameters: –help and a port number where you can override 8080

UnitySync v2.0

  • Fix #327: if the web server is down a more appropriate error will appear asking to refresh page and relaunch the UI
  • Fix #324: logging of orphans will only run on synchronization (not unsync or simulation)
  • Fix #323: added log orphans checkbox under the general tab in the logging section; this option ONLY appears if the Destination is an LDAP type
  • Add: orphan checking option to the Destination tab
  • UnitySync UI no longer will work on IE 6-8 and will now display an error
  • Fix #319: issue where comparisons of escaped dns against non escaped dns were not working; especially problematic when determining a move or modrdn
  • Fix #298: objectclass detection when choosing which objects to process from Source LDIF file. Fixes Ignored Objectclass error.
  • Add #298: enhanced functionality of matching objectclass in sourcedef; the list can now be a comma delimited list where all values must match the objectclass regardless of order
  • Fix #296: set the Email Notification log file attachment size to a maximum of 5MB
  • Add #311: “Unsaved Changes” popup to UI
  • Fix #299: Brought back modrdn=yes; all joined objects (join & create/join) can have their RDN’s renamed with this parameter turned on
  • Add: Linux platform support
  • Add: groups to ADAM sourcedef; discover groups and sync them as inetorgperson(s)
  • Fix #292: re-added swaptargetonly=yes functionality
  • Fix #295: crash with SMTP notifications
  • Fix #294: issue where dnhashgen parameters were ignored; also changed dnhashgen tmp file name from:ldif.tmp to:export.tmp
  • Fix #291: issue where a duplicate dstDN was not getting handled correctly
  • Fix #289 & 290: memory leak in ldif-odbc on adds
  • Fix #288: moved display name formatting after fix case code
  • Fix #287: issue with ODBC where last command was not processed
  • Fix #282: included dirweb.exe will display an error message if port 8080 is in use
  • Fix #285: test emails from individual connections had blank subject lines
  • Fix #284: issue where smtp notifications were not working after a connection is run
  • Fix #283: issue in shell in calling dnhashgen as ldif-ldap –dnhashgen rather than ldif-dnhashgen

UnitySync v1.x - all minor versions

UnitySync v1.9

  • Fix #266: updated shell so an Email Notification will be sent if connection already running; will send to both summary and error email addresses assuming the Global Email Notification is configured
  • Fix #257: moved join match to Log File level 2 (was 3) enhanced logging to show Source and found dns
  • Fixs #242 & #259: first couple of lines in log show which web server (dirweb.exe, IIS) is used as well as which EXE is run
  • Add: replaced \microweb\microweb.exe with \bin\dirweb.exe
  • Fix #267: non-issue, the custom eval.pl to use as of v1.8.0:
    my $temp=$_[0];
    utf8::downgrade($temp,true);
  • Fix #246: issue where after setting Source/Destination on new connections changing Source would reset Destination list and default to first item rather than the last one set (if available)
  • Fix #219: added closest match to LDAP dn verify functions in the UI
  • Fix #272: in new connections an ActiveDir Source can be defined as a CSV to handle special issues like proxyaddresses
  • Fix #239: exclusion test logging has been moved from level 3 to level 4
  • Fix #239: changed “Discovered DN” in LDAP discovery to Log File level 3 (instead of 2); this will greatly reduce Discovery level 2 log size on large connections
  • Fix #265: changed all object class checks to try and match only the last value when trying to determine person-object (OpenLDAP)
  • Fix #280: removed key check functions in shell.exe
  • Fix #264: bug where sync would halt if a ctrl character was found in ldif
  • Fix #278: issue with syncing foreign characters to groupwise
  • Add: cleaned up ldif wrapping; each line will be 78 characters long
  • Fix #271: issue where large binary attributes were causing a crash when written to LDIF on discovery (i.e. jpegphoto)
  • Fix #276: issue where key errors were not appearing in UI (i.e. expired, invalid, wrong s/n)
  • Add: in UI, moved Install Serial Number to top of info and made bold
  • Fix #275: UI to display more key information using
  • Fix #270: issue where create custom map template was not working in UI (this was a v1.8.1 issue)
  • Fix #274: instance where shell.exe would not work if connection names have a space in them
  • Fix #273: issue where current directory detection failed in CMD prompt if you were already in the bin directory (v1.8.14)
  • Fix #111 & #256: added orphan=yes config option. Writes to orphans.txt. This is an LDIF formatted file with changetype: delete which can be passed to ldifde (or other LDAP utils) to process the deletes external to UnitySync. Valid on a Create/Join, this function identifies as orphans ANY object in the sync container that is NOT joined to.

    NOTE: UnitySync does NOT perform deletes, but only generates a file. The file may be used to perform deletes at the end user’s discretion.

  • Fix #262: software was crashing if one of the nameparts was a single space; filtering (trim) has been applied to clean out leading/trailing spaces
  • Fix #260: updated groupwise discovery to not iterate domains & PO’s if there is a Source context for either; it will rather request the “item” directly. Improved domain/po iterator error checking for next object.
  • Fix #254: ldif-ldap was not updating srcdn in the hash, especially when srcindex is something other than DN (such as guid); two syncs should clean up all data and group memberships
  • Fix #195: connection monitor which was previously ignoring connections under sub directories; they are now properly displayed when running
  • Fix #234: run times in UI for ldif-ldap
  • Fix #245: SMTP test in UI had no way to specify an alternate port; added a port field to the UI. When blank, default is 25.
  • Fix #234: all displays of dates to be local timezone rather than UTC. Also lastdiscovery/sync/sim times now match the log file name exactly. Previously it was off by a few seconds.
  • Fix #255: added BOM check for import.txt in csv-ldif
  • Fix #233: issue with slash escaping RDN’s if the second character was a space the last character would be escaped
  • Fix: bug in SMTP delivery where software would crash if recipients were defined but no server.

UnitySync v1.8

  • Fix #231: Special Excludes no longer log as Errors; this allows a sync to continue after a discovery with special excludes
  • Fix #232: CSV Discovery was not applying Excludes
  • Fix #214: added to CSV export options a delimiter of: None
  • Fix #167: all date strings for lastsync, lastsim, & lastdisc are stored in UTC format; the UI converts these values to local date strings
  • Fix #225: single attribute that was {popped} from a Source record was not correctly being deleted Source entry value
  • Fix: trailing spaces/multiple spaces for rename/copy/create of connection
  • Fix #228: global SMTP send log checkboxes were not working correctly in UI
  • Fix #227 & 210: various Lookup bugs
  • Fix #225: bug where single attribute that was popped from a Source record was not correctly deleting the attribute from the Source entry
  • Fix #196: added global/support.txt. Adds message to the bottom of a log file. In this way the larger customer can customize a message which will appear in the log at the end of every run.
  • Fix #182: improved SMTP delivery; a message will be sent for each recipient when previously they were all lumped into the same to line
  • Fix #153: added option in Summary Emails (global) to only send summaries if an add/mod/del/disable event happens
  • Fix #161: no return code in eval.pl; improved perl error reporting. It now logs the message correctly rather than halting the program abruptly.
  • Fix #223: crash when space appears in hostname; LDAP fatal errors are now logged and US is halted correctly
  • Add: made DN matching for membership case IN-sensitive
  • Fix: DNvalidate setting in config now is being recognized correctly; this should validate all multi dnlookup type attribs
  • Fix #222: bug where UI would not load a connection with a double space in it
  • Fix #201: ALL discovery modules; if they have trouble renaming ldif.tmp to ldif.txt the error will be correctly logged and software will shutdown normally
  • Fix #206: code now correctly reports if long SSL subjects matches the host name
  • Fix #218: issue where LDAP move of an object was not properly escaped
  • Add: eventlog.exe to the build (and DLL’s) to make entries in the registry. General tab Event Level option.
    1: Disabled
    2: Lowest (Only Fatal Errors that halt a sync)
    3: Detailed (Return 1 & Soft error - mod error etc)
    4: Verbose (All, including No Error runs)
  • Fix #205: fix for Join only connections that do not work correctly with escaped dn’s
  • Add: gwmembers=no which will not discover group membership; by default this is yes
  • Fix #213: added join-use-gc=no this will force UnitySync to use the DC rather than the GC for join searches; with this set to “no” the joins will be limited to a single AD domain
  • Fix #215: sim issue where a move of an object incorrectly logged a delete of that some object
  • Fix #209: removed byte order mark checks on key.txt file which was leading to a failure to read the key properly
  • Fix: bug where the DN of the member of a list was not getting escaped
  • Fix #211: DN escaping for add and deletion of objects
  • Add: modified Notes sourcedef so it asks for all attributes rather than a list.

UnitySync v1.7

  • Fix #208: custom display names can now be entered in the field
  • Add: updated TM symbol to a registered trademark in web interface and installer.
  • Fix #204: updated dnhashgen UI to match advanced join configuration found in LDAP Destinations.
  • Fix: bug where shell.exe was calling ldif-dnhashgen where it should have been calling ldif-ldap – dnhashgen
  • Fix #207: Groupwise discovery would crash if a member’s NDS tree could not be contacted; added extra debugging to possibly prevent crashes
  • Fix #173: all OU’s created will have trailing backslashes removed.
  • Fix: bug where dn was over-escaped on deletion
  • Fix #194: Source context for ADAM/LDS was not auto-detected causing problems in syncing levels=all
  • Fix #205: Join to a Destination DN with a “\,” caused an improper escape and an accidental add. Improved searchmodebase for joins. ADAM destsubtree is now auto detected correctly.
  • Fix #203: issues where dbupdate was not set correctly when handling objectclass changes in a join.
  • Fix#203: in a join of the objectclass change is made in a map file a delete/add is processed.
  • Fix: removed dn_normalize from dn lookups in the map file
  • Fix#202: where dn tranlation ‘%’ variables were not working correctly.
  • Fix: a null pointer bug in treewalker for LDAP discoveries when the Source context is null
  • Fix: moved GroupWise Client build version detection to occur before trying to connect to GroupWise Server
  • Fix: Groupwise Client version build now logged. Found in registry hklm/software/novell/groupwise/build.
  • Add: level 5 for all gw calls to mod_object (ldif-groupwise)

UnitySync v1.6

  • Fix #107: –cleanlogs now will work with specified connection name(s)
  • Fix #188: if searchmodebase was blank the join would default to destsubtree for join searches; this has been removed, it will now set it to NULL to search the whole tree (if supported)
  • Fix #185: crash bug in ldif-csv where the concatenation of values caused a heap error
  • Fix #187: typo “Load Configuartion” to “Load Configuration”
  • Fix #186: the original list-search parameter was inadvertently renamed in some places to group-search; this has been fixed so all references are now list-search
  • Fix: bug in Groupwise discovery; if “Internet EMail Address” is not found and is defined in an admin field, the code will revert to the manual SMTP address generation routines
  • Fix #183: ldif-ldap bug where groups were not handled “as email addresses” properly
  • Fix: memory leak in treewalker and cares OEL check functions in ldap-ldif
  • Fix #184: ldif-ldap fixed bug where some attributes were not updated properly for group contacts
  • Fix #163: ldif-ldap eval.pl processing can now handle [multi] attributes
  • Fix #173: enhanced escaping of DNs to allow for special characters that were breaking add function in levels=all container creation (i.e. / ); the logic on escaping DN’s have changed–the only time DN’s are escaped is before an LDAP operation.
  • Add: enhanced Notes move function from delete/add to native LDAP move
  • Fix #178: appendmulti=proxyaddresses - The appendmulti config.txt parameter can be used to define those multi-valued parameters you wish to be designated as append only (rather than overwrite). An example is proxyaddresses… if a Destination contact is manually updated to include a proxyaddress (which does not appear on the Source record) that proxyaddress will not be lost when the Modify occurs.
  • Fix #181: ldif.tmp - Previously called temp.txt, the temporary ldif file (created during discovery) will now be called ldif.tmp. New to this release, if the Discovery ends with an error condition, in addition to throwing an error code, ldif.tmp will NOT be copied to ldif.txt. Instead, ldif.txt will remain from the last good Discovery run.
  • Fix #180: NULL value generated by multi-valued JOIN query
  • Fix: bug where crash occurred when multi-valued parameters in Join Query resulted in NULL value
  • Fix #175: added support for ignore-add for ldif-odbc
  • Fix #170: UI now disables the discovery check box and button if an alternate location for ldif is specified. In addition the discovery check box and button is removed if the Source engine type is ldif
  • Fix #171: removed option in UI to delete objects on join.
  • Fix #150: AD-User (Disabled) template added–this new template supports linked mailboxes across two forests. Refer to KB 1041 for more information: http://www.dirwiz.com/kb/1041
  • Fixs #177 and #174: Dest ODBC, ignore delete Updated dest-odbc template to rename variable from ignore-del to ignore-delete
  • Fix #176: bug in ldif-ldap where multiple Source contexts were not recognized and used when levels > 0
  • Fix #173: an issue if an OU contained a backslash with levels=all. The backslashes are now properly escaped
  • Fix #150: Removed getcredentials from mailbox-link.ps1 - UnitySync cannot call powershell.exe directly. The reason is that powershell needs a 64 bit environment to run the Exchange plugins and UnitySync only creates a 32bit environment. - mailbox-link now creates mailbox-link.bat into the connection directory which needs to be run after every sync. This should be done through the automation of the connection through batch files.
  • Fix #175: added support for ignore-add for ldif-odbc

UnitySync v1.5

  • Move: some error details to log level 2
  • Move: config parameters to log level 2
  • Fix: SMTP notifications which were going very slow on large log files
  • Fix: bug occurring when Destination structure had a comma in it
  • Fix: bug where Join Query for folder and list were checking incorrect fields
  • Fix: bug in the following map type: proxyaddresses=smtp:[allmail] This no longer leaves an extra blank line: proxyaddresses=smtp:
  • Fix: bug in Destination CSV where a single quote field delimiter would not work. In the UI “both” is not a valid option; the data must be delimited with either a single or double quote
  • Fix: filter all but SMTP addresses in proxyaddresses in the Post-Source entry, so only SMTP/smtp come over by default
  • Fix: updated join migration queries to only delete sourceindex & destindex if both have a value
  • Fix: bug in ldif-ldap create/join where change in Source index caused a delete/add or delete/modify; now, delete will not occur
  • Fix: bug in AD domain name discovery (does not work on GC only DC connections); this is used for resource forest solutions to get the prewin2k domain name
  • Fix: removed dynamic exclude templates; use create/join functionality
  • Fix: updated ODBC & CSV discoveries to add an object class to all records discovered (fixing bug that caused no objects to sync)
  • Fix: changed ldif-ldap join queries. For each object type on the Source there is a matching join query. Join-query, sourceindex & destindex are now deprecated. They have been replaced with: join-queryperson, join-query-person2, join-query-list, join-query-folder. The migration code for sourceindex/destindex & join-query will now copy into both join-query-person & join-query-person2
  • Add: enhanced JOIN capability. Source / Dest indexes have been removed. Always use Advanced Join now. Each Source object type has it’s own advanced Join query option. This allows Groups to be joined and avoid accidental join to Users, etc.
  • Removed sourceindex/destindex from Destination LDAP templates. Added code to get migrate configurations from sourceindex/destindex to advance join fields. Set search base default to match destcontext if search base is not defined in joins.
  • Add: extra attribute to LDAP discoveries. If objectguid is found, it will be automatically converted to hex and added as objectguidhex.
  • Enabled folder join capability. In previous versions if a folder was selected to be joined (with or without create) the object was ignored in the sync.
  • Fix: a large memory leak in the perl wrapper.
  • Fix #156: Added enhancement to UI landing page to show a warning if a version of IE < 7 is used. IE < 7 is not supported, interface disabled if IE < 7 is detected.
  • Fix #158 Updated INI file reads to support 8096 characters per line (fixes attribs= limit bug
  • Fix #159 bug in templates where template editor was causing a double scroll bar on object map files (etc) in IE7
  • Add: more debugging information to entry_write_ldif_strspecifically when the malloc & realloc calls fail.
  • Add: extra log level 5 logging on LDAP discoveries.
  • Add: updated sync programs to display a more accurate record count per second; the LDAP keep alive in sync mode is a bit more robust
  • Fix: ldif processing modules set error “Ignored: Object Class to Level 3
  • Fix: set all ODBC driver inits to NOPROMPT to disable any prompts from the driver (fixes ‘hang’ of test query)
  • Fix: bug in Source-ODBC template where error message did not point to the correct object
  • Fix #152 flaw in ADAM sourcedef. Objectclass had (s) appended to it by mistake
  • Add: DNS name of forest discovery function
  • Linked software using Windows XP Platform SDK
  • Updated microweb with correct permanent (not trial) license info

UnitySync v1.4

  • Add: logging for SSL troubleshooting. Actual certificated is dumped in PEM format as well as decoded in the logs (loglevel=3)
  • Fix: ODBC write issue (Essential); invalid precision error on inserts was the result of not setting NULL’s to empty fields
  • Add: logging for ODBC connections (loglevel=5)
  • Fix #149 where Custom group search LDAP query was ignored in ldap-ldif
  • Groupwise-ldif now performs discovery of Admin Defined fields
  • Add: logging for groupwise-ldif, now dynamically lists all admin defined fields (loglevel 3)
  • Fix #147: Destination where UI Index Field for ODBC was missing
  • Add: enhanced UI to detect javascript. If javascript is not found nojs.htm will be shown

UnitySync v1.3

  • Fix: problem displaying Destination tab DSN for ODBC Destinations
  • Fix: problem Discovering large distribution list membership
  • Fix: defaulted logging level to 2 on all upgraded connections

UnitySync v1.2

  • Fix: CSV Export problem
  • Fix: crash occurring on a null pointer when the ~cn~ is blank
  • Fix: issue with multivalues attribute mapping overwriting assignments on the same line

UnitySync v1.1

  • Fix: UI passwords encoding
  • Fix: UI pull-downs (i.e. List processing) which were not showing the saved values correctly
  • Fix: set defaults in UI for Destination LDAP: Process Deletes on Create & Ignore Deletes on Join
  • Fix: Source-ldif template where object selection labels use the sourcedef definition. UI now uses custom sourcedef for object selection labels
  • Add: ability to create custom folder maps (Posixgroup)
  • Fix: DN mapping which was pulling wrong variables
  • Add: DN look up ability to check sourceindex as well as sourcedn in the connection’s hash (Posixgroup)
  • Fix: problem with writing empty field-nameparts with commas, if the data is blank the entire field is now blanked out (no commas)
Share this article:
Knowledgebase

Directory
  1. Directify - Self Service

  2. Mimic - Replication

  3. UnitySync - Sync
Password
  1. emPass - Sync
Obsolete
  1. Profiler
  2. SimpleSync