Base
- Types d'objets de base
- Manipulation d'objets et commandes communes
- Manipulation de chemins d'accès pour objets Powershell
Types d'objets de base
History
D'abord et avant tout, je vous suggère fortement de vous familiariser avec le type d'objet History. Il s'agit de l'historique des commandes que vous avez saisi au cours d'une session Powershell. Ces objets vous aideront à créer des scritps, à réviser vos commandes, etc.
Ces commandes sont écrites dans le fichier "%AppData%\Microsoft\Windows\PowerShell\PSReadLine"
Ces objets sont consultables à l'aide de la commande "Get-History" et sont composés des propriétés suivantes :
Id : 7
CommandLine : $mon_message = "Hello world!"
ExecutionStatus : Completed
StartExecutionTime : 2025-01-18 4:20:04 PM
EndExecutionTime : 2025-01-18 4:20:04 PM
Id : 8
CommandLine : Write-Host $mon_message
ExecutionStatus : Completed
StartExecutionTime : 2025-01-18 4:20:10 PM
EndExecutionTime : 2025-01-18 4:20:10 PM
Vous pourriez donc facilement à partir de cet historique créer un script basé sur les manipulations que vous avez fait lors de votre session si vous sélectionnez seulement la ligne de commande comme ceci :
PS C:\Users\alexa> Get-History | Select-Object -Property CommandLine
CommandLine
-----------
clear-history
$mon_message = "Hello world!"
Write-Host $mon_message
Get-History
Get-History | Select-Object -Property *
ID
L'identifiant de l'objet détermine l'ordre dans lequel les commandes ont été exécutées.
CommandLine
La commande exécutée.
ExecutionStatus
L'état de la commande à savoir si elle est en cours d'exécution (ex. un ping continu), si elle a échoué ou si elle a été complétée.
StartExecutionTime
La date et l'heure de l'exécution de la commande.
EndExecutionTime
La date et l'heure de la fin d'exécution de la commande, qu'elle ait été annulée, qu'elle ait échouée ou qu'elle se soit complétée.
Item et ChildItem
Un ChildItem peut représenter plusieurs types d'information. Ce type d'objet est généralement utilisé pour manipuler des fichiers sur un espace de stockage mais peut aussi être utilisé pour modifier des clés de registre.
On peut déduire du nom des types d'objets qu'un Item sélectionne seulement l'objet demandé tandis qu'un ChildItem sélectionnera les objets situés à l'intérieur de l'objet. Ces deux types d'objets possèdent les mêmes propriétés et peuvent être manipulés de la même façon.
PS C:\Users\alexa> Get-Item D:\Item | Select-Object -Property *
PSPath : Microsoft.PowerShell.Core\FileSystem::D:\Item
PSParentPath : Microsoft.PowerShell.Core\FileSystem::D:\
PSChildName : Item
PSDrive : D
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : True
Mode : d-----
BaseName : Item
Target : {}
LinkType :
Name : Item
FullName : D:\Item
Parent :
Exists : True
Root : D:\
Extension :
CreationTime : 2025-01-18 4:35:18 PM
CreationTimeUtc : 2025-01-18 9:35:18 PM
LastAccessTime : 2025-01-18 4:35:27 PM
LastAccessTimeUtc : 2025-01-18 9:35:27 PM
LastWriteTime : 2025-01-18 4:35:26 PM
LastWriteTimeUtc : 2025-01-18 9:35:26 PM
Attributes : Directory
Lorsque l'on récupère les "ChildItem", il est aussi possible d'ajouter le paramètre "-recurse" pour sélectionner récursivement les objets dans les sous-dossiers ou sous-clés de registre.
PS C:\Users\alexa> Get-ChildItem D:\Item
Directory: D:\Item
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2025-01-18 4:40 PM Subdirectory
-a---- 2025-01-18 4:35 PM 0 ChildItem-1.txt
-a---- 2025-01-18 4:38 PM 0 ChildItem-2.txt
PS C:\Users\alexa> Get-ChildItem D:\Item -Recurse
Directory: D:\Item
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2025-01-18 4:40 PM Subdirectory
-a---- 2025-01-18 4:35 PM 0 ChildItem-1.txt
-a---- 2025-01-18 4:38 PM 0 ChildItem-2.txt
Directory: D:\Item\Subdirectory
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2025-01-18 4:40 PM 0 SubChildItem.txt
L'exemple suivant servirait à consulter le registre HKEY_CURRENT_USER.
PS C:\Users\alexa> Get-ChildItem HKCU:/Item
Hive: HKEY_CURRENT_USER\Item
Name Property
---- --------
ChildItem Value : Content
Content
Tout comme en Linux la commande "cat" nous permet de lire le contenu d'un fichier et la redirection de sortie > et >> nous permet d'ajouter ou modifier le contenu du fichier, le type d'objet "Content" en Powershell nous permet de poser des actions similaires. Ce sont ici les commandes Get-Content, Clear-Content, Add-Content et Set-Content qui nous intéressent.
# Contenu initial du fichier
PS C:\Users\alexa> Get-Content D:\Item\ChildItem-1.txt
Hello world!
# Contenu vidé du fichier
PS C:\Users\alexa> Clear-Content D:\Item\ChildItem-1.txt
PS C:\Users\alexa> Get-Content D:\Item\ChildItem-1.txt
# Contenu ajouté au fichier
PS C:\Users\alexa> Add-Content -Path D:\Item\ChildItem-1.txt -Value "Bonjour le monde!"
PS C:\Users\alexa> Get-Content D:\Item\ChildItem-1.txt
Bonjour le monde!
# Contenu du fichier remplacé
PS C:\Users\alexa> Set-Content -Path D:\Item\ChildItem-1.txt -Value "Goodbye world!"
PS C:\Users\alexa> Get-Content D:\Item\ChildItem-1.txt
Goodbye world!
ACL
Les ACL ou "Access Control List" sont les permissions d'accès assignée à différents fichiers. Ces listes peuvent être consultées ou modifiées en Powershell à l'aide des commandes "Get-ACL" et "Set-ACL". Contrairement à "chmod" sous Linux nous permettant seulement de modifier les autorisations du fichier pour son propriétaire, son groupe propriétaire et les autres, la manipulation des ACL avec Powershell nous permet de gérer les ACLs avancées (ex. groupes et utilisateurs supplémentaires) tout comme "setfact" et "getfacl" sous Linux.
Les propriétés les plus intéressantes de ce type d'objet sont le propriétaire, le groupe propriétaire et la propriété "AccessToString" déterminant quel utilisateur a accès au fichier.
# Vérification initiale des ACL (Les propriétés non pertinentes ont été retirées de l'affichage)
PS C:\Users\alexa> Get-ACL D:\Item\ChildItem-1.txt | Select-Object -Property *
Path : Microsoft.PowerShell.Core\FileSystem::D:\Item\ChildItem-1.txt
Owner : PC\alexa
Group : PC\alexa
AccessToString : BUILTIN\Administrators Allow FullControl
NT AUTHORITY\SYSTEM Allow FullControl
NT AUTHORITY\Authenticated Users Allow Modify, Synchronize
BUILTIN\Users Allow ReadAndExecute, Synchronize
# Ajout d'une permission
#
# Récupérer les permissions actuelles
PS C:\Users\alexa> $acl = Get-ACL D:\Item\ChildItem-1.txt
# Créer une nouvelle permission et la traduire en objet de règle
PS C:\Users\alexa> $permission = "PC\Invité","Modify","None",'None','Allow'
PS C:\Users\alexa> $rule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
# Ajouter la règle à l'objet de permissions
PS C:\Users\alexa> $acl.AddAccessRule($rule)
# Appliquer le nouvel objet de permissions au fichier
PS C:\Users\alexa> Set-ACL -Path D:\Item\ChildItem-1.txt -AclObject $acl
# Valider les nouvelles permissions, observer que "Invité" a été ajouté aux permissions (Les propriétés non pertinentes ont été retirées de l'affichage)
PS C:\Users\alexa> Get-ACL -Path D:\Item\ChildItem-1.txt | Select-Object -Property *
Path : Microsoft.PowerShell.Core\FileSystem::D:\Item\ChildItem-1.txt
Owner : PC\alexa
Group : PC\alexa
AccessToString : PC\Invité Allow Modify, Synchronize
BUILTIN\Administrators Allow FullControl
NT AUTHORITY\SYSTEM Allow FullControl
NT AUTHORITY\Authenticated Users Allow Modify, Synchronize
BUILTIN\Users Allow ReadAndExecute, Synchronize
Comme on peut l'observer ici, il arrive souvent que les objets deviennent rapidement complexes à créer et intégrer.
Service
Un autre objet pertinent à savoir manipuler dans un contexte d'automatisation est un service. À l'aide des commandes Start, Stop, Restart et Set, vous pourrez manipuler les différents services en exécution sur votre machine. Il est important pour ce type d'objet de faire la différence entre le nom du service et son nom d'affichage pour bien manipuler ces objets.
PS C:\Users\alexa> Get-Service | Where-Object Name -like wuauserv | Select-Object -Property *
Name : wuauserv
RequiredServices : {rpcss}
CanPauseAndContinue : False
CanShutdown : False
CanStop : False
DisplayName : Windows Update
DependentServices : {}
MachineName : .
ServiceName : wuauserv
ServicesDependedOn : {rpcss}
ServiceHandle :
Status : Stopped
ServiceType : Win32OwnProcess, Win32ShareProcess
StartType : Manual
Site :
Container :
On peut observer ici le service de Windows Update et son type de démarrage qui est manuel. Ce service démarre seulement lorsqu'une recherche ou installation de mises à jour soit déclenchée, que ce soit manuellement ou par tâche planifiée.
Manipulation d'objets et commandes communes
Get-Help
La commande Get-Help peut vous permettre au même titre que "man" en Linux de voir tous les paramètres qu'une commande Powershell peut accepter. À sa première exécution, l'aide sera téléchargée pour une panoplie de modules et sera ensuite disponible même hors ligne.
PS C:\WINDOWS\system32> Get-Help Get-Help
NOM
Get-Help
RÉSUMÉ
Displays information about PowerShell commands and concepts.
SYNTAXE
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider | General | FAQ | Glossary | HelpFile |
ScriptCommand | Function | Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource | Class |
Configuration}] [-Component <System.String[]>] -Detailed [-Functionality <System.String[]>] [-Path <System.String>]
[-Role <System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider | General | FAQ | Glossary | HelpFile |
ScriptCommand | Function | Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource | Class |
Configuration}] [-Component <System.String[]>] -Examples [-Functionality <System.String[]>] [-Path <System.String>]
[-Role <System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider | General | FAQ | Glossary | HelpFile |
ScriptCommand | Function | Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource | Class |
Configuration}] [-Component <System.String[]>] [-Full] [-Functionality <System.String[]>] [-Path <System.String>]
[-Role <System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider | General | FAQ | Glossary | HelpFile |
ScriptCommand | Function | Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource | Class |
Configuration}] [-Component <System.String[]>] [-Functionality <System.String[]>] -Online [-Path <System.String>]
[-Role <System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider | General | FAQ | Glossary | HelpFile |
ScriptCommand | Function | Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource | Class |
Configuration}] [-Component <System.String[]>] [-Functionality <System.String[]>] -Parameter <System.String> [-Path
<System.String>] [-Role <System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider | General | FAQ | Glossary | HelpFile |
ScriptCommand | Function | Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource | Class |
Configuration}] [-Component <System.String[]>] [-Functionality <System.String[]>] [-Path <System.String>] [-Role
<System.String[]>] -ShowWindow [<CommonParameters>]
La commande peut aussi vous présenter des exemples d'utilisation de la commande recherchée :
PS C:\WINDOWS\system32> Get-Help Get-Help -examples
NOM
Get-Help
RÉSUMÉ
Displays information about PowerShell commands and concepts.
--- Example 1: Display basic help information about a cmdlet ---
Get-Help Format-Table
Get-Help -Name Format-Table
Format-Table -?
`Get-Help <cmdlet-name>` is the simplest and default syntax of `Get-Help` cmdlet. You can omit the Name parameter.
The syntax `<cmdlet-name> -?` works only for cmdlets.
New-Object
La commande New-Object est généralement utilisée pour déclarer un objet et le stocker dans une variable. On peut considérer les objets en Powershell comme une instanciation de classe en programmation. Un bon exemple de ceci est présent dans la section ACL des types d'objets.
Un autre cas d'utilisation commun de cette commande est pour créer un objet de type crédentiels pour éviter de redemander à l'utilisateur ses informations à chaque commande qui les nécessite. Quoi qu'il soit possible de les récupérer avec la commande Get-Credential, si on désire rester dans l'invite de commande ou charger ce type d'objet depuis un fichier, il devient plus simple d'utiliser la commande New-Object de la façon suivante :
# Lecture des informations d'authentification
$uname = Read-Host -Prompt "Nom d'utilisateur"
$pwd = Read-Host -Prompt "Mot de passe" -AsSecureString
# Création de l'objet
$credential = New-Object System.Management.Automation.PSCredential($uname,$pwd)
Quoi qu'il soit possible d'inscrire directement des informations d'authentification dans le script, ces scripts sont généralement lisible par les postes de travail et voir même les utilisateurs. Ceci est fortement déconseillé!
New
D'autres commandes "New" servent à créer des objets à pour système d'exploitation tel que des utilisateurs locaux, des groupes locaux, des entrées dans le journal d'évènement, etc.
Par exemple, la commande New-User ajouterait un utilisateur local à votre système :
PS C:\WINDOWS\system32> Get-LocalUser
Name Enabled Description
---- ------- -----------
Administrateur False Compte d’utilisateur d’administration
Bob True
DefaultAccount False Compte utilisateur géré par le système.
Invité False Compte d’utilisateur invité
WDAGUtilityAccount False Compte d’utilisateur géré et utilisé par le système pour les scénarios Windows Defender A...
PS C:\WINDOWS\system32> $pwd = ConvertTo-SecureString "Soleil123" -AsPlainText -Force
PS C:\WINDOWS\system32> New-LocalUser -FullName "Ta mère" -Name "rita" -Password $pwd -PasswordNeverExpires -AccountNeverExpires
Name Enabled Description
---- ------- -----------
rita True
PS C:\WINDOWS\system32> Get-LocalUser
Name Enabled Description
---- ------- -----------
Administrateur False Compte d’utilisateur d’administration
Bob True
DefaultAccount False Compte utilisateur géré par le système.
Invité False Compte d’utilisateur invité
rita True
WDAGUtilityAccount False Compte d’utilisateur géré et utilisé par le système pour les scénarios Windows Defender A...
Add
Les commandes débutant par Add servent généralement à ajouter des entrées à des systèmes existants. Il peut s'agir de créer des fichiers, des entrées de registre, des utilisateurs dans un domaine Active Directory, des fonctionnalités Windows, des périphériques réseau, etc.
Une de ces commandes pourrait servir à ajouter un utilisateur à un groupe.
PS C:\WINDOWS\system32> Get-LocalGroupMember -Group "Administrateurs"
ObjectClass Name PrincipalSource
----------- ---- ---------------
Utilisateur DESKTOP-D67ERFV\Administrateur Local
Utilisateur DESKTOP-D67ERFV\Bob Local
PS C:\WINDOWS\system32> Add-LocalGroupMember -Group "Administrateurs" -Member rita
PS C:\WINDOWS\system32> Get-LocalGroupMember -Group "Administrateurs"
ObjectClass Name PrincipalSource
----------- ---- ---------------
Utilisateur DESKTOP-D67ERFV\Administrateur Local
Utilisateur DESKTOP-D67ERFV\Bob Local
Utilisateur DESKTOP-D67ERFV\rita Local
Set
Les commandes "Set" sont utilisées pour modifier ou définir un ou des paramètres liés à un objet. Ces commandes remplacent la valeur mentionnée.
Une de ces commandes pourrait servir à modifier le mot de passe d'un utilisateur.
PS C:\WINDOWS\system32> $pwd = ConvertTo-SecureString "123Soleil" -AsPlainText -Force
PS C:\WINDOWS\system32> Set-LocalUser -Name rita -Password $pwd
Get
Les commandes "Get" servent à consulter les objets système ou les objets de scripts comme les variables. Elles sont souvent utilisées conjointement aux commandes "Select-Object", "Where-Object" et à des commandes d'action telles que les commandes "Set" par du "pipelining".
En voici quelques exemples :
# Afficher seulement certaines propriétés déterminées par Select-Object de certains objets correspondant à un critère déterminé par Where-Object
PS C:\Users\alexa> Get-ChildItem -Path D:\Item | Where-Object Name -like "*.txt" | Select-Object -Property FullName,LastWriteTime
FullName LastWriteTime
-------- -------------
D:\Item\ChildItem-1.txt 2025-01-18 4:58:47 PM
D:\Item\ChildItem-2.txt 2025-01-18 4:38:23 PM
# Renommer les fichiers correspondants à ceux correspondant à la requête Where-Object à l'aide de la commande Rename-Item
PS C:\Users\alexa> Get-ChildItem -Path D:\Item | Where-Object Name -like "*.txt" | Rename-Item -NewName {$_.name -replace 'ChildItem','ObjetEnfant'}
PS C:\Users\alexa> Get-ChildItem -Path D:\Item | Where-Object Name -like "*.txt" | Select-Object -Property FullName,LastWriteTime
FullName LastWriteTime
-------- -------------
D:\Item\ObjetEnfant-1.txt 2025-01-18 4:58:47 PM
D:\Item\ObjetEnfant-2.txt 2025-01-18 4:38:23 PM
# Supprimer les fichiers correspondant au filtre Where-Object
PS C:\Users\alexa> Get-ChildItem -Path D:\Item | Where-Object Name -like "*.txt" | Remove-Item
PS C:\Users\alexa> Get-ChildItem -Path D:\Item
Directory: D:\Item
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2025-01-18 4:40 PM Subdirectory
Where-Object
La commande Where-Object généralement utilisée avec une commande de type "Get" permet de filtrer les résultats affichés en fonction d'un ou plusieurs paramètres de l'objet ainsi que les objets résultants sur lesquels la commande "pipelinée" suivante sera appliquée. Dans l'exemple précédent, le filtre récupérait uniquement les fichiers texte donc l'action de retrait n'a pas affecté la structure de dossiers.
Dans l'exemple suivant, seulement
Select-Object
La commande Select-Object permet de déterminer quels paramètres récupérer ou afficher d'un objet. Dans l'exemple précédent, Seulement le nom complet du fichier ainsi que la dernière date de modification étaient sélectionnés et affichés.
Read-Host/Write-Host
Ces commandes sont généralement utilisées pour questionner l'utilisateur et stocker la réponse dans une variable et pour écrire de la journalisation dans la console.
Manipulation de chemins d'accès pour objets Powershell
Par défaut, une session Powershell a accès aux disques locaux (ex. C:\), aux ruches de registres HKLM (HKEY_LOCAL_MACHINE), HKCU (HKEY_CURRENT_USER), aux partages réseaux accessibles dans le contexte d'exécution de la session ou du script, aux variables d'environnement ($env:) et quelques autres ressources.
Get-PSDrive
La commande Get-PSDrive permet de lister l'ensemble des ressources accessibles par la session/script powershell :
PS C:\Users\alexa> Get-PSDrive
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
A 486.59 530.63 FileSystem \\10.4.20.69\arsenaultja
Alias Alias
C 877.85 52.87 FileSystem C:\
Cert Certificate \
D 183.83 39.14 FileSystem D:\
E 1510.09 352.93 FileSystem E:\
Env Environment
Function Function
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
M 3705.20 757.75 FileSystem \\10.4.20.69\Media
Variable Variable
WSMan WSMan
New-PSDrive
La commande New-PSDrive permet de gagner accès à des ressources supplémentaires, qu'il s'agisse d'un lecteur réseau, d'une ruche de registre ou d'une clé USB, la commande New-PSDrive nous permet d'ajouter un chemin pour accéder à cette ressources à partir d'un script ou d'une session Powershell.
Connexion d'une ruche de registre
Dans l'exemple suivant, la commande New-PSDrive nous permettra d'accéder à la ruche de registre HKEY_USERS
PS C:\Users\alexa> Get-PSDrive | Where-Object Provider -like *Registry*
Name Used (GB) Free (GB) Provider Root CurrentLocation
---- --------- --------- -------- ---- ---------------
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
PS C:\Users\alexa> New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS
Name Used (GB) Free (GB) Provider Root CurrentLocation
---- --------- --------- -------- ---- ---------------
HKU Registry HKEY_USERS
PS C:\Users\alexa> Get-PSDrive | Where-Object Provider -like *Registry*
Name Used (GB) Free (GB) Provider Root CurrentLocation
---- --------- --------- -------- ---- ---------------
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
HKU Registry HKEY_USERS
Ajout d'un PSDrive référant à un stockage
Tout comme un raccourci, il est possible de créer un PSDrive faisant référence à un stockage existant. Dans l'exemple suivant, nous créons un PSDrive faisant référence au dossier de l'utilisateur nommé "USRDIR". Celui-ci nous permettra d'interagir avec le contenu de C:\Users\[mon utilisateur] en poitant USRDIR:\ plutôt que le chemin complet.
PS C:\Users\alexa> Get-PSDrive | Where-Object Provider -like *FileSystem*
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
A 486.59 530.63 FileSystem \\10.4.20.69\arsenaultja
C 877.96 52.76 FileSystem C:\
D 183.83 39.14 FileSystem D:\
E 1510.09 352.93 FileSystem E:\
PS C:\Users\alexa> New-PSDrive -Name USRDIR -PSProvider FileSystem -Root C:\Users\$env:UserName
Name Used (GB) Free (GB) Provider Root CurrentLocation
---- --------- --------- -------- ---- ---------------
USRDIR 0.00 52.98 FileSystem C:\Users\alexa
PS C:\Users\alexa> Get-ChildItem -Path USRDIR:
Directory: C:\Users\alexa
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2023-12-28 10:24 PM .android
d----- 2023-05-02 7:59 PM .arduinoIDE
d----- 2023-12-13 11:13 AM .cache
d----- 2025-01-25 4:26 PM .config
d----- 2024-11-13 1:33 PM .dbus-keyrings
d----- 2025-01-13 3:37 PM .espressif
d----- 2024-05-17 10:25 AM .ms-ad
d----- 2025-01-26 8:06 PM .ssh
d----- 2025-02-05 3:56 PM .VirtualBox
d----- 2023-06-11 12:15 PM .vscode
d----- 2024-12-30 10:25 PM .zenmap
d-r--- 2023-11-18 10:05 PM Contacts
d----- 2023-03-12 8:12 PM Documents
d-r--- 2025-02-08 12:14 AM Downloads
d-r--- 2023-11-18 10:05 PM Favorites
d----- 2023-08-06 1:44 PM GNS3
d-r--- 2023-11-18 10:05 PM Links
d-r--- 2024-07-15 4:02 PM Music
d----- 2024-09-21 2:29 PM node_modules
dar--- 2023-11-18 10:00 PM OneDrive
d-r--- 2024-09-25 10:01 PM Saved Games
d----- 2023-03-12 8:27 PM scoop
d-r--- 2025-01-22 9:16 PM Searches
d----- 2024-05-13 7:11 AM Sync
d-r--- 2025-01-01 5:57 PM Videos
d----- 2025-01-26 5:12 PM VirtualBox VMs
-a---- 2024-09-22 1:24 AM 15093960192 gns3.ova
-a---- 2024-08-15 10:24 AM 131138940 Templates.gns3project
Retrait d'un PSDrive
Il est aussi possible par la même logique de retirer un PSDrive.
PS C:\Users\alexa> Get-PSDrive | Where-Object Provider -like *FileSystem*
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
A 486.59 530.63 FileSystem \\10.4.20.69\arsenaultja
C 877.67 53.05 FileSystem C:\
D 183.83 39.14 FileSystem D:\
E 1510.09 352.93 FileSystem E:\
F 43.70 15.18 FileSystem F:\
G 0.02 0.01 FileSystem G:\
H 3471.56 254.42 FileSystem H:\
J 1471.71 391.29 FileSystem J:\
M 3705.20 757.75 FileSystem \\10.4.20.69\Media
USRDIR 0.00 53.05 FileSystem C:\Users\alexa
PS C:\Users\alexa> Get-PSDrive | Where-Object Name -like USRDIR | Remove-PSDrive
PS C:\Users\alexa> Get-PSDrive | Where-Object Provider -like *FileSystem*
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
A 486.59 530.63 FileSystem \\10.4.20.69\arsenaultja
C 877.67 53.05 FileSystem C:\
D 183.83 39.14 FileSystem D:\
E 1510.09 352.93 FileSystem E:\
F 43.70 15.18 FileSystem F:\
G 0.02 0.01 FileSystem G:\
H 3471.56 254.42 FileSystem H:\
J 1471.71 391.29 FileSystem J:\
M 3705.20 757.75 FileSystem \\10.4.20.69\Media