O Windows está funcionando como projetado e seu código está bem. O truque é que o seu programa está sendo executado como administrador, mas o Explorer não está em execução. Quando o programa mapeia a unidade de rede, o mapeamento é disponibilizado para processos na mesma sessão de logon - não conta de usuário. De MSDN :
...connections made using Microsoft LAN Manager are visible only to applications running in the same logon session as the application that made the connection. (To include the connection in the enumeration, it is not sufficient for the application to be running in the user account that created the connection.)
Se você abrir outro prompt de comando administrativo, verá a unidade que seu programa mapeou. Se o seu programa não estivesse sendo executado como administrador, você veria suas unidades mapeadas no Explorer.
Para fazer com que aplicativos não-admin e admin vejam o mesmo conjunto de mapeamentos, crie uma DWORD chamada EnableLinkedConnections
definida como 1
dentro dessa chave ( origem ):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Depois de reiniciar, seu programa elevado fará compartilhamentos que seus outros aplicativos não elevados poderão ver.