Got to thinking about this more...I cant get the xdclientname.exe to run on my system so i dont know the exact syntax of what it displays, but according to the docs it does display the client name on the console...SO...Why not use WshPipe to get it? And of course there is still the fact of only running on a server...so still need to figure out how to distinguish servers from desktops. But something like this should work in theory?...

 Code:
If $xen
   $computerprt = Join(WshPipe(@ScriptDir+"\XD4ClientName.exe",1))
Else
   $computerprt = Left(@WkSta,6)
Endif

Select 
   Case $computerprt = "LA-FAC"
      AddPrinterConnection ("\\printserver\printer1")
      SetDefaultPrinter("\\printserver\printer1")
   Case $computerprt = "LA-OFF"
      AddPrinterConnection ("\\printserver\printer2")
      SetDefaultPrinter("\\printserver\printer2")
   Case $computerprt = "CA-REC"
      AddPrinterConnection ("\\printserver\printer3")
      SetDefaultPrinter("\\printserver\printer3")
   Case $computerprt = "CA-ROO"
      AddPrinterConnection ("\\printserver\printer4")
      AddPrinterConnection ("\\printserver\printer1")
      SetDefaultPrinter("\\printserver\printer4")
   Case 1
endselect

Function WshPipe($ShellCMD, OPTIONAL $NoEcho)
	Dim $oExec, $Output
	$oExec = CreateObject("WScript.Shell").Exec($ShellCMD)
	If Not VarType($oExec)=9 $WshPipe="WScript.Shell Exec Unsupported" Exit 10 EndIf
	$Output = $oExec.StdOut.ReadAll + $oExec.StdErr.ReadAll
	If Not $NoEcho $Output Endif
	$WshPipe=Split(Join(Split($Output,CHR(13)),''),CHR(10))
	Exit($oExec.ExitCode)
EndFunction