Connexion à une unité de réseau et la mise en cache des informations d'identification par programme

StackOverflow https://stackoverflow.com/questions/2803637

  •  25-09-2019
  •  | 
  •  

Question

Je suis enfin mis en place pour être en mesure de travailler à domicile via VPN (en utilisant Mégère en tant que client), et je n'ai qu'un ennui. Nous utilisons des fichiers batch pour télécharger des fichiers de configuration à un lecteur réseau. Fonctionne très bien du travail et de l'ordinateur portable de mon chef d'équipe, mais ces deux machines sont sur le domaine. Mon système de maison n'est pas, et ne sera pas, quand je lance le fichier batch, je reçois une tonne d'erreurs « de lecteur non valide » parce que je ne suis pas un utilisateur de domaine.

La solution que je l'ai trouvé à ce jour est de faire un fichier batch qui suit:

explorer \\MACHINE1
explorer \\MACHINE2
explorer \\MACHINE3

Alors connecte-toi manuellement à chaque machine en utilisant mes lettres de créance de domaine comme ils pop up. Malheureusement, il y a environ 10 machines je besoin d'utiliser, et il est une douleur de garder d'entrer le mot de passe si je manquais un qu'un fichier batch nécessite.

Je suis à la recherche en utilisant la réponse à cette question href="https://stackoverflow.com/questions/158492/c-network-login"> pour faire une petite application C # » ll prendre les informations de connexion une fois et la connexion par programme. l'authentification est automatiquement partagée avec Explorer, ou est-ce que je dois faire de spécial? Si elle fonctionne, combien de temps sont les informations d'identification mises en cache?

Y at-il une application qui fait quelque chose comme cela automatiquement?

Malheureusement, l'authentification de domaine via le VPN est pas une option, selon notre administration.

EDIT :. S'il y a un moyen de passer d'info connecter à Explorateur via la ligne de commande, ce serait encore plus facile en utilisant Ruby et Highline

EDIT : Dans le cas où quelqu'un d'autre a le même problème, voici la solution que je liquidée à l'aide. Il faut Ruby et la gemme Highline.

require "highline/import"

domain = ask("Domain: ")
username = ask("Username: ")
password = ask("Password: ") { |q| q.echo = false }

machines = [
    '\\MACHINE1\SHARE', 
    '\\MACHINE2\SHARE', 
    '\\MACHINE3\SHARE', 
    '\\MACHINE4\SHARE', 
    '\\MACHINE5\SHARE'
]
drives = ('f'..'z').to_a[-machines.length..-1]

drives.each{|d| system("net use #{d}: /delete >nul 2>nul"); }

machines.zip(drives).each{|machine, drive| system("net use #{drive}: #{machine} #{password} /user:#{domain}\\#{username} >nul 2>nul")}

Il va trouver combien de lecteurs mappés j'ai besoin, puis commencer à les faire correspondre aux actions demandées. Dans ce cas, il les cartes de V: à Z :, et suppose que je n'ai rien partagé avec les lettres de lecteur

.

Si vous disposez déjà d'une fenêtre de l'Explorateur ouvert à l'une des actions, elle peut donner une erreur, avant que je courais le script Ruby, j'ai couru:

net use * /delete

Cette éclairci les « connexions multiples à une action non autorisée » erreur et m'a permis de me connecter sans problème.

Était-ce utile?

La solution

Vous pouvez créer un fichier batch qui utilise " NET USE " pour vous connecter à vos actions. Vous auriez besoin d'utiliser une lettre de lecteur pour chaque action, mais ce serait super simple à mettre en œuvre.

Votre fichier batch ressemblerait à ceci:

net use h: \\MACHINE1 <password> /user:<domain>\<user>
net use i: \\MACHINE2 <password> /user:<domain>\<user>
net use j: \\MACHINE3 <password> /user:<domain>\<user>

UPDATE

Que la connexion reste ou non dépend de ce que vous avez spécifié pour le commutateur / persistant. Si vous avez spécifié oui, alors il tente de se reconnecter à votre prochaine ouverture de session. Si vous avez spécifié non, alors il ne sera pas. L'inquiétant c'est le documentation indique que la valeur par défaut la valeur que vous avez utilisé la dernière!

Si vous avez spécifié non, la connexion restera jusqu'à ce que vous prochain redémarrage. Si vous laissez tomber votre connexion VPN le lecteur serait indisponible (mais si vous vous reconnectez au VPN le lecteur devrait être disponible aussi longtemps que vous ne l'avez pas enlevé).

Je ne sais pas d'un moyen de l'utiliser sans carte à une lettre de lecteur, la documentation vous conduira à croire qu'il est impossible.

Je comprends votre problème, que vous êtes juste essayer de donner explorer les informations d'identification correctes de sorte qu'il arrête vous lancinante avec des boîtes de connexion. Utilisation d'unités mappées pas parfaite mais elle va au moins soulager votre douleur.

Autres conseils

pour passer des titres de compétence par ligne de commande à l'explorateur, vous devriez jeter un coup d'oeil dans la commande net use

Utilisation API WNetAddConnection2 () par l'intermédiaire de P / Invoke.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top