Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles à la une

Active Directory : NETDOM et les contrôleurs de domaine en français

Bonjour à tous !

Aujourd’hui, nous allons parler de la commande Netdom trust (nous allons donner plus de détails sur cette commande dans un prochain article).

Quand vous êtes dans le cadre d’une migration de forêt/domaine Active Directory, il est probable que vous vouliez autoriser l’utilisation des SidHistory afin de préserver les accès aux ressources du domaine historique pour les postes/utilisateurs migrés.

Pour se faire, nous utilisons deux commandes (depuis un contrôleur de la nouvelle foret) :

  • netdom trust DomaineHistorique /D:NouveauDomaine /UO:Utilisateur_Nouveau_Domaine /PO:* /Quarantine:yes/no
  •  netdom trust DomaineHistorique /D:NouveauDomaine /UO:Utilisateur_Nouveau_Domaine /PO:* /EnableSidHistory:yes/no

Mais que se passe t’il si vous entrez cette commande sur un contrôleur de domaine en langue française ?

Nous entrons donc la commande suivante afin d’avoir le statut de la mise en quarantaine des SID : netdom trust DomaineHistorique /D:NouveauDomaine /UO:Utilisateur_Nouveau_Domaine /PO:* /Quarantine

Nous voulons maintenant effectuer une action en désactivant la mise en quarantaine des SID : netdom trust DomaineHistorique /D:NouveauDomaine /UO:Utilisateur_Nouveau_Domaine /PO:* /Quarantine:no

Bizarre, nous obtenons le même message que pour la commande précédente …

Après vérification, la commande n’a pas désactivé le filtrage.

En revanche, si vous entrez la version suivante de la commande, vous obtiendrez un résultat fort différent ! 

netdom trust DomaineHistorique /D:NouveauDomaine /UO:Utilisateur_Nouveau_Domaine /PO:* /Quarantine:non

Et voilà ! La commande marche enfin ! Elle n’a été traduite que pour un seul paramètre.

Il est à noter qu’il faut faire exactement la même chose pour le paramètre /EnableSidHistory.

Vous êtes désormais averti, ce bug est encore présent même sous Windows Server 2012 R2.

Remplacer tous les mots de passe en claire dans un dossier donné en powershell

Bien souvent, en entreprise on se retrouve avec des dossiers contenant des fichiers *.ini d’installation ou autres avec des mots de passe stockés en claire. Prenons, le cas des installations SQL , le DBA enregistre les mots de passe dans un fichier de paramètre et ne pense pas à le supprimer. Les mots de passe en claire posent un problème de sécurité au SI. Le script en powershell ci-dessous permettrait de remplacer tous les mots de passes en claire par des étoiles (**********). 

#############################################
#Author: KARUPPANNAN Seevadassen            #
#Date: 27/03/2017                           #
#############################################

$networkPath = "\\chemin\dossier\"

$iniS = Get-ChildItem -Path $networkPath -Filter *.ini -Recurse

foreach ($file in $iniS) {

$fileName = $file.Name
$filePath = $file.FullName

Write-Host "File name: " $fileName -ForegroundColor yellow
Write-Host "Full path: " $filePath -ForegroundColor yellow

$array = $filePath.split("\")
$server = $array[8]

Write-Host "Server: " $server

$password = Get-Content $filePath | Where-Object { $_.Contains("SAPWD") -or $_.Contains("SQLSVCPASSWORD") -or $_.Contains("AGTSVCPASSWORD") -or $_.Contains("FTSVCPASSWORD") -or $_.Contains("ISSVCPASSWORD") -or $_.Contains("ASSVCPASSWORD") -or $_.Contains("RSSVCPASSWORD") -or $_.Contains("FARMPASSWORD")}

Write-Host $password
Write-Host $password.GetType()

foreach ($line in $password){

      $row = $server + ";" + $line
      Write-Host "row value: " $row -ForegroundColor Green

      Write-Host "line: " $line
      $param1,$param2 = $line.split('=') 
      Write-Host "partie1: " $param1


      $replacetxt =  $param1 + '=' + '"' + "********" + '"' 


      Write-Host "replace with " $replacetxt

try {

            (Get-Content $filePath) -replace $line,$replacetxt | Set-Content $filePath

            Write-Host "SUCCESS:Password has been replaced!" -ForegroundColor Green

      }catch{

            Write-Host "ERROR:Password has NOT been replaced!" -ForegroundColor red
            $ErrorMessage = $_.Exception.Message
            Write-Host $ErrorMessage
}

}

Write-Host "---"
}

 

Dans les fichiers *.ini, le script powershell va chercher toutes les lignes qui contiennent les mots clés « SAPWD », »SQLSVCPASSWORD », »AGTSVCPASSWORD », »FTSVCPASSWORD »… et replacer par la suite les mots de passe par des étoiles.

 

Windows 7 : RSAT WSUS

Par défaut dans les Outils d’administration des serveurs distant (Remote Server Administration Tools = RSAT) la console WSUS (Windows Server Update Services) n’est pas présente.

Il est possible d’installer la console en ajoutant la KB972455 pour Windows Server Update Services 3.0 SP2 disponible ici:

https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=5216

Une fois l’installation finie vous disposez de la console WSUS dans vos RSAT.