Mark,
I found that centering the Pivot didn't always do what it was meant to do, that is make it so that when the copied railing that only has the lower rail is shortened it does the shortening from both ends.
The following script will work on a railing that has its pivot at the end. It only works on one railing at a time but requires no user input. You can edit the value for the rails to meet your requirements.
-- creates a clone/copy of a railing that has a lower rail 2" shorter than
-- the main rail and then moves the copy 1.0 in local x.
-- LRM 2/26/2019 v1.0
$.Top_Rail_Profile = 1 -- round
$.Lower_Rail_Profile = 0 -- none
$.Post_Profile = 1 -- round
$.Fencing_Type = 1
$.Picket_Profile = 1
$.Lower_Rail_Profile = 0
actionMan.executeAction 0 "40213" -- Edit: Clone
maxOps.cloneNodes $ cloneType:#copy newNodes:&nnl
select nnl
s = $.Railing_Length
$.Top_Rail_Profile = 0
$.Lower_Rail_Profile = 1
$.Post_Profile = 0
$.Fencing_Type = 0
toolMode.coordsys #local
$.Railing_Length = s - 2
move $ [1.0,0,0]
clearSelection()
lee.minardi