Partager via


Copy-Item

Copie un élément d’un emplacement vers un autre.

Syntaxe

Copy-Item
    [-Path] <String[]>
    [[-Destination] <String>]
    [-Container]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [-FromSession <PSSession>]
    [-ToSession <PSSession>]
    [<CommonParameters>]
Copy-Item
    -LiteralPath <String[]>
    [[-Destination] <String>]
    [-Container]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [-FromSession <PSSession>]
    [-ToSession <PSSession>]
    [<CommonParameters>]

Description

L’applet de commande Copy-Item copie un élément d’un emplacement vers un autre emplacement dans le même espace de noms. Par exemple, il peut copier un fichier dans un dossier, mais il ne peut pas copier un fichier dans un lecteur de certificat.

Cette applet de commande ne coupe pas ou ne supprime pas les éléments copiés. Les éléments particuliers que l’applet de commande peut copier dépendent du fournisseur PowerShell qui expose l’élément. Par exemple, il peut copier des fichiers et des répertoires dans un lecteur de système de fichiers et des clés de Registre et des entrées dans le lecteur de Registre.

Cette applet de commande peut copier et renommer des éléments dans la même commande. Pour renommer un élément, entrez le nouveau nom dans la valeur du paramètre destination . Pour renommer un élément et ne pas le copier, utilisez l’applet de commande Rename-Item.

Exemples

Exemple 1 : Copier un fichier dans le répertoire spécifié

Cet exemple copie le fichier mar1604.log.txt dans le répertoire C:\Presentation. Le fichier d’origine n’est pas supprimé.

Copy-Item "C:\Wabash\Logfiles\mar1604.log.txt" -Destination "C:\Presentation"

Exemple 2 : Copier le contenu du répertoire dans un répertoire existant

Cet exemple copie le contenu du répertoire C:\Logfiles dans le répertoire C:\Drawings existant. Le répertoire Logfiles n’est pas copié.

Si le répertoire Logfiles contient des fichiers dans des sous-répertoires, ces sous-répertoires sont copiés avec leurs arborescences de fichiers intactes. Par défaut, le paramètre conteneur est défini sur True, qui conserve la structure du répertoire.

Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings" -Recurse

Note

Si vous devez inclure le répertoire Logfiles dans la copie, supprimez la \* du chemin d’accès . Par exemple:

Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings" -Recurse

Exemple 3 : Copier le contenu du répertoire dans un nouveau répertoire

Cet exemple copie le contenu du répertoire source C:\Logfiles et crée un répertoire de destination. Le nouveau répertoire de destination, \Logs est créé dans C:\Drawings.

Pour inclure le nom du répertoire source, copiez-le dans un répertoire de destination existant, comme indiqué dans Exemple 2. Ou nommez le nouveau répertoire de destination avec le même répertoire que le répertoire source.

Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings\Logs" -Recurse

Note

Si le chemin d’accès inclut \*, tout le contenu du répertoire, sans les arborescences de sous-répertoires, est copié dans le nouveau répertoire de destination. Par exemple:

Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings\Logs" -Recurse

Exemple 4 : Copier un fichier dans le répertoire spécifié et renommer le fichier

Cet exemple utilise l’applet de commande Copy-Item pour copier le script Get-Widget.ps1 du répertoire \\Server01\Share vers le répertoire \\Server12\ScriptArchive. Dans le cadre de l’opération de copie, la commande modifie le nom de l’élément de Get-Widget.ps1 en Get-Widget.ps1.txt, afin qu’elle puisse être attachée aux messages électroniques.

Copy-Item "\\Server01\Share\Get-Widget.ps1" -Destination "\\Server12\ScriptArchive\Get-Widget.ps1.txt"

Exemple 5 : Copier un fichier sur un ordinateur distant

Une session est créée sur l’ordinateur distant nommé Server01 avec les informations d’identification de Contoso\User01 et stocke les résultats dans la variable nommée $Session.

L’applet de commande Copy-Item copie test.log du dossier D:\Folder001 vers le dossier C:\Folder001_Copy sur l’ordinateur distant à l’aide des informations de session stockées dans la variable $Session. Le fichier d’origine n’est pas supprimé.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "D:\Folder001\test.log" -Destination "C:\Folder001_Copy\" -ToSession $Session

Exemple 6 : Copier l’intégralité du contenu d’un dossier sur un ordinateur distant

Une session est créée sur l’ordinateur distant nommé Server01 avec les informations d’identification de Contoso\User01 et stocke les résultats dans la variable nommée $Session.

L’applet de commande Copy-Item copie l’intégralité du contenu du dossier D:\Folder002 dans le répertoire C:\Folder002_Copy sur l’ordinateur distant à l’aide des informations de session stockées dans la variable $Session. Les sous-dossiers sont copiés avec leurs arborescences de fichiers intactes.

$Session = New-PSSession -ComputerName "Server02" -Credential "Contoso\User01"
Copy-Item "D:\Folder002\" -Destination "C:\Folder002_Copy\" -ToSession $Session

Exemple 7 : Copier de manière récursive l’intégralité du contenu d’un dossier sur un ordinateur distant

Une session est créée sur l’ordinateur distant nommé Server01 avec les informations d’identification de Contoso\User01 et stocke les résultats dans la variable nommée $Session.

L’applet de commande Copy-Item copie l’intégralité du contenu du dossier D:\Folder003 dans le répertoire C:\Folder003_Copy sur l’ordinateur distant à l’aide des informations de session stockées dans la variable $Session. Les sous-dossiers sont copiés avec leurs arborescences de fichiers intactes. Étant donné que le paramètre Recurse est utilisé, l’opération crée le dossier Folder003_Copy s’il n’existe pas déjà.

$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder003\" -Destination "C:\Folder003_Copy\" -ToSession $Session -Recurse

Exemple 8 : Copier un fichier sur un ordinateur distant, puis renommer le fichier

Une session est créée sur l’ordinateur distant nommé Server01 avec les informations d’identification de Contoso\User01 et stocke les résultats dans la variable nommée $Session.

L’applet de commande Copy-Item copie scriptingexample.ps1 du dossier D:\Folder004 vers le dossier C:\Folder004_Copy sur l’ordinateur distant à l’aide des informations de session stockées dans la variable $Session. Dans le cadre de l’opération de copie, la commande modifie le nom de l’élément de scriptingexample.ps1 en scriptingexample_copy.ps1, afin qu’elle puisse être attachée aux messages électroniques. Le fichier d’origine n’est pas supprimé.

$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder004\scriptingexample.ps1" -Destination "C:\Folder004_Copy\scriptingexample_copy.ps1" -ToSession $Session

Exemple 9 : Copier un fichier distant sur l’ordinateur local

Une session est créée sur l’ordinateur distant nommé Server01 avec les informations d’identification de Contoso\User01 et stocke les résultats dans la variable nommée $Session.

L’applet de commande Copy-Item copie test.log du C:\MyRemoteData\ distant vers le dossier D:\MyLocalData local à l’aide des informations de session stockées dans la variable $Session. Le fichier d’origine n’est pas supprimé.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\test.log" -Destination "D:\MyLocalData\" -FromSession $Session

Exemple 10 : Copier l’intégralité du contenu d’un dossier distant sur l’ordinateur local

Une session est créée sur l’ordinateur distant nommé Server01 avec les informations d’identification de Contoso\User01 et stocke les résultats dans la variable nommée $Session.

L’applet de commande Copy-Item copie l’intégralité du contenu du dossier C:\MyRemoteData\scripts distant vers le dossier D:\MyLocalData local à l’aide des informations de session stockées dans la variable $Session. Si le dossier de scripts contient des fichiers dans des sous-dossiers, ces sous-dossiers sont copiés avec leurs arborescences de fichiers intactes.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\" -FromSession $Session

Exemple 11 : Copier de manière récursive l’intégralité du contenu d’un dossier distant sur l’ordinateur local

Une session est créée sur l’ordinateur distant nommé Server01 avec les informations d’identification de Contoso\User01 et stocke les résultats dans la variable nommée $Session.

L’applet de commande Copy-Item copie l’intégralité du contenu du dossier C:\MyRemoteData\scripts distant vers le dossier D:\MyLocalData\scripts local à l’aide des informations de session stockées dans la variable $Session. Étant donné que le paramètre Recurse est utilisé, l’opération crée le dossier de scripts s’il n’existe pas déjà. Si le dossier de scripts contient des fichiers dans des sous-dossiers, ces sous-dossiers sont copiés avec leurs arborescences de fichiers intactes.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\scripts" -FromSession $Session -Recurse

Paramètres

-Confirm

Vous invite à confirmer avant d’exécuter l’applet de commande.

Type:SwitchParameter
Alias:cf
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Container

Indique que cette applet de commande conserve les objets conteneur pendant l’opération de copie. Par défaut, le paramètre conteneur est défini sur True.

Type:SwitchParameter
Position:Named
Valeur par défaut:True
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Credential

Note

Ce paramètre n’est pas pris en charge par les fournisseurs installés avec PowerShell. Pour emprunter l’identité d’un autre utilisateur ou élever vos informations d’identification lors de l’exécution de cette applet de commande, utilisez Invoke-Command.

Type:PSCredential
Position:Named
Valeur par défaut:Current user
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Destination

Spécifie le chemin d’accès au nouvel emplacement. La valeur par défaut est le répertoire actif.

Pour renommer l’élément en cours de copie, spécifiez un nouveau nom dans la valeur du paramètre Destination.

Type:String
Position:1
Valeur par défaut:Current directory
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Exclude

Spécifie, en tant que tableau de chaînes, un élément ou des éléments que cette applet de commande exclut dans l’opération. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément ou un modèle de chemin d’accès, tel que *.txt. Les caractères génériques sont autorisés. Le paramètre Exclure est efficace uniquement lorsque la commande inclut le contenu d’un élément, tel que C:\Windows\*, où le caractère générique spécifie le contenu du répertoire C:\Windows.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

-Filter

Spécifie un filtre pour qualifier le paramètre Path. Le fournisseur FileSystem est le seul fournisseur PowerShell installé qui prend en charge l’utilisation de filtres. Vous trouverez la syntaxe du langage de filtre FileSystem dans about_Wildcards. Les filtres sont plus efficaces que d’autres paramètres, car le fournisseur les applique lorsque l’applet de commande obtient les objets plutôt que d’avoir PowerShell filtrer les objets après leur récupération.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

-Force

Indique que cette applet de commande copie des éléments qui ne peuvent pas être modifiés autrement, comme la copie sur un fichier ou un alias en lecture seule.

Type:SwitchParameter
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-FromSession

Spécifie l’objet PSSession à partir duquel un fichier distant est copié. Lorsque vous utilisez ce paramètre, les paramètres Path et LiteralPath font référence au chemin local sur l’ordinateur distant.

Type:PSSession
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Include

Spécifie, sous la forme d’un tableau de chaînes, un élément ou des éléments inclus dans l’opération. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément ou un modèle de chemin d’accès, tel que "*.txt". Les caractères génériques sont autorisés. Le paramètre Include n’est effectif que lorsque la commande inclut le contenu d’un élément, tel que , où le caractère générique spécifie le contenu du répertoire .

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

-LiteralPath

Spécifie un chemin d’accès à un ou plusieurs emplacements. La valeur de LiteralPath est utilisée exactement comme elle est typée. Aucun caractère n’est interprété comme des caractères génériques. Si le chemin inclut des caractères d’échappement, placez-le entre guillemets simples. Les guillemets simples indiquent à PowerShell de ne pas interpréter de caractères comme séquences d’échappement.

Pour plus d’informations, consultez about_Quoting_Rules.

Type:String[]
Alias:PSPath
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-PassThru

Retourne un objet qui représente l’élément avec lequel vous travaillez. Par défaut, cette applet de commande ne génère aucune sortie.

Type:SwitchParameter
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Path

Spécifie, en tant que tableau de chaînes, le chemin d’accès aux éléments à copier. Les caractères génériques sont autorisés.

Type:String[]
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:True

-Recurse

Indique que cette applet de commande effectue une copie récursive.

Type:SwitchParameter
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ToSession

Spécifie l’objet PSSession dans lequel un fichier distant est copié. Lorsque vous utilisez ce paramètre, le paramètre Destination fait référence au chemin local sur l’ordinateur distant.

Type:PSSession
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-UseTransaction

Inclut la commande dans la transaction active. Ce paramètre est valide uniquement lorsqu’une transaction est en cours. Pour plus d’informations, consultez about_Transactions.

Type:SwitchParameter
Alias:usetx
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-WhatIf

Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande n’est pas exécutée.

Type:SwitchParameter
Alias:wi
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

String

Vous pouvez diriger une chaîne qui contient un chemin d’accès à cette applet de commande.

Sorties

None or an object representing the copied item

Lorsque vous utilisez le paramètre passThru , cette applet de commande retourne un objet qui représente l’élément copié. Sinon, cette applet de commande ne génère aucune sortie.

Notes

Cette applet de commande est conçue pour fonctionner avec les données exposées par n’importe quel fournisseur. Pour répertorier les fournisseurs disponibles dans votre session, tapez Get-PSProvider. Pour plus d’informations, consultez about_Providers.