PowerShell pour Dynamics NAV 2013 – 5 : Créer des utilisateurs à la mode RapidStart
Une des fonctionnalités de RapidStart est l’utilisation d’Excel pour extraire, nettoyer et importer les données dans Dynamics NAV. En gardant cette excellente philosophie RapidStarienne qui nous permet de réduire les coûts de déploiement de l’ERP Dynamics NAV nous allons automatiser au maximum la création des utilisateurs.
L’idée est d’utiliser un tableau Excel qui nous servira à la fois d’outil et de documentation pour :
- Recenser toutes les informations nécessaires pour créer les utilisateurs dans Dynamics NAV;
- Compléter ces informations en utilisant les fonctionnalités d’Excel et les faire valider par un responsable;
- Créer les utilisateurs dans le système (Windows, Dynamics NAV, …)
Alors, je commence par créer un fichier Excel avec quelques infos pour recenser les utilisateurs. Ce fichier nous permettra aussi de recenser des utilisateurs d’une ancienne base de données (type C/Side par exemple) :
Vous pouvez utiliser les formules d’Excel pour compléter les informations :
Une fois ces informations ont été complétées et validées nous allons utiliser un script PowerShell pour créer nos utilisateurs dans les systèmes :
#Initialisation des variables
$computer = "COMPUTER100"
$NavServerInstance = "DynamicsNAV70"
$a = New-Object -comobject Excel.Application
#$a.visible = $True
$RunDate = (get-date).tostring("dd/MM/yyyy")
$file = "C:\temp\Utilisateurs.xlsx"
$b = $a.Workbooks.Open($file)
$c = $b.Worksheets.Item(1)
[int32] $NBUsers = $c.Cells.Item(1,3).Text
foreach ($i in 1..$NBUsers)
{
$UserDescription = $c.Cells.Item(3+$i,2).Text
$User = $c.Cells.Item(3+$i,3).Text
$password = $c.Cells.Item(3+$i,4).Text
$NAVUserPermission = $c.Cells.Item(3+$i,5).Text
$c.Cells.Item(3+$i,7) = $RunDate
#Création d'un utilisateur Windows local
$objC = [ADSI]"WinNT://$computer"
$objUser = $objC.Create("User", $User)
$objUser.setpassword($password)
$objUser.SetInfo()
$objUser.description = $UserDescription
$objUser.SetInfo()
#Création de l'utilisateur dans Dynamics NAV
New-NAVServerUser -ServerInstance $NavServerInstance -WindowsAccount $user
#Affectation des permissions
New-NAVServerUserPermissionSet -ServerInstance $NavServerInstance -PermissionSetId $NAVUserPermission -WindowsAccount $user
}
$b.Save()
$a.Quit()
En plus, à chaque fois un utilisateur est créé, le script renseigne la date de création :
Sur ce, je vous souhaite une excellente année 2013, pleine de bonnes choses.