PowerShell/Sécurité
Identifiant en clair
<# Description : création d'un lecteur réseau, avec utilisation d'un compte et d'un mot de passe Usage : exercice en PowerShell Auteur : fylip22 Version : 1.0 Révisions : - 1.0 (27/03/2024) : fylip22, création du script #> # mot de passe $password = ConvertTo-SecureString "MonMotDePasse" -AsPlainText -Force # autre variable $R1 = "192.168.1.11" # création de l'identifiant (association compte et mot de passe $Identifiant = New-Object System.Management.Automation.PSCredential ("$R1\username", $password) # création du lecteur T: New-PSDrive -Name t -Root "\\$R1\dossierpartage$" -PSProvider "FileSystem" -Credential $Identifiant
Stockage des identifiants dans un fichier
Création d'un fichier contenant les identifiants :
$IdentFichier = "c:\support\lecompte.xml" New-Object System.Management.Automation.PSCredential("lecompte", (ConvertTo-SecureString -AsPlainText -Force "#MonMotdePasse2023*")) | Export-Clixml $IdentFichier
Utilisation du fichier contenant les identifiants:
$IdentFichier = "c:\support\lecompte.xml" $Ident = Import-Clixml -path $IdentFichier
Utilisation du gestionnaire d'identification Windows
Avec les prérequis suivants :
Install-Module -Name CredentialManager
Set-ExecutionPolicy RemoteSigned
Etape 1 : création d'une nouvelle identification via le "Gestionnaire d'identification" :
- "ajouter des informations d'identification générique"
- adresse internet ou réseau, nom d'utilisateur et mot de passe
- exemple "o365, moncompte@toto.onmicrosoft.com, monmotdepasse"
Etape 2 : récupération des informations :
$cred = Get-StoredCredential -Target "o365"
Source
Youtube, Shane Young, Learn to securely use Passwords with PowerShell :
Liste des droits sur le contenu d'une arborescence
# Liste des droits de sécurité sur les dossiers et fichiers d'une arborescence # Création d'un fichier $FichierDestination = "C:\Support\PermissionListeTest.csv" $CheminRacine = "C:\Support\" # Entête de document $FichierEntete = "Chemin;IdentityReference;AccessControlType;IsInherited;InheritanceFlags;PropagationFlags;FilesystemRights" $FichierExiste = Test-Path $FichierDestination If ($FichierExiste -eq $True) {Remove-Item $FichierDestination} Add-Content -Encoding UTF8 -Value $FichierEntete -Path $FichierDestination $DossierListe = dir $CheminRacine -recurse | Where {$_.psiscontainer -eq $True} Foreach ($Dossier in $DossierListe) { $DroitListe = Get-ACL $Dossier.fullname | ForEach-Object { $_.Access } Foreach ($Droit in $DroitListe) { $FichierLigne = ($Dossier.Fullname, $Droit.IdentityReference, $Droit.AccessControlType, $Droit.IsInherited, $Droit.InheritanceFlags, $Droit.PropagationFlags, ($Droit.FileSystemRights -replace ',', '/' ) ) -join ";" Add-Content -Encoding UTF8 -Value $FichierLigne -Path $FichierDestination } }
Autre
Pour la mise à jour de compte utilisateur, attribut titre et numéro de mobile, d'après le nom du compte et une fichier :
Import-Csv "D:\script\util-maj-tel.csv" | Foreach { Set-ADUser -Identity $_.SamAccountName –Title $_.Title -MobilePhone $_.MobilePhone }
Copier les groupes de sécurité d'un compte vers un autre !
Get-ADUser -Identity "comptesource" -Properties memberof | Select-Object -ExpandProperty memberof | Add-ADGroupMember -Members "comptecible"
Ressource
Installer le module Active Directory sur Windows 10 et Windows Server
Gérer les utilisateurs Active Directory avec PowerShell
Créer un utilisateur dans l’Active Directory avec PowerShell
Gérer les utilisateurs et ordinateurs inactifs dans l’Active Directory