IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Script move + copie + log


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mai 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2019
    Messages : 13
    Points : 3
    Points
    3
    Par défaut Script move + copie + log
    Bonjour,

    J'ai besoin d'aide pour un script
    Je dois copier les fichiers $source dans un répertoire de sauvegarde en local, avant le déplacement des fichiers $source sur un serveur distance $destination.
    Avec log des fichiers déplacer dans un fichier.txt

    Début de mon script

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     # Répertoire source
    $source = "d:\fichier\source"
     
    # Répertoire de destination
    $destination = "\\192.168.10.10\Depot
     
    Move-Item -Path $source -Destination $destination

    Merci d'avance de votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Bonjour,

    Que se passe t'il si il y a déjà des fichiers dans le dossier de sauvegarde ?
    Faux t'il créer un sous dossier avec la date ?

    Ton déplacement est il fonctionnel ?

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # Répertoire source
    $source = "d:\fichier\source"
     
    # Répertoire de sauvegarde
    $sauvegarde = "d:\fichier\sauv"
     
    # Répertoire de destination
    $destination = "\\192.168.10.10\Depot"
     
    # Sauvegarde
     
    # Déplacement
    Move-Item -Path $source -Destination $destination

  3. #3
    Candidat au Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mai 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2019
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Merci de ton aide

    Que se passe t'il si il y a déjà des fichiers dans le dossier de sauvegarde ?
    On dois garder les fichiers de sauvegarde

    Faux t'il créer un sous dossier avec la date ?
    Oui si possible

    Ton déplacement est il fonctionnel ?
    Oui mon script fonctionne pour le déplacement

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    # Répertoire source
    $source = "C:\source\*"
     
    # Répertoire de destination
    $destination = "\\192.168.10.10\Depot\"
     
    Move-Item -Path $source -Destination $destination

    J'ai un problème pour l'accès au serveur distant, je n’arrive pas a faire fonctionner le Get-Credential.

    Merci encore d'avance de ton aide

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Voici pour commencer un code fonctionnelle, je créer aussi une date dans le dépôt sinon ça va être le bazar.

    Tu n'a pas accès au serveur distant ? Je ne vois pas de crédential dans ton code d'exemple.

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    # Répertoire source
    $source = "C:\source"
     
    # Répertoire de sauvegarde
    $sauvegarde = "C:\sav"
     
    # Répertoire de destination
    $destination = "\\192.168.10.10\Depot"
     
     
     # Récupère la date
    $date = (Get-Date).ToString("yyyyMMdd_HHmmss")
     
    # Complète les dossiers
    $source += "\*"
    $sauvegarde += "\" + $date
    $destination += "\" + $date
     
    # Créer les dossiers
    New-Item -Path ($sauvegarde, $destination) -ItemType "directory" | Out-Null
     
    # Copie
    Copy-Item -Path $source -Destination $sauvegarde -Recurse
     
    # Déplacement
    Move-Item -Path $source -Destination $destination

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Sinon comme ceci pour le lecteur distant, je n'ai pas pu tester le code.

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    # Répertoire source
    $source = "C:\Users\Rico\Desktop\Nouveau dossier\source"
     
    # Répertoire de sauvegarde
    $sauvegarde = "C:\Users\Rico\Desktop\Nouveau dossier\sav"
     
    # Répertoire de destination
    $destination = "C:\Users\Rico\Desktop\Nouveau dossier\depot"
     
    # Utilisateur et mot de passe pour le repertoire de destination distant
    $password = "Motdepassse"
    $username = "toto"
     
     
     
    # Crée le crédential
    $myCredential = New-Object System.Management.Automation.PSCredential($username, (ConvertTo-SecureString $password -AsPlainText -Force))
     
    # Connecte un lecteur Powershell
    New-PSDrive -Name destination -PSProvider FileSystem -Root $destination -Credential $myCredential
     
    # Récupère la date
    $date = (Get-Date).ToString("yyyyMMdd_HHmmss")
     
    # Complète les dossiers
    $source += "\*"
    $sauvegarde += "\" + $date
    $destination = ("destination:\" + $date)
     
    # Créer les dossiers
    New-Item -Path ($sauvegarde, $destination) -ItemType "directory" | Out-Null
     
    # Copie
    Copy-Item -Path $source -Destination $sauvegarde -Recurse
     
    # Déplacement
    Move-Item -Path $source -Destination $destination
     
    # Supprime le lecteur Powershell
    Remove-PSDrive -Name destination -Force

  6. #6
    Candidat au Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mai 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2019
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Merci de ton retour,

    J'ai accès au serveur distant en \\ip\dossier puis je saisi login et password

    J'ai essayer de script j'ai une erreur, il me dit que le name distination existe pas, si mais il faut accéder en \\ip\dossier puis login et password :/


    retour d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    New-PSDrive : Multiple connections to a server or shared resource by the same user, using more than one user name, are not allowed. Disconnect all previous 
    connections to the server or shared resource and try again
    At line:20 char:1
    + New-PSDrive -Name destination -PSProvider FileSystem -Root $destination -Credent ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (destination:PSDriveInfo) [New-PSDrive], Win32Exception
        + FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand
     
    New-Item : Cannot find drive. A drive with the name 'destination' does not exist.
    At line:31 char:1
    + New-Item -Path ($sauvegarde, $destination) -ItemType "directory" | Out-Null
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (destination:String) [New-Item], DriveNotFoundException
        + FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.NewItemCommand
     
    Remove-PSDrive : Cannot find drive. A drive with the name 'destination' does not exist.
    At line:40 char:1
    + Remove-PSDrive -Name destination -Force
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (destination:String) [Remove-PSDrive], DriveNotFoundException
        + FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.RemovePSDriveCommand

  7. #7
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Il te dit que tu as déjà une connexion existante vers ce serveur

    Lance ceci avant le script, pour déconnecter toutes les connexions distantes ou test une fermeture/ouverture de session :
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    net use * /d /yes

  8. #8
    Candidat au Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mai 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2019
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    J'ai une autre erreur :/
    Il connait pas l'argument au paramètre « String »

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ConvertTo-SecureString : Impossible de lier l'argument au paramètre «*String*», car il a la valeur Null.
    Au caractère Ligne:17 : 105
    + ... ion.PSCredential($username, (ConvertTo-SecureString $password -AsPlai ...
    +                                                         ~~~~~~~~~
        + CategoryInfo          : InvalidData : (:) [ConvertTo-SecureString], ParameterBindingValidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.ConvertToSecureStringCommand
    Merci de ton retour

Discussions similaires

  1. Script PowerShell pour sauvegarde de log
    Par MIRA_DOR dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 11/08/2017, 07h25
  2. [Batch] Script de copie de fichier (batch ou powershell?)
    Par kondor76 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 10/09/2014, 16h28
  3. Réponses: 1
    Dernier message: 16/07/2009, 10h22
  4. Information, debbugage et analyse d'un scripte de copie particuliere
    Par nacrotic dans le forum Shell et commandes GNU
    Réponses: 25
    Dernier message: 03/05/2008, 19h45
  5. [DOS] Script de copie
    Par Empty_body dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 01/03/2007, 09h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo