Documente Academic
Documente Profesional
Documente Cultură
powershell
Objectif
Dure estime:
Rappel: Si besoin, commencer par lancer la commande suivante sous powershell en tant
qu'administrateur pour pouvoir excuter les scripts :
Set-ExecutionPolicy RemoteSigned
PS C:\windows\system32> Set-ExecutionPolicy RemoteSigned
function Connexion {
# efface le contenu de la form au cas o des objets soient affichs
$form.Controls.Clear()
# rajoute le menu puis les objets correspondant au menu slectionn
$form.Controls.Add($the_menu)
$form.Controls.Add($label_connexion)
$form.Controls.Add($textbox_connexion)
$form.Controls.Add($label_connexion_mdp)
$form.Controls.Add($textbox_connexion_mdp)
$form.Controls.Add($button_connexion)
}
Remote Server Administration Tools for Windows 7 with Service Pack 1 (SP1) :
http://www.microsoft.com/fr-FR/download/details.aspx?id=7887
Panneau de configuration Programmes "Activer ou dsactiver des fonctionnalits Windows" :
https://technet.microsoft.com/fr-fr/library/dd378937%28v=ws.10%29.aspx
http://blogs.technet.com/b/ashleymcglone/archive/2011/03/17/step-by-step-how-to-use-activedirectory-powershell-cmdlets-against-2003-domain-controllers.aspx
http://www.jonathanmedd.net/wp-content/uploads/2009/10/ADPowerShell_QuickReference.pdf
Import-Module ActiveDirectory # pour charger le module (erreur si le poste n'est pas connect
GRETA de Bretagne Occidentale
un domaine.)
Remarque: le module ActiveDirectory a une version amliore avec powershell V3. Nous allons
tout de mme utiliser Windows Powershell V2 qui est install par dfaut sous Windows 7.
Pour connatre la version de Powershell:
Ou
$PsVersionTable.PSVersion
get-help Get-ADForest
[System.Reflection.Assembly]::LoadWithPartialName(System.Windows.Forms)
# ------------------------ bouton quit -----------------------# Cration du bouton en lui donnant le nom d'objet "$button_quit"
$button_quit = New-Object System.Windows.Forms.Button
# proprit text de l'objet
$button_quit.Text = "Quitter"
# proprit Size de l'objet
$button_quit.Size = New-Object System.Drawing.Size(150,40)
# proprit location pour positionner l'objet.
# Le point (0;0) correspond au coin suprieur gauche de la fentre.
$button_quit.Location = New-Object System.Drawing.Size(20,320)
# Ajouter cet objet la fentre cre prcdemment
$form.controls.Add($button_quit)
# ------------------------ vnnement sur bouton Quit -----------------------# Gestion event quand on clique sur le bouton Quit
$button_quit.Add_Click(
{
$form.Close();
})
[void]$menu_principal.DropDownItems.Add($menu_1)
[void]$menu_principal.DropDownItems.Add($menu_2)
[void]$menu_principal.DropDownItems.Add($menu_3)
[void]$menu_principal.DropDownItems.Add($menu_4)
# Ajout des sous menus au menu 2
[void]$menu_2.DropDownItems.Add($menu_2_a)
[void]$menu_2.DropDownItems.Add($menu_2_b)
# Ajout des sous menus au menu
[void]$the_menu.Items.Add($menu_principal)
# Ajout du menu la form
$form.Controls.Add($the_menu)
# Affichage de la Windows
$form.ShowDialog()
# Afficher un message si l utilisateur appuie sur le boutont ( on pourrait appeler une fonction si le
code est trop long)
$button_connexion.Add_Click(
{
# http://cnf1g.com/?p=279
$login = $textbox_connexion.text
[System.Windows.Forms.MessageBox]::Show("Votre login est $login", "confirmation de login" )
})
# ------------------- LEs fonctions -------------------------
function Connexion {
# efface le contenu de la form au cas ou des objets soient affichs
$form.Controls.Clear()
# rajoute le menu puis les objets correspondant au menu slectionn
$form.Controls.Add($the_menu)
$form.Controls.Add($label_connexion)
$form.Controls.Add($textbox_connexion)
$form.Controls.Add($label_connexion_mdp)
$form.Controls.Add($textbox_connexion_mdp)
$form.Controls.Add($button_connexion)
}
# Affichage de la Windows
$form.ShowDialog()
get-help Get-ADForest
AUTOMATISATION DADMINISTRATION ACTIVE DIRECTORY
Il est possible dadministrer Active Directory via powershell, il est ainsi possible de grer :
Les utilisateurs
Les ordinateurs
Les groupes
Les OU
Afin de pourvoir utiliser les commandes Active Directory dans Powershell, il faut au pralable
importer le module Active Directory via cette commande :
Import-Module ActiveDirectory
Gestion des utilisateurs
Voici les commandes principales powershell pour la gestion des utilisateurs :
Cration dun compte utilisateur : New-ADUser
Modifier une proprit du compte : Set-ADUser
Supprimer un utilisateur : Remove-ADUser
GRETA de Bretagne Occidentale
Get an AD domain.
Set-adDomain
Modify an AD domain.
Get an AD forest.
Set-adForest
Modify an AD forest.
s
Get-adServiceAccount Get one or more AD service accounts.
Install-adServiceAccount Install an AD service account on a computer.
New-adServiceAccount Create a new AD service account.
Remove-adServiceAccount Remove an AD service account.
Set-adServiceAccount Modify an AD service account.
Uninstall-adServiceAccount UnInstall an AD service account from a computer.
Reset-adServiceAccountPassword Reset the service account password for a computer.
u
Get-adUser Get one or more AD users.
New-adUser Create a new AD user.
Remove-adUser Remove an AD user.
Set-adUser Modify an AD user.
Get-adUserResultantPasswordPolicy Get the resultant password policy for a user.
1. To use the cmdlets above under Windows XP run a remote session to a Windows7/2008
machine.
2. If your machine is joined to a domain then a default PSDrive named AD: is created. Use all the
regular file system commands to navigate this:
PS C:\> cd AD:
PS AD:\> dir
3. To use the AD module to manage an Active Directory domain, the Windows Server 2008 R2
Active Directory Web Services (ADWS) service must be installed on at least one domain
controller in the domain. To list all the Active Directory cmdlets installed, type GetCommand *-AD*
8 Annexe creer-des-comptes-utilisateurs-par-lot-avec-powershell-v2et-le-module-active-directory-server-2008-r2
Source http://www.it-connect.fr/creer-des-comptes-utilisateurs-par-lot-avec-powershell-v2-et-lemodule-active-directory-server-2008-r2/
I. Prsentation
Le module Active Directory Server 2008 R2 a fait son apparition dans Windows Server 2008 R2.
Il est install en mme temps que le rle Contrleur de domaine Active Directory. Le module Active
Directory apporte deux choses : un fournisseur ainsi quun ensemble de commandlets. Grce ce
module, il est dsormais possible dadministrer en ligne de commandes PowerShell les rles
Active Directory Domain Services (AD DS) et Active Directory Lightweight Domain
Services (AD LDS) .
Prenons lexemple dune problmatique courante qui consiste ajouter plusieurs utilisateurs Active
Directory : Au moyen de linterface graphique Windows cette tche requiert aujourdhui un
ensemble de clics de souris pour chaque utilisateur cr. Les informations doivent tre saisies
plusieurs reprises do un risque derreurs accru.
II. Procdure
Pour rpondre cette problmatique nous pourrions imaginer la cration dun fichier Excel o
chaque ligne contiendrait la description dun utilisateur, et en particulier les champs suivants :
Name : nom de lobjet (il sagit du nom visible dans la console de gestion de lActive
Directory) ;
HomeDirectory : chemin rseau (au format UNC) vers un partage sur un serveur.
listeUtilisateurs
Nous pourrions ensuite enregistrer ce fichier au format CSV (Comma Separated Values) pour en
obtenir un fichier texte dont les champs seraient spars par des points-virgules, Excel ne sachant
pas utiliser la virgule comme sparateur. Un tel fichier pourrait ressembler celui-ci :
GRETA de Bretagne Occidentale
1 Name;SAMAccountName;surname;givenName;Description;profilePath;scriptPath;
2 HomeDrive;HomeDirectory
3 Dupont;Dupont;Dupont;Paul;Compte utilisateur;;login.vbs;L:;\\server1\users
4 Timon;Timon;Timon;Marc;Compte utilisateur;;login.vbs;L:;\\server1\users
Avec PowerShell v2 coupl aux commandlets apportes par le module Active Directory Server
2008 R2, vous allez voir avec quelle facilit nous rpondrons cette problmatique .
Le fait quExcel ne sache pas enregistrer les fichiers CSV avec un sparateur autre que le pointvirgule ne nous drange pas plus que cela car la commandlet Import-CSV sest dot du
paramtre Delimiter qui permet de spcifier un dlimiteur autre que la virgule.
De plus, avec le module Active Directory Server 2008 R2 nous disposons de la commande NewADUser. Celle-ci lorsquon lui passe en entre de pipeline un objet avec les bonnes proprits cr
directement lutilisateur. Cela raccourcira considrablement notre script. Voir ci-aprs :
1 PS > (Import-Csv .\ListeUtilisateurs.csv -Delimiter ;) | New-ADUser
Si lon souhaite crer les utilisateurs dans une unit dorganisation particulire, il suffit de prciser
le paramtre Path, comme dans lexemple suivant :
1 PS > (Import-Csv .\ListeUtilisateurs.csv -Delimiter ;) |
2 New-ADUser -Path OU=Commerce,DC=NomDomaine,DC=com