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 :

Comment Dupliquer une arborescence sans contenu


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    BTS GMSI
    Inscrit en
    Septembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : BTS GMSI
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2015
    Messages : 10
    Par défaut Comment Dupliquer une arborescence sans contenu
    Bonjour,
    Je débute en Powershell,et ,j'aimerais me faire un petit script pour simplement dupliquer une arborescence vers un autre répertoire.
    Par exemple c:\Users vers C:\save_Users mais seulement tous les répertoires et sous-répertoires,sans les fichiers,et bien sûr avec tous les droits!!!!
    Sinon j'ai pas mal parcouru les tutos ici ou là,je connais quelques commandes (set-location,get-location,get-childitem........)
    Donc dois-je faire une boucle qui "scanne" les répertoires et sous répertoires,puis qui les duplique ?
    Je me suis fait un petit bout de code qui permet de demander quel répertoire on souhaite dupliquer avec un message d'erreur si il n'existe pas et 2-3 bricoles.
    voici le bout de code que j'ai déjà préparer:

    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
    cls
     
    	#Ici je mets toutes les variables à zéro
    $doss_ori=$null # Variable dossier d'origine
    $doss_dest=$null # Variable dossier destination
    $info=$null # Variable Informations
     
    	#Chargement du dossier d'origine (ex: C:\Users)
    while ($doss_ori -eq $null)
    {
    		$doss_ori=Read-Host "Entrez le nom du dossier d'origine (ex: c:\Users)"
    		if (! (Test-Path ($doss_ori)))
    			{
    			Write-Host "dossier inexistant" $doss_ori
    			$doss_ori=$null
    			}
    		else
    			{
    			$info=Get-Item($doss_ori)
    			Write-Host "date de création" $info.CreationTime			
    			break
    			}
    }
    	#Création du répertoire c:\save
     
    			md c:\save
     
    	#on créé une 2ème variable
     
    	$doss_dest=$doss_ori
     
    	#Copie du répertoire $doss_ori vers c:\save,donc le premier répertoire est sauvegardé
     
    	Copy-Item -Path $doss_dest -Destination c:\save
     
    ############################Premier répertoire créé et inclus dans C:\Save######################
     
    	cd $doss_dest

    Merci pour toutes l'aide que vous pourrez m'apporter.
    Je suis preneur de toutes informations,directions à prendre,idées..........
    Cordialement.
    $€b

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    un début de solution.
    Pour les acls, regarde déjà comment les manipuler pour un fichier.

  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Pour les acls tu peux consulter ce post. Ceci dit ce n'est pas le mieux pour débuter

  4. #4
    Membre habitué
    Homme Profil pro
    BTS GMSI
    Inscrit en
    Septembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : BTS GMSI
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2015
    Messages : 10
    Par défaut
    Merci beaucoup,je vais bosser la dessus.
    Déjà une direction à suivre.je ne veux pas que l on me donne le code,je préfère y travailler ,trouver pour comprendre.
    Merci encore.
    $€b

  5. #5
    Membre habitué
    Homme Profil pro
    BTS GMSI
    Inscrit en
    Septembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : BTS GMSI
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2015
    Messages : 10
    Par défaut
    Bonjour Laurent,
    Voilà j'ai bossé sur mon petit challenge qui fonctionne sur tous les dossiers même les dossiers systèmes.
    Pour l'édition du script j'utilise PowerGui Script Editor,et, j'ai un message d'erreur lorsque je duplique un répertoire 'users' par exemple.Je pense que je me dirige vers un problème de droit.
    Donc ma question est : quelle est la commande pour être en administrateur sur un poste et, pouvoir lancer mon script sans message d'erreur ?


    Copy-Item : Access to the path 'C:\users\sebastien\Voisinage réseau' is denied.
    At C:\Users\sebastien\Desktop\powerseb.ps1:46 char:1
    + Copy-Item $doss_ori $doss_dest -filter{PSIsContainer} -Recurse -Force
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : PermissionDenied: (Voisinage réseauirectoryInfo) [Copy-Item], UnauthorizedAccessException
    + FullyQualifiedErrorId : CopyDirectoryInfoItemUnauthorizedAccessError,Microsoft.PowerShell.Commands.CopyItemCommand


    Pour mon script qui fonctionne partiellement le voici:
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    cls
    
    	#Ici on mets toutes les variables à zero
    	
    $doss_ori=$null   # Variable dossier d'origine
    $doss_dest=$null  # Variable dossier destination
    $info=$null       # Variable Informations
    
    	#Chargement du dossier d'origine (ex: D:\Users)
    	
    while ($doss_ori -eq $null)
    {
    		$doss_ori=Read-Host "Entrez le nom du dossier d'origine (c:\Users)"
    		if (! (Test-Path ($doss_ori)))
    			{
    			Write-Host "dossier inexistant" $doss_ori
    			$doss_ori=$null
    			}
    		else
    			{
    			$info=Get-Item($doss_ori)
    			Write-Host "date de creation" $info.CreationTime			
    			break
    			}
    }
    
    	#Chargement du dossier d'origine (ex:  c:\Save)
    	
    while ($doss_dest -eq $null)
    {
    		$doss_dest=Read-Host "dossier destination"
    		if (! (Test-Path ($doss_dest)))
    			{
    			md $doss_dest
    			Write-Host "dossier créé" $doss_dest
    			
    			}
    		else
    			{
    			break
    			}
    }
    
    	#Copie du répertoire $doss_ori vers c:\save
    
    Copy-Item $doss_ori $doss_dest -filter{PSIsContainer} -Recurse -Force
    Merci $€b

  6. #6
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par Lycopodium Voir le message
    quelle est la commande pour être en administrateur sur un poste
    Il n'en existe pas, soit le compte a les droits admin soit il ne les a pas.
    Si c'est lié à l'UAC tu peux regarder ceci.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/12/2013, 23h13
  2. [HTML] Comment faire une arborescence en html
    Par jehlg dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 07/02/2006, 23h55
  3. [vbexcel]Comment stopper une macro sans la planter.
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 30/11/2005, 14h45
  4. vba excel - Comment saisir une cellule sans faire entrer
    Par brethomeau dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/11/2005, 17h50
  5. Comment lancer une appli sans afficher ses fiches
    Par raoulmania dans le forum Langage
    Réponses: 5
    Dernier message: 02/09/2005, 18h07

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