Non avevo mai usato un named Mutex, ma oggi ho bisogno di acquisire un Lock a livello di sistema e non solo interno al processo e ovviamente ci ho perso 1 ora per capirci qualcosa!
In poche ed imprecise parole: se nel nome di un Mutex anteponete la stringa "Global\" il Mutex avrà validità contemporanea su tutte le sessioni Terminal Services, se mettete "Local\" o non mettete niente avrà effetto solo sulla sessione corrente.
Dov'é il problema? Se voi mettete una stringa tipo "Global\MioPC\MiaRisorsa" o "Local\MioPC\MiaRisorsa" o "MioPC\MiaRisorsa" vi beccate una IOException non propriamente parlante ("La sintassi del nome del file, della directory o del volume non è corretta.").
Soluzione: non usate il carattere '\' nel nome del vostro Mutex (sembra invece non dare problemi il carattere '/')!