C # Environment.GetDrives () non funziona correttamente in modalità amministratore
-
12-10-2019 - |
Domanda
Quando ho eseguito questo codice in modalità utente appena normale, ho tutti i miei dischi, tra cui le unità di rete. Quando viene eseguito come amministratore, le unità di rete non compaiono nella lista. Ciò che dà?
List<string> drives = Environment.GetLogicalDrives().ToList();
StringBuilder driveList = new StringBuilder();
foreach (string drive in drives)
driveList.AppendLine(drive);
MessageBox.Show(driveList.ToString());
Questa è gestito sotto Windows 7. Le unità di rete sono da Novell. Il codice è scritto in C # utilizzando il framework .NET 4.
Soluzione
Questo è un comportamento normale in quanto le unità di rete mappati in Windows Vista non sono disponibili a un ran processo con privilegi elevati (vedi programmi possono essere in grado di accedere ad alcune posizioni di rete dopo aver acceso controllo account utente in Windows Vista o in Windows 7 (KB 937.624) ). La soluzione in questo articolo della knowledge base implica la modifica del registro e un riavvio del computer.
Si veda anche il post sul blog unità di rete con UAC in Windows Vista per maggiori dettagli.