2009-09-14 2 views
1

Je dois déployer un ensemble de fichiers de configuration sur une centaine d'hôtes Windows ou plus. J'ai les adresses IP, le nom d'utilisateur et le mot de passe, et l'emplacement sur les machines distantes dans lesquelles les fichiers doivent être copiés - et je me demandais s'il y avait quelque chose dans le framework .NET qui me permettrait d'utiliser tout ça info pour déplacer ces fichiers?Déploiement de fichiers sur des machines distantes

+0

Quels sont les services disponibles sur les machines distantes? Partage de fichiers, FTP? Y a-t-il un pare-feu impliqué? Il doit y avoir quelque chose en cours d'exécution à l'autre extrémité qui est prêt à vous parler et copier des fichiers en votre nom. Si c'est le cas, il y a des chances que le .Net Framework puisse vous aider. –

+0

Je ne suis pas sûr. NET aiderait avec ça. J'ai écrit une application .NET qui m'a permis d'afficher les processus en cours sur n'importe quelle machine de mon réseau, mais .NET ne vous permet pas de les manipuler (empêche l'utilisation malveillante). Je ne suis pas tout à fait sûr, mais je ne peux que supposer qu'ils bloqueraient quelque chose comme l'ajout de fichiers de configuration à d'autres machines, à moins que quelqu'un ne soit là pour les accepter. – Sivvy

+0

Les machines distantes exécutent Windows Server 2003 Édition Standard SP1 et toutes ont le Bureau à distance activé. Je ne suis pas sûr du FTP, mais je ne le pense pas. –

Répondre

2

Sonne comme un emploi pour Powershell (ce qui suppose Powershell v1.0 sur votre machine - ne doit pas être sur les serveurs):

-- begin info.csv -- 

ipaddress, username, password, path (<- header) 
1.2.3.4, foo, bar, "c:\temp" 
5.6.7.8, dog, cat, "c:\temp\foo" 
... 

-- end info.csv -- 

Et voici un script qui suppose l'existence du fichier CSV ci-dessus dans le même chemin.

import-csv info.csv | foreach-object { 

    trap { 
     net use t: /delete 
     continue 
    } 

    $root = "\\{0}\{1}" -f $_.ipaddress, ($_.path -replace ':', '$') 
    net use t: $root $_.password /user:$_.username 
    copy myconfig.config t: 
    net use t: /delete 
} 

C'est sorti de ma tête, de sorte que vous pourriez avoir besoin de ruser un peu, mais vous voyez l'idée.

-Oisin

+0

Cela ressemble à ce que je suis après. Je n'ai jamais utilisé Powershell auparavant, et je reçois l'erreur suivante de votre exemple; Copy-Item: Impossible de trouver le lecteur. Un lecteur avec le nom 't' n'existe pas. Des idées sur ce qui pourrait en être la cause? Vive –

+0

cela peut sembler être une question retardée, mais utilisez-vous un fichier CSV _valid_ avec des adresses IP et des noms de partage réels? Si vous testez la commande "net use", crée-t-elle le disque pour vous? – x0n

+0

Ouais le CSV était valide. Il s'est en fait avéré être un problème de réseau sans rapport - les hôtes étaient inaccessibles depuis ma machine de développement, donc le mappage vers T: produisait l'erreur ci-dessus. Ça a fonctionné maintenant. Merci de votre aide. –

1

S'ils sont sur votre réseau AD, ce que nous faisons habituellement est notre service de demande en réseau à deploy them via Group Policy. Puisque vous pouvez créer un programme d'installation dans Visual Studio pour installer n'importe quoi (il ne doit pas nécessairement s'agir d'une application), vous pouvez également l'utiliser pour les fichiers de configuration.

Remarque: Je n'ai aucune expérience en matière de réseau. Si c'est possible, vous pouvez poser la question au Server Fault.

Questions connexes