« PowerShell : scripts complets » : différence entre les versions
Aller à la navigation
Aller à la recherche
(Page créée avec « = Script de manipulation de fichiers = Dans ce script, le but est de venir en aide à l'utilisatrice "Micheline"; celle-ci a besoin de récupérer des fichiers et de vé... ») |
Aucun résumé des modifications |
||
Ligne 28 : | Ligne 28 : | ||
#On affiche les fichiers concernés par la sauvegarde | #On affiche les fichiers concernés par la sauvegarde | ||
Write-Host "Les fichiers qui seront sauvegardés sont :"; $fichiers; $secret | Write-Host "Les fichiers qui seront sauvegardés sont :"; $fichiers; $secret | ||
###5 - Création de l'archive : je pars du fichier secret.txt, puis je mets mon archive à jour avec les autres fichiers | ###5 - Création de l'archive : je pars du fichier secret.txt, puis je mets mon archive à jour avec les autres fichiers | ||
#Création de l'archive | #Création de l'archive | ||
Ligne 64 : | Ligne 64 : | ||
}</pre> | }</pre> | ||
<br/> | = <br/> Script de création d'OU et d'utilisateurs = | ||
Ce script a pour but de créer des OUs et des utilisateurs sur un contrôleur de domaine. Les OUs sont d'abord créés, puis les utilisateurs, tous destinés à l'OU "ENG". Ce script est destiné au controleur de domaine du domaine "lpasr.loc". Il est plutôt efficace :) | |||
Les OUs et utilisateurs apparaissent ensuite dans le centre de contrôle Active Directory : | |||
<pre>###TP Création d'annuaire | |||
#Pour ce TP je pars d'un serveur Windows Server 2012 R2 en version d'essai | |||
#Celui-ci est déjà Domain Controller du domaine lpasr.loc | |||
###1 - Création des OU | |||
$OUsRacine = @("FRA", "ALL", "ENG", "ESP") #OUs de premier niveau | |||
$OUsENG = @("Compta", "DSI", "Secu", "DRH") #OUs situées dans ENG | |||
#Création des OU de premier niveau | |||
foreach ($ou in $OUsRacine){ | |||
New-ADOrganizationalUnit -name $ou -Path "DC=lpasr, DC=loc" -ProtectedFromAccidentalDeletion $true | |||
} | |||
#Création des OU contenues dans ENG | |||
foreach ($SousOu in $OUsENG){ | |||
New-ADOrganizationalUnit -name $SousOu -Path "OU=ENG, DC=lpasr, DC=loc" -ProtectedFromAccidentalDeletion $true | |||
} | |||
###2 - Création des utilisateurs | |||
#Mon tableau d'utilisateurs | |||
$NouveauxUsers = @("sbozor", "mcolak", "ndesserrey", "idiallo", "lelkamel", "rgermain", "rgueye", "flarcher", "plawson", "pmandrou", "imohamed", "jnanthaphak", "aquach", "ktandavane", "atiroual", "eyamani") | |||
#Création du mot de passe : | |||
#Tous les utilisateurs commencent avec un mot de passe temporaire identique, qu'ils devront changer à leur première connexion | |||
$pass = "MotDePasseTemporaire!" | |||
$passSec = ConvertTo-SecureString $pass -AsPlainText -Force | |||
#Création des utilisateurs | |||
foreach ($nom in $NouveauxUsers){ | |||
New-ADUser -name $nom -UserPrincipalName "$nom@lpasr.loc" -Path "OU=ENG, DC=lpasr, DC=loc" -AccountPassword $passSec -Enabled $true -ProtectedFromAccidentalDeletion $true #Chaque utilisateur est créé dans "ENG", avec un mdp temporaire, et un login nom@lpasr.loc | |||
Get-ADUser -Filter {Name -eq $nom} -SearchBase "OU=ENG, DC=lpasr, DC=loc" | Set-ADUser -ChangePasswordAtLogon $true #L'utilisateur créé, on fait en sorte qu'il soit obligé de changer son mot de passe | |||
Write-Host "L'utilisateur $nom est créé dans l'OU ENG" #Message d'avertissement | |||
}</pre> |
Version du 13 février 2019 à 19:39
Script de manipulation de fichiers
Dans ce script, le but est de venir en aide à l'utilisatrice "Micheline"; celle-ci a besoin de récupérer des fichiers et de vérifier sa connexion à Internet.
Il contient différents exemples intéressants de boucle, conditions, etc...
#Ce script est à placer dans le dossier "Travail". ###1 - Lister et afficher les fichier de ce répertoire gci -r . ###2 - Il y'a trop de fichiers... Afficher seulement les .docx et .html gci -r | Where-Object {$_.extension -eq ".docx" -or $_.Extension -eq ".html"} ###3 - Afficher Seulement les fichiers ultérieurs au 01/01/2019 #(Le résultat va dans le tableau nommé "fichiers") $fichiers = gci -r | Where-Object {$_.extension -eq ".docx" -or $_.Extension -eq ".html" -and $_.LastWriteTime -gt "01/01/2019"} ###4 - On ajoute le fichier top secret de Micheline #On le met d'abord dans la variable $secret $secret = gci -r | Where-Object {$_.Name -eq "secret.txt"} #On affiche les fichiers concernés par la sauvegarde Write-Host "Les fichiers qui seront sauvegardés sont :"; $fichiers; $secret ###5 - Création de l'archive : je pars du fichier secret.txt, puis je mets mon archive à jour avec les autres fichiers #Création de l'archive Compress-Archive -LiteralPath $secret.FullName -CompressionLevel Fastest -DestinationPath .\ArchiveMicheline.zip #Remplissage de l'archive et affichage d'un message d'avertissement foreach ($file in $fichiers){ Compress-Archive -Path $file.fullname -Update -DestinationPath .\ArchiveMicheline.zip } Write-Host "Archive créée" ###6 - Vérifier le processus WINWORD, le tuer si il est présent #Ce bloc teste si WINWORD est présent et le tue si c'est le cas #L'argument -ErrorAction sert à ne pas afficher les messages d'erreur (Nous affichons le résultat nous-même) if(Get-Process -name WINWORD -ErrorAction 'SilentlyContinue'){ Stop-Process -name WINWORD; Write-Host "WINWORD stoppé"} else{ Write-Host "WINWORD n'est pas en cours d'exécution"} ###7 - Mettre une liste de sites dans un tableau et les tester un par un #Liste de mes sites $sites = @("google.com", "portal.office.com", "microsoft.com", "pcastuces.com", "aidermicheline.com") #Ce bloc teste un à un les sites et affiche le résultat foreach ($site in $sites){ if (Test-Connection -ComputerName $site -ErrorAction 'SilentlyContinue'){ Write-Host $site, "OK"} else{ Write-Host $site, "KO"} }
Script de création d'OU et d'utilisateurs
Ce script a pour but de créer des OUs et des utilisateurs sur un contrôleur de domaine. Les OUs sont d'abord créés, puis les utilisateurs, tous destinés à l'OU "ENG". Ce script est destiné au controleur de domaine du domaine "lpasr.loc". Il est plutôt efficace :)
Les OUs et utilisateurs apparaissent ensuite dans le centre de contrôle Active Directory :
###TP Création d'annuaire #Pour ce TP je pars d'un serveur Windows Server 2012 R2 en version d'essai #Celui-ci est déjà Domain Controller du domaine lpasr.loc ###1 - Création des OU $OUsRacine = @("FRA", "ALL", "ENG", "ESP") #OUs de premier niveau $OUsENG = @("Compta", "DSI", "Secu", "DRH") #OUs situées dans ENG #Création des OU de premier niveau foreach ($ou in $OUsRacine){ New-ADOrganizationalUnit -name $ou -Path "DC=lpasr, DC=loc" -ProtectedFromAccidentalDeletion $true } #Création des OU contenues dans ENG foreach ($SousOu in $OUsENG){ New-ADOrganizationalUnit -name $SousOu -Path "OU=ENG, DC=lpasr, DC=loc" -ProtectedFromAccidentalDeletion $true } ###2 - Création des utilisateurs #Mon tableau d'utilisateurs $NouveauxUsers = @("sbozor", "mcolak", "ndesserrey", "idiallo", "lelkamel", "rgermain", "rgueye", "flarcher", "plawson", "pmandrou", "imohamed", "jnanthaphak", "aquach", "ktandavane", "atiroual", "eyamani") #Création du mot de passe : #Tous les utilisateurs commencent avec un mot de passe temporaire identique, qu'ils devront changer à leur première connexion $pass = "MotDePasseTemporaire!" $passSec = ConvertTo-SecureString $pass -AsPlainText -Force #Création des utilisateurs foreach ($nom in $NouveauxUsers){ New-ADUser -name $nom -UserPrincipalName "$nom@lpasr.loc" -Path "OU=ENG, DC=lpasr, DC=loc" -AccountPassword $passSec -Enabled $true -ProtectedFromAccidentalDeletion $true #Chaque utilisateur est créé dans "ENG", avec un mdp temporaire, et un login nom@lpasr.loc Get-ADUser -Filter {Name -eq $nom} -SearchBase "OU=ENG, DC=lpasr, DC=loc" | Set-ADUser -ChangePasswordAtLogon $true #L'utilisateur créé, on fait en sorte qu'il soit obligé de changer son mot de passe Write-Host "L'utilisateur $nom est créé dans l'OU ENG" #Message d'avertissement }