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 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
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
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
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
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
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
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.