New-PSDrive
Crée des lecteurs temporaires et persistants associés à un emplacement dans un magasin de données d’élément.
Syntaxe
All
New-PSDrive
[-Name] <String>
[-PSProvider] <String>
[-Root] <String>
[-Description <String>]
[-Scope <String>]
[-Persist]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
L’applet de commande New-PSDrive crée des lecteurs temporaires et persistants mappés à un emplacement dans un magasin de données, tel qu’un lecteur réseau, un répertoire sur l’ordinateur local ou une clé de Registre, et des lecteurs réseau mappés par Windows persistants associés à un emplacement de système de fichiers sur un ordinateur distant.
Les lecteurs temporaires existent uniquement dans la session PowerShell actuelle et dans les sessions que vous créez dans la session active. Ils peuvent avoir n’importe quel nom valide dans PowerShell et peuvent être mappés à n’importe quelle ressource locale ou distante. Vous pouvez utiliser des lecteurs PowerShell temporaires pour accéder aux données dans le magasin de données associé, comme vous le feriez avec n’importe quel lecteur réseau mappé. Vous pouvez modifier les emplacements dans le lecteur à l’aide de Set-Locationet accéder au contenu du lecteur à l’aide de Get-Item ou de Get-ChildItem.
Étant donné que les lecteurs temporaires sont connus uniquement pour PowerShell, vous ne pouvez pas y accéder à l’aide de l’Explorateur de fichiers, de Windows Management Instrumentation (WMI), du modèle objet de composant (COM), de Microsoft .NET Framework ou d’outils tels que net use.
Les fonctionnalités suivantes ont été ajoutées à New-PSDrive dans PowerShell 3.0 :
- Lecteurs réseau mappés. Vous pouvez utiliser le paramètre Conserver de
New-PSDrivepour créer des lecteurs réseau mappés Windows. Contrairement aux lecteurs PowerShell temporaires, les lecteurs réseau mappés Par Windows ne sont pas spécifiques à la session. Ils sont enregistrés dans Windows et peuvent être gérés à l’aide d’outils Windows standard, tels que l’Explorateur de fichiers et utilisation nette. Les lecteurs réseau mappés doivent avoir un nom de lettre de lecteur et être connectés à un emplacement de système de fichiers distant. Lorsque votre commande est limitée localement, aucun point d’approvisionnement, le paramètre Persist ne conserve pas la création d’un PSDrive au-delà de l’étendue dans laquelle la commande est en cours d’exécution. Si vous exécutezNew-PSDriveà l’intérieur d’un script et que vous souhaitez que le lecteur persiste indéfiniment, vous devez créer un point-source sur le script. Pour obtenir de meilleurs résultats, pour forcer la persistance indéfinie d’un nouveau lecteur, ajoutez le paramètre d’étendue à votre commande et définissez sa valeur sur Global. Pour plus d’informations sur l’approvisionnement en points, consultez about_Scripts. - Lecteurs externes. Lorsqu’un lecteur externe est connecté à l’ordinateur, PowerShell ajoute automatiquement un PSDrive au système de fichiers qui représente le nouveau lecteur. Vous n’avez pas besoin de redémarrer PowerShell. De même, lorsqu’un lecteur externe est déconnecté de l’ordinateur, PowerShell supprime automatiquement le PSDrive qui représente le lecteur supprimé.
- Informations d’identification pour les chemins d’accès UNC (Universal Naming Convention).
Lorsque la valeur du paramètre Racine est un chemin UNC, tel que \\Server\Share, les informations d’identification spécifiées dans la valeur du paramètre Credential Credential sont utilisées pour créer le PSDrive. Sinon, d’informations d’identification n’est pas efficace lorsque vous créez de nouveaux lecteurs de système de fichiers.
Certains exemples de code utilisent la mise en plaques pour réduire la longueur de la ligne et améliorer la lisibilité. Pour plus d'informations, consultez À propos de la projection.
Remarque
Sauf si vous utilisez le paramètre d’étendue, les disques PSDrive sont créés dans l’étendue dans laquelle la commande New-PSDrive est exécutée.
Exemples
Exemple 1 : Créer un lecteur temporaire mappé à un partage réseau
Cet exemple crée un lecteur PowerShell temporaire mappé à un partage réseau.
New-PSDrive -Name "Public" -PSProvider "FileSystem" -Root "\\Server01\Public"
Name Provider Root
---- -------- ----
Public FileSystem \\Server01\Public
New-PSDrive utilise le paramètre Name pour spécifier le lecteur PowerShell nommé Public et le paramètre PSProvider pour spécifier le fournisseur de FileSystem PowerShell. Le paramètre racine spécifie le chemin UNC du partage réseau.
Pour afficher le contenu d’une session PowerShell : Get-ChildItem -Path Public:
Exemple 2 : Créer un lecteur temporaire mappé à un répertoire local
Cet exemple crée un lecteur PowerShell temporaire qui fournit l’accès à un répertoire sur l’ordinateur local.
$parameters = @{
Name = "MyDocs"
PSProvider = "FileSystem"
Root = "C:\Users\User01\Documents"
Description = "Maps to my My Documents folder."
}
New-PSDrive @parameters
Name Provider Root
---- -------- ----
MyDocs FileSystem C:\Users\User01\Documents
La mise en forme crée les clés et valeurs de paramètre. Le paramètre Name spécifie le nom du lecteur MyDocs. Le paramètre PSProvider spécifie le fournisseur de FileSystem PowerShell.
' racine spécifie le répertoire de l’ordinateur local. Le paramètre Description décrit l’objectif du lecteur.
New-PSDrive utilise les paramètres platés pour créer le lecteur MyDocs.
Pour afficher le contenu d’une session PowerShell : Get-ChildItem -Path MyDocs:
Exemple 3 : Créer un lecteur temporaire pour une clé de Registre
Cet exemple crée un lecteur PowerShell temporaire qui fournit l’accès à une clé de Registre. Il crée un lecteur nommé MyCompany mappé à la clé de Registre HKLM:\Software\MyCompany.
New-PSDrive -Name "MyCompany" -PSProvider "Registry" -Root "HKLM:\Software\MyCompany"
Name Provider Root
---- -------- ----
MyCompany Registry HKLM:\Software\MyCompany
New-PSDrive utilise le paramètre Name pour spécifier le lecteur PowerShell nommé MyCompany et le paramètre PSProvider pour spécifier le fournisseur de Registry PowerShell. Le paramètre de racine spécifie l’emplacement du Registre.
Pour afficher le contenu d’une session PowerShell : Get-ChildItem -Path MyCompany:
Exemple 4 : Créer un lecteur réseau mappé persistant à l’aide d’informations d’identification
Cet exemple mappe un lecteur réseau authentifié avec les informations d’identification d’un compte de service de domaine. Pour plus d’informations sur l’objet PSCredential qui stocke les informations d’identification et la façon dont les mots de passe sont stockés en tant que SecureString, consultez la description du paramètre Credential .
$cred = Get-Credential -Credential Contoso\ServiceAccount
New-PSDrive -Name "S" -Root "\\Server01\Scripts" -Persist -PSProvider "FileSystem" -Credential $cred
Net Use
Status Local Remote Network
---------------------------------------------------------
OK S: \\Server01\Scripts Microsoft Windows Network
Remarque
N’oubliez pas que si vous utilisez l’extrait de code ci-dessus dans un script, définissez la valeur de paramètre Étendue sur « Global » pour vous assurer que le lecteur persiste en dehors de l’étendue actuelle.
La variable $cred stocke un objet PSCredential qui contient les informations d’identification du compte de service.
Get-Credential vous invite à entrer le mot de passe stocké dans un SecureString.
New-PSDrive crée le lecteur réseau mappé à l’aide de plusieurs paramètres.
Name spécifie la lettre de lecteur S que Windows accepte. et racine définit \\Server01\Scripts comme emplacement sur un ordinateur distant.
Conserver crée un lecteur réseau mappé Windows enregistré sur l’ordinateur local.
PSProvider spécifie le fournisseur FileSystem.
Informations d’identification utilise la variable $cred pour obtenir les informations d’identification du compte de service pour l’authentification.
Le lecteur mappé peut être affiché sur l’ordinateur local dans les sessions PowerShell, l’Explorateur de fichiers et avec des outils tels que utilisation nette. Pour afficher le contenu d’une session PowerShell : Get-ChildItem -Path S:
Exemple 5 : Créer des lecteurs persistants et temporaires
Cet exemple montre la différence entre un lecteur réseau mappé persistant et un lecteur PowerShell temporaire mappé au même partage réseau.
Si vous fermez la session PowerShell, puis ouvrez une nouvelle session, le PSDrive: temporaire n’est pas disponible, mais le lecteur de X: persistant est disponible. Lorsque vous décidez de la méthode à utiliser pour mapper les lecteurs réseau, réfléchissez à la façon dont vous utiliserez le lecteur. Par exemple, s’il doit être persistant et si le lecteur doit être visible par d’autres fonctionnalités Windows.
# Create a temporary PowerShell drive called PSDrive:
# that's mapped to the \\Server01\Public network share.
New-PSDrive -Name "PSDrive" -PSProvider "FileSystem" -Root "\\Server01\Public"
# Use the Persist parameter of New-PSDrive to create the X: mapped network drive,
# which is also mapped to the \\Server01\Public network share.
New-PSDrive -Persist -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public"
# Now, you can use the Get-PSDrive drive cmdlet to examine the two drives.
# The drives appear to be the same, although the network share name appears only
# in the root of the PSDrive: drive.
Get-PSDrive -Name "PSDrive", "X"
Name Provider Root
---- -------- ----
PSDrive FileSystem \\Server01\public
X FileSystem X:\
# Get-Member cmdlet shows that the drives have the same object type,
# System.Management.Automation.PSDriveInfo.
Get-PSDrive "PSDrive", "x" | Get-Member
TypeName: System.Management.Automation.PSDriveInfo
Name MemberType Definition
---- ---------- ----------
CompareTo Method System.Int32 CompareTo(PSDriveInfo drive),
Equals Method System.Boolean Equals(Object obj),
GetHashCode Method System.Int32 GetHashCode()
...
# Net Use and Get-CimInstance for the Win32_LogicalDisk class,
# and Win32_NetworkConnection class find only the persistent X: drive.
# PowerShell temporary drives are known only to PowerShell.
Net Use
Get-CimInstance Win32_LogicalDisk | Format-Table -Property DeviceID
Get-CimInstance Win32_NetworkConnection
Status Local Remote Network
--------------------------------------------------------
OK X: \\contoso-pc\data Microsoft Windows Network
deviceid
--------
C:
D:
X:
LocalName RemoteName ConnectionState Status
--------- ---------- --------------- ------
X: \\products\public Disconnected Unavailable
Exemple 6 : Créer un lecteur persistant dans un script
Les disques PSDrive sont créés dans l’étendue dans laquelle la commande New-PSDrive est exécutée. Lorsque la commande est exécutée dans un script, le mappage de lecteur est local au script. Lorsque le script se ferme, le lecteur n’est plus disponible.
New-PSDrive -Persist -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public" -Scope Global
Pour vous assurer que le lecteur est disponible en dehors du script, vous devez utiliser le paramètre Étendue pour créer le lecteur dans l’étendue Global.
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 |
-Credential
Spécifie un compte d’utilisateur autorisé à effectuer cette action. La valeur par défaut est l’utilisateur actuel.
Étant donné que PowerShell 3.0, lorsque la valeur du paramètre de racine est un chemin UNC, vous pouvez utiliser les informations d’identification pour créer des lecteurs de système de fichiers.
Tapez un nom d’utilisateur, tel que User01 ou Domain01\User01, ou entrez un objet PSCredential généré par l’applet de commande Get-Credential. Si vous tapez un nom d’utilisateur, vous êtes invité à entrer le mot de passe.
Les informations d’identification sont stockées dans un objet PSCredential et le mot de passe est stocké en tant que SecureString.
Remarque
Pour plus d’informations sur la protection des données de SecureString, consultez Quelle est la sécurité de SecureString ?.
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 |
-Description
Spécifie une brève description textuelle du lecteur. Tapez n’importe quelle chaîne.
Pour afficher les descriptions de tous les lecteurs de la session, Get-PSDrive | Format-Table Name, Description.
Pour afficher la description d’un lecteur particulier, tapez (Get-PSDrive <DriveName>).Description.
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 |
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 |
-Name
Spécifie un nom pour le nouveau lecteur. Pour les lecteurs réseau mappés persistants, utilisez une lettre de lecteur. Pour les lecteurs PowerShell temporaires, vous n’êtes pas limité aux lettres de lecteur, utilisez n’importe quelle chaîne valide.
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 |
Jeux de paramètres
(All)
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-Persist
Indique que cette applet de commande crée un lecteur réseau mappé Windows. Le paramètre Persist est disponible uniquement sur Windows.
Les lecteurs réseau mappés sont enregistrés dans Windows sur l’ordinateur local. Ils sont persistants, pas spécifiques à la session et peuvent être consultés et gérés dans l’Explorateur de fichiers et d’autres outils.
Lorsque vous étenduez la commande localement, sans approvisionnement en points, le paramètre Conserver ne conserve pas la création d’un PSDrive au-delà de l’étendue dans laquelle vous exécutez la commande. Si vous exécutez New-PSDrive à l’intérieur d’un script et que vous souhaitez que le nouveau lecteur persiste indéfiniment, vous devez créer un point-source sur le script. Pour obtenir de meilleurs résultats, pour forcer la persistance d’un nouveau lecteur, spécifiez global comme valeur du paramètre Scope et incluez Persist dans votre commande.
Le nom du lecteur doit être une lettre, telle que D ou E. La valeur de paramètre de racine doit être un chemin UNC d’un autre ordinateur. La valeur du paramètre PSProvider doit être FileSystem.
Pour déconnecter un lecteur réseau mappé Windows, utilisez l’applet de commande Remove-PSDrive. Lorsque vous déconnectez un lecteur réseau mappé Windows, le mappage est définitivement supprimé de l’ordinateur, pas seulement supprimé de la session active.
Les lecteurs réseau mappés sont spécifiques à un compte d’utilisateur. Les lecteurs mappés créés dans des sessions ou des sessions avec élévation de privilèges à l’aide des informations d’identification d’un autre utilisateur ne sont pas visibles dans les sessions démarrées à l’aide d’informations d’identification différentes.
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é: | True |
| Valeur des arguments restants: | False |
-PSProvider
Spécifie le fournisseur PowerShell qui prend en charge les lecteurs de ce type.
Par exemple, si le lecteur est associé à un partage réseau ou à un répertoire de système de fichiers, le fournisseur PowerShell est FileSystem. Si le lecteur est associé à une clé de Registre, le fournisseur est Registry.
Les lecteurs PowerShell temporaires peuvent être associés à n’importe quel fournisseur PowerShell. Les lecteurs réseau mappés ne peuvent être associés qu’au fournisseur FileSystem.
Pour afficher la liste des fournisseurs dans votre session PowerShell, utilisez l’applet de commande Get-PSProvider.
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 |
Jeux de paramètres
(All)
| Position: | 1 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-Root
Spécifie l’emplacement du magasin de données auquel un lecteur PowerShell est mappé.
Par exemple, spécifiez un partage réseau, tel que \\Server01\Public, un répertoire local, tel que C:\Program Files, ou une clé de Registre, comme HKLM:\Software\Microsoft.
Les lecteurs PowerShell temporaires peuvent être associés à un emplacement local ou distant sur n’importe quel lecteur de fournisseur pris en charge. Les lecteurs réseau mappés ne peuvent être associés qu’à un emplacement de système de fichiers sur un ordinateur distant.
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 |
Jeux de paramètres
(All)
| Position: | 2 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-Scope
Spécifie une portée pour le lecteur. Les valeurs acceptables pour ce paramètre sont les suivantes : global, local et script, ou un nombre par rapport à l’étendue actuelle. Étendues numéro 0 par le nombre d’étendues. Le numéro d’étendue actuel est 0 et son parent est 1. Pour plus d’informations, consultez about_Scopes.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | Local |
| 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 |
-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
None
Vous ne pouvez pas diriger les objets vers cette applet de commande
Sorties
PSDriveInfo
Cette applet de commande retourne un objet PSDriveInfo représentant le lecteur créé.
Notes
PowerShell inclut les alias suivants pour Get-PSDrive:
- Toutes les plateformes :
ndr
- Windows :
mount
New-PSDrive est conçu pour fonctionner avec les données exposées par n’importe quel fournisseur. Pour répertorier les fournisseurs disponibles dans votre session, utilisez Get-PSProvider. Pour plus d’informations sur les fournisseurs, consultez about_Providers.
Les lecteurs réseau mappés sont spécifiques à un compte d’utilisateur. Les lecteurs mappés créés dans des sessions ou des sessions avec élévation de privilèges à l’aide des informations d’identification d’un autre utilisateur ne sont pas visibles dans les sessions démarrées à l’aide d’informations d’identification différentes.