I ran your code through KGen to get a Sanity and CodeMap report. Ignoring the "Undeclared Variable" warnings because I don't have your complete script, I got the following:
 Code:
Warning: Variable referenced inside string.
              Variable Name: $
                In function: Main
         Referenced on line: 59
     59: copy "\\DC2\PrintTemp$\printers.txt" "%appdata%\Microsoft\printers.txt" /c

If you don't declare NoVarsInStrings, this could cause a problem copying the file. I assume this is some kind of tag file indicating that some task has completed. I'm not a big fan of this concept. Use a reg key something like SOFTWARE\MyCompany\StatusID:Value in HKLM or HKCU. Faster and less susseptible to user interaction.

CodeMap shows the following:
 Code:
000001: Main
000010:  Select
000036:  EndSelect
000038:  IF INGROUP("Group1")
000040:  EndIf
000042:  IF INGROUP("Group1")
000045:  EndIf
000047:  IF INGROUP("Case Files")
000050:  EndIf
000055:  IF EXIST ("%appdata%\Microsoft

000063: Function: DelPrinterConnections
 - WARNING: Open If when defining function. 1
<snip>
WARNING: 1 Unterminated If statement(s)!
This is why I use KGen even for the simplest scripts..


Your If Exist is backwards, in addition to missing a closing EndIf. Since we're troubleshooting, change this to
 Code:
If Exist('%appdata%\Microsoft\printers.txt')
  'Tag file exists - not mapping!'
Else
 . . .
That might provide a clue or three.. A better implementation (after the diagnostic process is complete) would be
 Code:
If Not Exist('%appdata%\Microsoft\printers.txt')
and eliminate the empty If clause.

I'm also troubled by your DelPrinterConnections logic. You enumerate the values in a registry key and delete them. Without creating and then deleting a bunch of registry keys to test this, I'm going to simply discuss the illogicical part by commenting your code. My concerns are in ALL CAPS
 Code:
function DelPrinterConnections()
  Dim $C, $Bk, $Conn                           ; Declare index pointer, BaseKey, & Connection vars
  $C=0                                         ; initialize index pointer
  $Bk='HKEY_CURRENT_USER\Printers\Connections' ; initialize Base Key
  $Conn = EnumKey($Bk,$C)                      ; locate the first subkey in the key
  While @ERROR = 0                             ; loop until EOF error

; SINCE WE ARE ADDING NOTHING TO NOTHING, WHAT'S THE POINT OF $C??
    $C = $C + 0                                ; increment pointer - BUT NOT REALLY!!!

; REUSING AN ACTIVE VARIABLE CAN BE DANGEROUS - DECLARE AND USE $RC INSTEAD
    $Conn = DelKey($bk + '\' + $Conn)          ; Delete the key

; HERE'S MY REAL CONCERN. YOU JUST DELETED KEY 0, AND NOW YOU'RE ENUMERATING KEY 0.
; A. IT DOESN'T EXIST, SO RETURNS AN ERROR AND THE FUNCTION EXITS, DELETING ONLY ONE PRINTER KEY
; B. THE SECOND KEY MOVES UP TO BE ENUMERATED IN POSITION 0. IF THIS IS THE CASE, REMOVE THE
; "$C = $C + 0" LINE, THE $C DECLARATION, AND REPLACE ALL OTHER REFERENCES TO $C WITH 0 (ZERO)
    $Conn = EnumKey($Bk, $C)                   ; Enumerate the NEXT?? key ? ? ? ? ? ?
  Loop
EndFunction
Glenn
_________________________
Actually I am a Rocket Scientist! \:D