« PowerShell » : différence entre les versions

Aller à la navigation Aller à la recherche
mAucun résumé des modifications
Ligne 1 : Ligne 1 :
{{Sommaire}}
'''PowerShell''' est un langage de programmation pour les systèmes Microsoft Windows.
'''PowerShell''' est un langage de programmation pour les systèmes Microsoft Windows.


Ligne 79 : Ligne 81 :
Mme De Fratte appartient au service Export
Mme De Fratte appartient au service Export
</pre>
</pre>
== Liste des droits sur le contenu d'une arborescence ==
<source>
# 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
    }
}
</source>
=== 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 :
* <source inline>Import-Csv "D:\script\util-maj-tel.csv" | Foreach { Set-ADUser -Identity $_.SamAccountName –Title $_.Title -MobilePhone $_.MobilePhone }</source>
Copier les groupes de sécurité d'un compte vers un autre !
* <source inline>Get-ADUser -Identity "comptesource" -Properties memberof | Select-Object -ExpandProperty memberof | Add-ADGroupMember -Members "comptecible"</source>
=== Ressource ===
* https://www.it-connect.fr/
* https://www.tutos.eu/
Installer le module Active Directory sur Windows 10 et Windows Server
* https://www.it-connect.fr/chapitres/installer-le-module-active-directory-sur-windows-10-et-windows-server/
Gérer les utilisateurs Active Directory avec PowerShell
* https://www.it-connect.fr/modules/gerer-les-utilisateurs-active-directory-avec-powershell/
Créer un utilisateur dans l’Active Directory avec PowerShell
* https://www.it-connect.fr/chapitres/creer-un-utilisateur-dans-lactive-directory-avec-powershell/
Gérer les utilisateurs et ordinateurs inactifs dans l’Active Directory
* https://www.it-connect.fr/gerer-les-utilisateurs-et-ordinateurs-inactifs-dans-lactive-directory/


== Impression ==  
== Impression ==  

Version du 21 décembre 2022 à 14:29

PowerShell est un langage de programmation pour les systèmes Microsoft Windows.

Référence


Site de Marie Pascal Delamare, BTS SIO / STS SIO

Document

Gestion des path sous PowerShell, PDF, 31 pages :

Source de script

Gérer les autorisations NTFS avec PowerShell :

Copie de fichiers avec BITS (Background Intelligent Transfer Service) :

PowerShell : convertir PS1 en EXE ; création d'un exécutable :

Interface graphique

Windows10Debloater

Script si problème mise à jour Windows

Le service "Windows Update" s'appelle wuauserv :

  • Stop-Service -Name wuauserv
  • Start-Service -Name wuauserv
  • Set-Service -Name wuauserv -StartupType Automatic
  • Set-Service -Name wuauserv -StartupType Manual
  • Set-Service -Name wuauserv -StartupType Disabled

Script de mise à jour d'Active Directory

Lire les lignes d'un fichier

Avec le fichier suivant C:\tmp\source.csv :

compte;civilité;nom;prénom;société;service
dupondp;M.;Dupond;Pierre;MaSociété;SI
martinj;M.;Martin;Jean;MaSociété;Commercial
defrattec;Mme;De Fratte;Catherine;MaSociété;Export

Premier script :

$fichier = Import-Csv "C:\tmp\source.csv" -Delimiter ";"
Foreach ($ligne in $fichier) {
    Write-Host $ligne
    }

Le résultat du premier script est :

@{compte=dupondp; nom=Dupond; prénom=Pierre; société=MaSociété; service=SI}
@{compte=martinj; nom=Martin; prénom=Jean; société=MaSociété; service=Commercial}
@{compte=defrattec; nom=De Fratte; prénom=Catherine; société=MaSociété; service=Export}

Deuxième script :

Import-Csv "C:\tmp\source.csv" -Delimiter ";" | Foreach { Write-Host ("{0} {1} appartient au service {2}" -f $_.civilité, $_.nom, $_.service) }

Le résultat du deuxième script est :

M. Dupond appartient au service SI
M. Martin appartient au service Commercial
Mme De Fratte appartient au service Export

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

Impression

Supprimer toutes les fichiers des files d'attente d'impression :

Stop-Service Spooler 
Remove-Item "C:\Windows\System32\spool\PRINTERS\*.*" -Force 
Start-Service Spooler