2016-05-11 1 views
1

J'utilise Windows 10. Voici mon code pour mapper le lecteur réseau.Pourquoi mon lecteur réseau mappé n'apparaît-il pas dans les emplacements réseau?

System.Diagnostics.Process p = new System.Diagnostics.Process(); 
p.StartInfo.UseShellExecute = true; 
p.StartInfo.Verb = "runas"; 
p.StartInfo.FileName = "net.exe"; 
p.StartInfo.Arguments = "use Z: " + dPath; //dPath has escaped characters 
p.Start(); 

Ce que je voulais faire était d'essayer d'exécuter la commande net.exe use Z: DPATH en tant qu'administrateur, mais le lecteur Z n'apparaît pas dans l'Explorateur de fichiers, mais quand je lance exactement la même commande en utilisant cmd avec les droits d'administrateur, le lecteur Z apparaît correctement.


Preuve de lecteur

mappé

Mon lecteur réseau est mis en correspondance comme le montre ci-dessous (Rencontrés cette erreur lors d'une tentative de re-carte manuellement) juste qu'il n'apparaissait sous les emplacements réseau dans le fichier Explorer> Ce PC.

attemptingToMap

+0

À quel utilisateur le lecteur réseau est-il mappé? Quel utilisateur utilise votre code? Est-ce qu'ils correspondent? Votre code fonctionne probablement sous un utilisateur différent de celui que vous avez connecté. Donc, il aura une vue différente des lecteurs mappés – Liam

+0

@Liam pardon moi mais comment puis-je identifier cela? Je n'ai qu'un seul utilisateur sur mon ordinateur. – Mark

+0

Je vous suggère de ne pas. Même les versions de base de Windows ont plusieurs utilisateurs. Vous devez indiquer le contexte de ** comment ** et ** où ** le code C# que vous avez inclus est exécuté? Est-ce un site Web, une application Windows, PowerShell? – Liam

Répondre

1

Ce comportement est dû à l'UAC (Contrôle de compte d'utilisateur). Lorsque vous vous connectez à Windows en tant qu'admin, there are two sessions created. Un avec des droits d'administrateur et un sans. Lorsque vous mappez les lecteurs par programme, vous le faites avec la session avec des droits d'administrateur. Toutefois, lorsque vous utilisez l'Explorateur de fichiers pour afficher les emplacements réseau, vous utilisez les droits standard. Pour les lecteurs mappés, les droits administrateur et standard ne sont pas partagés. Par conséquent, l'administrateur ne peut pas afficher le disque mappé même s'il a été créé avec des droits d'administrateur.

Solution 1

Cliquez sur Démarrer, tapez regedit dans la zone des fichiers et des programmes de démarrage et puis appuyez sur ENTRER.

Recherchez et cliquez avec le bouton droit sur la sous-clé de registre HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System.

Pointez sur Nouveau, puis cliquez sur Valeur DWORD.

Tapez EnableLinkedConnections, puis appuyez sur ENTRÉE.

Cliquez avec le bouton droit sur EnableLinkedConnections, puis cliquez sur Modifier.

Dans la zone Données de la valeur, tapez 1 et puis cliquez sur OK.

Quittez l'Éditeur du Registre, puis redémarrez l'ordinateur.

Solution 2

Run File Explorer as administrator

Lorsque vous effectuez un clic droit sur l'explorateur et sélectionnez "Exécuter en tant qu'administrateur " il ne démarre pas l'Explorateur Windows avec les droits administrateur . L'explorateur Windows Vista/7/8/10 inclut une fonction spéciale pour bloquer de telles requêtes en .

Pour le désactiver, démarrez regedit.exe et accédez à la clé suivante:

HKEY_CLASSES_ROOT \ AppID {CDCBCFCA-3CDC-436f-A4E2-0E02075250C2}

faire un clic droit sur les autorisations et définissez votre utilisateur en tant que propriétaire de la clé et donner votre position actuelle autorisations d'écriture utilisateur.

Ensuite, supprimez ou renommez la valeur RunAs. Maintenant, le Explorer Factory Elevated-Unelevated est désactivé et vous pouvez démarrer l'Explorateur avec les droits d'administrateur .

Solution 3

Si le travail ci-dessus peut pas disable your UAC (User Account Control) en allant dans les paramètres de contrôle de compte d'utilisateur et en déplaçant le curseur vers Ne jamais notifier

Aussi, si vous avez professionnel, Enterprise ou Ultimate version de Windows installé, vous devez regarder dans un programme dans les outils d'administration appelé Stratégie de sécurité locale et désactiver toutes les politiques relatives à UAC dans S Paramètres de sécurité> Stratégies locales> Options de sécurité (situé dans les 15 dernières stratégies de la liste)