Copy-Item
Copie un élément d’un emplacement vers un autre.
Syntaxe
Path (Par défaut)
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>]
LiteralPath
Copy-Item
[[-Destination] <String>]
-LiteralPath <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
Remarque
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
Remarque
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.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | cf |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | True |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Credential
Remarque
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.
Propriétés du paramètre
| Type: | PSCredential |
| Valeur par défaut: | Current user |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-Destination
Spécifie le chemin d’accès au nouvel emplacement. L'emplacement 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.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | Current directory |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | 1 |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | 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 de chemin ou un modèle, 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.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | True |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-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 pouvez trouver 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.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | True |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-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.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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.
Propriétés du paramètre
| Type: | PSSession |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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 de chemin ou un modèle, 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 C:\Windows\*, où le caractère générique spécifie le contenu du répertoire C:\Windows.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | True |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-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é en tant que caractère générique. Si le chemin d’accès inclut des caractères d’échappement, mettez-le entre des 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 la section sur les règles de citation.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | PSPath |
Jeux de paramètres
LiteralPath
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | 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.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | True |
| DontShow: | False |
Jeux de paramètres
Path
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | True |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-Recurse
Indique que cette applet de commande effectue une copie récursive.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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.
Propriétés du paramètre
| Type: | PSSession |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | usetx |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | Wi |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
CommonParameters
Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.
Entrées
String
Vous pouvez acheminer une chaîne contenant un chemin vers 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, voir about_Providers.