Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles à la une

Powershell: Générateur de Mot-de-passe

Il arrive souvent dans le cadre de migration ou de création de nouvelle forêt/Domaine Active Directory, de générer des nouveau mots de passe pour les nouveau comptes. Afin d’automatiser cette opération, le PowerShell nous permet de scripter cette étape et de la faire correspondre à la stratégie de mot-de-passe mise en œuvre.

Voici un exemple de fonction qui permet de générer des mots-de-passe correspondant à la stratégie par défaut (complexité et 8 caractères):

#============================================
# Fonction de création de Password aléatoire   
#============================================
function RandomPassword ([int]$intPasswordLength)
       {
          if ($intPasswordLength -lt 4) {return "password cannot be <4 chars"}   # -lt inférieur à
             
          $strNumbers = "1234567890"
          $strCapitalLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
          $strLowerLetters = "abcdefghijklmnopqrstuvwxyz"
          $strSymbols = "@-?!#"
          $rand = new-object random
 
          for ($a=1; $a -le $intPasswordLength; $a++)  #inférieur -le inférieur ou égal à
               {
                    if ($a -gt 4) #supérieur à
                       {
                             $b = $rand.next(0,4) + $a
                             $b = $b % 4 + 1
                       } else { $b = $a }
                    switch ($b)
                       {
                             "1" {$b = "$strNumbers"}
                             "2" {$b = "$strCapitalLetters"}
                             "3" {$b = "$strLowerLetters"}
                             "4" {$b = "$strSymbols"}
                       }
                    $charset = $($b)
                    $number = $rand.next(0,$charset.Length)
                    $RandomPassword += $charset[$number]
               }
          return $RandomPassword
       }
 
#######################
# PROGRAMME PRINCIPAL
#######################
                # Génération aléatoire du Password en lançant la fonction définie précédemment                 
             RandomPassword 8
              

Il suffit de modifier le programme principal pour générer des mots-de-passe plus longs. Il ne reste plus qu’à intégrer et appeler la fonction dans un script global de création des comptes Active Directory.

PowerShell : Ajout d’entrée DNS

Dans le cadre d’installation de certaines plateformes, il est parfois nécessaire de créer de nombreuses entrées DNS.

Pour réaliser cette opération, l’interface graphique peut s’avérer fastidieuse et source d’erreurs. Il peut donc être intéressant de réaliser quelques commandes pour réaliser ces ajouts :

Pour cela, les entrées DNS à créer peuvent être stockées dans un fichier csv comme ici dans le cadre de Lync Server:

image

Une fois le fichier construit, il suffit de le parser et de construire la commande dnscmd:

   1:  $file=import-csv C:\sources\dnslync.csv -Delimiter ";"
   2:   
   3:  foreach ($entry in $file)
   4:  {
   5:     dnscmd v-DNS-01 /recordAdd mazone.org $entry.Host $entry.type $entry.IP
   6:  }

L’exécution confirme la création des entrées:

image

Les entrées sont ainsi créées dans la zone précisée.

SQL Server 2008 R2 – Erreur 7399 lors de la liaison d’un serveur SQL local à un serveur SQL distant

Problème :

Lors de la liaison d’un serveur SQL à un autre le message d’erreur suivant s’affiche" :

3_thumb2

Le fournisseur OLE DB “SQLNCLI10” du serveur lié “xxx” a rapporté une erreur. Echec de l’authentification.

Impossible d’initialiser l’objet de la source de données du fournisseur OLE DB “SQLNCLI10” du serveur lié “xxx”

Le fournisseur OLE DB “SQLNCLI10” du serveur lié “xxx” a retourné le message “Spécification d’autorisation non valide”. (Microsoft SQL Server, Erreur : 7399)

Cause :

Les principales causes sont les suivantes :

  • Le problème peut être lié au réseau, par exemple vouloir lié deux serveurs qui sont dans deux VLANs différents.
  • Il peut s’agir également d’un problème de configuration au niveau de l’authentification.
    Résolution :

Nous commençons par vérifier si les serveurs arrivent à communiquer entre eux en les pingant afin d’écarter un problème qui pourrait être lié au réseau. Une fois ce problème résolue, nous pouvons passer à la liaison de nos serveurs.

    Nous poursuivons ensuite par la configuration de la liaison entre les serveurs. Nous naviguons jusqu’au dossier Objets serveur du volet droit de navigation puis faisons un clic-droit sur Serveurs liés afin de commencer notre configuration.
    6_thumb
    Nous entrons le nom du serveur SQL que nous voulons lier et nous choisissons SQL Serveur comme type de serveur :

7_thumb4

Nous poursuivons avec l’onglet Sécurité, ou nous définissons un utilisateur qui appartient au serveur que nous voulons lier pour faire notre mappage de connexions entre les deux serveurs.

Enfin nous choisissons le contexte de sécurité “Seront effectuées dans le contexte de sécurité de la connexion actuelle” de notre liste puis validons la configuration en cliquant sur OK.

2_thumb11

Nous avons désormais lié notre serveur SQL local à notre serveur SQL distant tout en assurant la sécurité de notre environnement.