Eu pesquisei bastante e até mesmo brinquei com backup-GPO
na esperança de poder hackear o arquivo XML resultante e reimportá-lo, mas suspeito que um script do PowerShell esteja no seu futuro.
Não é tão ruim assim. Você pode gerar a lista de impressoras a partir do servidor mais próximo e, em seguida, percorrê-las e mapeá-las.
Algo parecido com isto:
$net = New-Object -COMObject WScript.Network
$printserver = 'yourserver'
$printerlist = Get-WMIObject -class Win32_Printer -computer $printserver | Where-Object {$_.ShareName -ne $null} | Select-Object ShareName
foreach ($printer in $printerlist)
{
$printerpath = '\' + $printserver + '\' + $printer.ShareName
#echo $printerpath
$net.AddWindowsPrinterConnection($printerpath)
}
Se as impressoras forem chamadas de coisas lógicas e houver alguma maneira lógica de identificar as máquinas, você poderá refinar mais. Eu costumava escolher o servidor mais próximo baseado em puxar o endereço IP do cliente, por exemplo. Se o endereço IP for 10.20. *, Vá para server1. Etc.
Espero que ajude.
Editar:
Olhando para a documentação do @ EvanAnderson, tenho certeza que o XML é hackável.
Parte relevante do meu arquivo exportado (com redações):
<DSObject bkp:Path="CN={GUIDHERE},CN=PushedPrinterConnections,%GPO_MACH_DSPATH%" bkp:SourceExpandedPath="CN={13B9B596-452C-4652-A05D-78EF06610134},CN=PushedPrinterConnections,CN=Machine,CN={44A99FBA-0DB3-484C-808E-3DDAE9932A2B},CN=Policies,CN=System,DC=Domainname,DC=extension" bkp:ObjectClass="msPrint-ConnectionPolicy">
<DSAttributeMultiString bkp:DSAttrName="showInAdvancedViewOnly">
<DSValue><![CDATA[TRUE]]></DSValue>
</DSAttributeMultiString>
<DSAttributeMultiString bkp:DSAttrName="uNCName">
<DSValue><![CDATA[\Servername\PrinterShareName]]></DSValue>
</DSAttributeMultiString>
<DSAttributeMultiString bkp:DSAttrName="serverName">
<DSValue><![CDATA[\Servername]]></DSValue></DSAttributeMultiString>
<DSAttributeMultiString bkp:DSAttrName="printAttributes">
<DSValue><![CDATA[0]]></DSValue>
</DSAttributeMultiString>
<DSAttributeMultiString bkp:DSAttrName="printerName">
<DSValue><![CDATA[PrinterShareName]]></DSValue>
</DSAttributeMultiString>
</DSObject>