It took some time but here you find the first try. I simply added a second Open function (_AD_OpenGC) to the Global Catalog. Everytime an existing object needs to be retrieved the GC is now accessed. You can change this behaviour by setting variable $bUseGC to True/False. All other functions access the DC opened with _AD_Open. You need to use _AD_OpenGC as described in the wiki for accessing the GC (means you need to provide the port number). As I can't test I'm sure there