Question Copie d'un fichier et \"renommage\" du dossier !

Plus d'informations
il y a 15 ans 4 mois #8432 par Jacques Barathon
Salut,

Merci pour le retour sur ton script.

Petite remarque au passage : tu n'as pas besoin de faire un test-path tout seul avant de faire à nouveau le test-path dans ton test \"if (...)\". Seul ce dernier compte pour le déroulement de ton script.

Concernant l'envoi de mail, tu peux envoyer ton txt soit en pièce jointe (avec le paramètre -attachments) soit en passant son contenu en tant que corps du message (avec le paramètre -body).

Quant au contenu même du txt, les infos que tu veux y mettre devraient être fournies par ton logiciel de sauvegarde. La façon de les récupérer pour les intégrer à ton mail va donc dépendre de ce logiciel.<br><br>Message édité par: janel, à: 27/12/10 11:13

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #8433 par Van_De
D'accord pour le Test-Path :)
Et oui c'est pour le contenu que j'ai besoin d'aide, car mon \&quot;logiciel de sauvegarde\&quot; n'est autre qu'un script cmd tout simple qui été en place quand je suis arrivé. Donc je ne vois pas comment faire :unsure: !

Ensuite depuis le début je me pose des questions sur la première ligne du script :
[code:1]foreach ($serveur in $serveurs)[/code:1]:blink:

Si j'ai bien compris le fonctionnement de powershell, $serveur correspond à la variable serveur, mais est ce que cet variable existe par défaut ou il faut la créer ? Dans ce cas comment et comment y rentrer les paramètres pour qu'elle récupère bien la liste des serveurs ???

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #8434 par Jacques Barathon
Ca fait beaucoup de questions auxquelles tu es censé être le seul à pouvoir apporter des réponses ! :blink:

Reprenons :

* Ton script de sauvegarde

Si tu veux qu'on t'aide à récupérer les résultats des sauvegardes, il faut que tu nous en dises plus sur ce fameux script de sauvegarde. Même si c'est un \&quot;cmd tout simple\&quot;, il doit bien contenir des commandes qui lancent un logiciel de sauvegarde quelconque, non ?

On peut supposer que chaque sauvegarde, si elle est exécutée par un logiciel spécialisé, génère un fichier log, sorte de journal qui consigne avec plus ou moins de détails le déroulement de la tâche. A priori c'est ce log qu'il faudrait pouvoir récupérer pour en extraire les informations que tu veux envoyer par mail.

* La boucle \&quot;foreach ($serveur in $serveurs)\&quot;

$serveurs est censé être un tableau, dont chaque élément est le nom d'un serveur. La boucle ci-dessus se contente de récupérer chaque élément - donc chaque nom de serveur - et de l'affecter à la variable $serveur.

Non, ni $serveur ni $serveurs ne sont des variables prédéfinies. Il faut que tu initialises le tableau $serveurs au début de ton script, en lui donnant les noms des serveurs d'une manière ou d'une autre.

Je te rappelle qu'il s'agit là des serveurs qui hébergent tes machines virtuelles. Tu dois bien en avoir la liste quelque part, non ? Par exemple dans un fichier Excel. Si c'est le cas, fais une copie de ce fichier en l'enregistrant au format CSV, et utilise import-csv pour importer la liste dans la variable $serveurs.

Attention, un CSV aura, à priori en tout cas, un en-tête. Cet en-tête va donner son nom à la propriété qui contiendra le nom de chaque serveur. Par exemple, si le fichier Excel d'origine a la forme suivante :

Serveur
srv1
srv2
srv5
srv7

Une fois enregistré au format CSV, tu pourras l'importer dans la variable $serveurs avec import-csv. Chaque élément de $serveurs aura une propriété, .serveur, qui correspondra au nom du serveur :

$serveurs[0].serveur =&gt; srv1
$serveurs[1].serveur =&gt; srv2
etc.

[code:1]
# le paramètre -useCulture est nécessaire si ton poste
# est configuré avec tous les réglages par défaut des
# paramètres régionaux Français

$serveurs = import-csv serveurs.csv -useCulture

foreach ($serveur in $serveurs)
{
# le nom du serveur est stocké dans $serveur.serveur

dir \\$serveur.serveur\d$\VM | where {$_.PSIsContainer} | foreach {
...
}
}
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #8435 par Van_De
Bon en fait j'ai réglé tout ces petits problèmes la il ne me reste plus qu'as écrire dans un fichier texte si la sauvegarde s'est bien passée et pour chaque VM ! Je sens que je vais galérer encore un peu ^^ (La sauvegarde est faite par le cmd que je lance en powershell)

Message édité par: Van_De, à: 28/12/10 08:33<br><br>Message édité par: Van_De, à: 28/12/10 08:34

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #8438 par Jacques Barathon
A priori, puisque le script contient un \&quot;set verbose on\&quot;, la commande diskshadow devrait enregistrer les différentes phases de son déroulement en tant qu'évènements, soit dans le journal Système soit dans le journal Applications.

Tu devrais y jeter un oeil, tu pourras sans doute y trouver des infos que tu pourras alors extraire (par exemple avec la commande get-eventlog) pour y mettre les détails dans ton mail.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #8439 par Van_De
Merci j'ai trouvé tout ce qu'il me fallait pour l'envoi du mail ! :)

Mais je viens de penser qu'un petit problème se pose encore à moi :s

Lorsque j’exécute le script cmd sous powershell, le cmd se lance, mais en attendant le powershell continue son script !! Est ce possible de dire au powershell d'attendre que le cmd soit terminé avant de continuer ??

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.045 secondes
Propulsé par Kunena