{{tag>sysadmin windows powershell}}
:TODO_DOCUPDATE:
====== PowerShell : Gestion des postes clients ======
Les cmdlets de gestion des postes clients sous Windows 10 sont regroupées dans le module ''Microsoft.PowerShell.Management''
# Lister les applets de gestions
Get-command -module Microsoft.PowerShell.Management
# Récupère et affiche les 20 derniers échecs d'authentification
Get-EventLog -LogName Security -Newest 20 -InstanceId 4625
# Effacer le journal
Clear-EventLog -LogName Security
===== Gestion des droits d'accès =====
Les droits d'accès aux dossiers/fichiers sont définis par ACL (Acces Control List). On peut gérer les ACL via les cmdlets **Get-Acl** et **Set-Acl**
# Les commandes de gestions des droits d'accès sont
# regroupées dans le module Security
Get-command -module Microsoft.PowerShell.Security
# Récupère le descripteur de sécurité
# associé au dossier "C:\Users\aUser\aRepository"
Get-Acl -Path 'C:\Users\aUser\aRepository' | Format-List
Le descripteur contient la liste des droits d'accès (ACL) dans l'attribut Acces
(Get-Acl -Path 'C:\Users\aUser\aRepository').Access
Pour mettre à jour les droits sur un fichier/dossier :
- Récupérer une copie des ACL via **Get-Acl** ;
- Créer une nouvelle règle via l'objet **FileSystemAccessRule** ;
- Ajouter la règle aux autorisations ;
- Appliquer les ACL modifiées au fichier/dossier avec **Set-Acl**.
# récupère les ACL du fichier
$myAcl = Get-Acl -Path '.\path\to\aFile'
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("aUserName","Modify","Allow")
$myAcl.SetAccessRule($AccessRule)
$myACL | Set-Acl -Path '.\path\to\aFile'
Via PowerShell il est facile de copier les ACL d'un objet à un autre :
# Copie les ACL de folderA sur FolderB
Get-Acl -Path '.\path\to\folderA' | Set-ACL -Path '.\path\to\folderB'
===== Références =====
* https://learn.microsoft.com/fr-fr/training/modules/manage-settings-for-local-windows-machine-use-powershell-cmdlets/