Release Notes for JRButils for Micro Focus v25

Changes to Individual Programs

Delobj

  • Added more sanity checks to avoid accidental deletion of unintended objects. Volume and server objects may not be deleted. Attempts to delete objects such as [Root] and [Public] are detected and disallowed.

Fsupdate

  • Modified /w to allow it to specify copying directory quotas and/or all volume quotas on a volume. Volume quotas may be copied from one Micro Focus volume to another, or from one Windows volume to another. Currently, copying volume quotas across platforms is not supported.

Getname

  • Fixed an issue when using /c to specify text to appear between attribute values, and getname automatically inserted %objectName as the first field, it was inserting a field width for %objectName when it should not have.
  • Modified so that when displaying values for selected attributes, and using /q to alter the format, /v may be also used to suppress the attribute names.
  • Fixed an issue where no values were displayed when using /a=* and /q.
  • Added /b=m to allow a line of output to be produced for every value of a selected attribute. The default is the first attribute, not counting the object name, but a number may follow m e.g. m3 would use the 3rd attribute. This provides a means of displaying values for a multi-valued attribute in a form where they can be saved, edited and returned to eDirectory via setname.
  • Fixed an issue where using %group to display the group name when processing all members, was no longer being accepted.
  • Added %ctnr to represent the container of the starting object e.g. staff.abc from .*.staff.abc. When starting from the top of the tree, the value will be [Root].
  • Fixed a longstanding issue where it would not display properties of [Root], instead trying to process objects immediately under [Root].

Getquota

  • Fixed an issue where it failed to verify a path given as an eDirectory volume object only without a colon appended.
  • Fixed an issue where it was failing to display quotas at a volume root under OES 2015 onwards.

Getrest

  • Fixed an issue where it could produce an application error on exit after retrieving values for GroupWise 2014 onwards.
  • Fixed an error where it did not filter correctly on date and times when using ‘gt’ and an incomplete time was given e.g. 23-Aug-2018:18:30.
  • Modified the heading when filtering on a date and time, so that the filter date is displayed in the output date format (the default or that specified via environment variable JRBDATETIME), instead of as specified on the command line, which may be something like “today-4”.

Groups

  • Fixed an issue when saving the output to a file, with “In columns at required widths” selected, only the first column was saved.

Grpdel

  • Fixed an issue where it could incorrectly report that a user was a member of a group via nested groups, when it was not directly a member of the group.

Grplist

  • Fixed an issue where names containing ‘&’ were not enclosed in double quotes, when using /z to list the members as a series of commands.
  • Modified to remove escaping backslashes in names when producing adgrpadd or adgrpdel commands.

Gwgroups

  • Added the ability to set various fields for group members as per gwusers, via parameters of the form vb=2. Setting fields which hold user specific values such as preferred email address is disallowed.
  • Added value descriptions for allowed address formats, and address format back into the in-built help. These had been lost when /u and /r were retired in favour of parameters gb= and gc=.
  • Retired /w for setting group visibility. This has been superceded by command line parameter lv=.
  • Added the ability to display gateway aliases under GroupWise 2014 onwards.
  • Updated to display new proxy fields “rules” and “folders” under GroupWise 18.

Gwusers

  • Fixed an issue introduced in v24, where it no longer displayed the totals line giving the domain, post office and user counts when displaying multiple domains or post offices.
  • Fixed an issue where an application error could occur when creating a user in 2014 onwards, and creating an association in the same command.
  • Added the ability to display gateway aliases under GroupWise 2014 onwards.
  • Added the ability to add, remove and modify proxies.
  • Updated to display new proxy fields “rules” and “folders” under GroupWise 18.
  • Corrected an oversight where /q was ignored when creating or removing associations, and when renaming users.

Jrbimprt

  • Modified to ignore the uniqueDomainID attribute when copying attributes from a template. This appears to be part of DSfW and can only be set by the system, which resulted in an “insufficient rights” error.
  • Fixed an issue where it failed to recognise that a user did not exist on GroupWise 18, due to a change in the default format of REST responses from the server.
  • Added option ‘w’ to control statement “Random password type” to produce random passwords compliant with Windows password complexity requirements in terms of characters included, and not including the entire CN, given name, surname, full name or display name, or any component of three or more letters in any of these attributes.
  • Added option ‘p’ to control statement “Random password type” to produce random passwords compliant with the applicable password policy. If the password uses “Novell syntax”, then the resultant password complies with the following:
    • Password length from the policy
    • Characters allowed
    • Minimum and maximum numbers for each character category if set
    • Illegal first and last characters
    • Maximum times a character can be repeated
    • Minimum unique characters
    • Maximum times a character can appear consecutively
    If the policy is set to use Windows password rules, then the password meets the Windows complexity requirements as per “Random password type=w”.
  • Added control statement “Process GroupWise users only” to supercede “Process GroupWise 2014 users only” now that GroupWise 18 is available. The latter statement will continue to work for both GroupWise versions.
  • Modified jrbimprt to run without the presence of the Client for OES Enterprise Server when using “Process GroupWise users only”.
  • Modified to allow disassociating users, publishing email addresses and synching changes without the presence of the Client for OES Enterprise Server. Creating an association requires the client because the eDirectory guid must be retrieved.
  • Fixed an issue where specifying a full GroupWise name in the data file did not override a post office and domain given via control statements.
  • Fixed an issue when creating external users under GroupWise 2014 onwards, it was not working correctly when the post office and domain appeared as separate fields in the data file.
  • Added the ability to set gateway aliases for users and external users under GroupWise 2014 onwards.
  • Fixed an issue where it could under some circumstances fail to start reporting the Client for OES Enterprise Server was not installed and a “GroupWise Admin Service” control statement was required.
  • Fixed an issue introduced last year where it was incorrectly dealing with nested groups assigned to a template object. It was assigning membership to containing groups as well as the nested group.

Listobj

  • Modified to produce an error for names given in certain unrecognised formats which had previously been translated to a zero length string and hence [Root].

Makehome

  • Fixed an issue introduced a while back when resolving a change of API behaviour where it would incorrectly report that some paths were not in the allowed list.
  • Produced a new version of makehome for OES2018 which uses systemd instead of system V as per OES2015 and earlier, for the system startup and service manager. This required changes to makehome itself and to the installation procedure. Consequently two versions of the rpm for 64 bit OES Linux are now provided. They are:
    makehome-sv-1.0.34-1.x86_64.rpm for OES2015 and earlier
    makehome-sd-1.0.34-1.x86_64.rpm for OES2018
    The start/status/stop commands using /etc/init.d/makehome can still be used on OES2018 but systemctl should be used instead. After installing makehome on OES2018 issue the following commands:

    systemctl daemon-reload
    systemctl enable makehome.service

    We have not had any success getting these to work via the install script. Useful commands are:

    systemctl start makehome.service
    systemctl status makehome.service
    systemctl stop makehome.service
    journalctl -u makehome

Mattach

  • Fixed an issue where it successfully authenticated to another tree, but nothing showed to this effect when clicking on “OES Connections..” in the OES client system tray program. The connection to the target server was not being retained.

Netcopy

  • Updated to allow copying all volume quotas from one Windows volume to another via /w.

Openfile

  • Fixed an issue introduced when adding support for processing multiple servers, where it could attempt to validate a path on the wrong server when the path was given in UNC format.
  • Fixed an issue created at the same time as above, where it failed for a file name without a path e.g. “openfile whatever.exe /d”.

Pwdpols

  • Updated to support the password syntax “Use Microsoft Server 2008 Password Policy”.
  • Corrected an issue where it failed to assume that the first parameter was a policy when the name included the “password policies” container.

Quotas

  • Fixed an issue where it failed to verify a path given as an eDirectory volume object only without a colon appended.
  • Fixed an issue where it was failing to display quotas at a volume root under OES 2015 onwards.

Salvlist

  • Fixed an issue introduced into the GUI versions in v23 where the initial directory was not set to the current directory when running salvlist from a drive mapped to an OES Linux or Netware server.

Schema

  • Added the ability to filter on attribute name e.g. /n=pwd*, when displaying the attributes for an object class.
  • Added /s to filter on syntax ID e.g. using /s=7 would display only boolean attributes.
  • Modified to display in the totals line, the number of attributes listed.
  • Added /m to filter the attributes displayed based on various properties. These include:
    a The attribute is associated with an auxiliary class
    g The attribute has a string value
    h The attribute is flagged hidden
    i The attribute is flagged synch immediate
    m The attribute is multi-valued
    n The attribute is not replicated
    p The attribute is flagged [public] read
    r The attribute is read only
    s The attribute is single valued
    v The attribute is not removable from the base schema
    w The attribute is flagged write managed
    x The attribute is flagged server read only
    z The attribute has size limits
    The properties may be combined and negated in the filter e.g. it is possible to list all single valued attributes flagged synch immediate.
  • Fixed an issue when using /a where attribute details were displayed for a pseudo-attribute such as “Password management” but were not displayed when also using /o because it is not assigned to any object classes.
  • Generally tidied the processing of pseudo attributes such “Password Management” and “[Entry Rights]”.

Setacl

  • Modified so that it should now correctly verify pseudo attributes added as schema extensions e.g. DirXML-AccessRun, without them being hard coded.

Sethome2

  • Fixed a cosmetic issue where it did not display the path correctly when adding rights to a newly created home directory, and the path contained extended characters.

Setname

  • Added the ability via /n to set multiple values for attributes holding object names. Previously, /n could be used only with attributes holding text values.
  • Updated so that /v=r works correctly with /n.
  • Added the ability to easily set values for multiple attributes in a single command using parameters in the form “givenName=Jan lastName=Smith title=Ms”.
  • Fixed a long-standing oversight where it was not accepting a value of “none” for date/time values.
  • Added /v=t which produces an identical result to /v=r, but achieves it differently. Both replace existing values for an attribute. /v=r issues a single request to the server to clear all existing values and to add the new value. /v=t performs these operations in separate requests. Both methods are equally valid, the first is more efficient. Setname originally issued two requests, but was modified after feedback had been received that this approach caused issues with the IDM connector. Recent feedback has indicated the opposite, so either approach can now be used.
  • Fixed an issue where it did not delete values, despite reporting that it had done so, when using an input file, with a name and multiple values per line, as indicated by /f and /n.

Setowner

  • Fixed an issue where it was not locating an eDirectory object from the lowest level of the path, when using an input file, and a new owner was not provided.
  • Fixed an issue where a blank line in an input file could cause an error reporting an invalid date.
  • Fixed an issue where it failed to validate paths from an input file containing extended characters in the parts 2 and 5 versions.

Setpword

  • Added /g=w to produce random passwords compliant with Windows password complexity requirements in terms of characters included, and not including the CN, given name, surname, full name, display name, or any component of three or more characters in the values.
  • Added /g=p to produce random passwords compliant with the relevant password policy. This is equivalent to “Random password type=p” for jrbimprt. More information is given above.
  • Combined /c (retain the current password expiration date), /$ (update the password expiration date) and /t (expire universal password when changed by an admin) into options under /c to free up /t for a new use.
  • Added a new /t allowing a password policy to be named. This may be used with /g=p to have the password comply with a policy where one has not been assigned, or to comply with a different policy to that assigned.

Setrest

  • Fixed an issue introduced last year where it would not allow setting a value for grace logins remaining larger than the current value. It was comparing the new value with the current, instead of the value for grace logins allowed.
  • Fixed an issue where it could produce an application error on exit after setting values for GroupWise 2014 onwards.
  • Fixed a recently introduced issue where it trimmed trailing spaces from lines in a time restrictions file and could then report errors that the lines were too short.

Sparse

  • Fixed an issue where paths containing extended characters in an input file, were handled incorrectly in the parts 2 and 5 versions.

Trstlist

  • Fixed an issue where an error resulted when specifying a semicolon only as a value for /w.
  • Fixed an issue with displaying trustees for [Root].
  • Changed /u which forced output of DOS paths to /w=k.
  • Added the ability to retrieve and display trustees from the ._NETWARE\.trustee_database.xml file at the root of each volume. This requires S rights to the volume.
  • Added the ability via /u to compare trustees in the above XML file with those stored in the individual file and directory entries. Using /u=x will read all trustees in the XML file and ensure there is a corresponding trustee retrievable via NCP. Using /u=n will retrieve trustees for the specified files and directories, and for each, ensure there is a corresponding entry in the XML file.
  • Fixed an issue when using /r with Linux versions of trstlist, where it did not correctly display a trustee for [Public]. This is a pseudo-eDirectory object and as such, does not have a guid. But it is assigned a guid for this purpose which trstlist now recognises and translates to [Public].
  • Added the IRF as a separate output column, so it can be displayed with file or directory trustees, without having to use /t which produces a separate line to show the IRF.
  • Fixed an issue in the GUI versions where it was not possible to display trustees for files only without it also including trustees for the starting directory.
  • Modified the GUI versions so that fields for primary and secondary sorting are selected from a drop down list instead of radio buttons.
  • Added /o=container allowing trustees to be displayed for container objects whatever their class.
  • Modified the GUI versions so that the object class combo box remains visible when “Path or file” is selected. The trustees being displayed may now be filtered by object class.
  • Added a check for /b and /m that one of ‘a’, ‘c’, ‘i’, ‘r’ or ‘t’, which determine the type of command produced, is present.
  • Fixed an issue when producing adsettrust commands via /b=a and ‘j’ was also used to grant non-propagated GR+GE permissions to parent directories, it was incorrectly granting the non-propagated rights for a trustee granting zero rights.
  • Added /b=e for use when producing adsettrust commands, to ignore trustees granting no rights, if the trustee had no rights to the parent directory, i.e. the trustee was superfluous.
  • Fixed an issue where it may not process the correct server when using an input file of object names, and a volume was specified on a server other than the current server.

Usergrps

  • Updated to work with template objects as well as users and groups.
  • Added /o allowing the object class (user, group or template) to be specified. This is only necessary when using wildcards in the object name for non-user objects.

Whodidit

  • Combined /h, /i and /r which are all path formattng options into a number of options under /h.
  • Added a new /r to expand DFS paths. Previously a DFS junction was displayed as a file and values for files and directories in the DFS path could not be displayed.
  • Added /r=d to allow displaying of actual paths in a DFS link, rather than treating them as part of the directory being processed.
  • Changed the default width of the creation, modification and archive dates from 22 to 24 for Linux versions to accommodate the wider date format when using JRBDATETIME=LOCALE.
  • Added two letter codes for all of the output fields, to avoid having to use letters such as ‘(’ and ‘{’. Either the one or two letter codes may be used. A consequence of the change is that a sequence of single letter codes, if used, must be comma separated e.g. /o=a,b,c. This does provide a work-around to the obscure issue of (e.g.) /o=@o being treated as a template when the intention was to display the full DOS path and owner.
  • Modified so that the path formatting options now under /h are applied to DOS paths when displayed via /o=dp.