none
Base de données AD RRS feed

  • Question

  • Bonjour,

    Je cherche la commande qui me permet de connaitre la taille réelle de la base de données de l'active directory.

    Pourrez vous m'aider s'il vous plait?

    Cordialement,

    Serge


    Serge

    lundi 21 septembre 2020 15:51

Réponses

  • AD n'est pas directement une base de données. Son volume est d'une centaine de Mo. En général sa taille n'est pas un problème pour les migrations. L'organisation des disques et l'emplacement de la base ntds.dit demande plus de reflexion, virtualisé ? HyperV ? Generation VM  1 ou 2 ?

    Un peu de lecture :

    http://pbarth.fr/node/219

    mardi 22 septembre 2020 05:31
  • Bonjour Serge,

    Ci-dessous quelques lignes - qui font la même chose - et qui permettent de connaitre la taille d'un fichier.

    # Path de la DB AD : défaut C:\Windows\system32\ntds.dit mais peut avoir été modifié lors de l'installation de l'AD
    $ADDB = "C:\Windows\system32\ntds.dit"
    
    (Get-Item -Path $ADDB).Length                      #==> retourne le taille ici en octets
    (Get-Item -Path $ADDB).Length/1KB                  #==> retourne le taille ici en Ko
    (Get-Item -Path $ADDB).Length/1MB                  #==> retourne le taille ici en Mo
    "{0:N2}" -f ((Get-Item -Path $ADDB).Length/1KB)    #==> retourne la taille ici en Ko avec 2 décimales affichées (aucun sens dans ce cas)
    "{0:N2}" -f ((Get-Item -Path $ADDB).Length/1MB)    #==> retourne la taille ici en Mo avec 2 décimales affichées
    [math]::round((Get-Item -Path $ADDB).Length/1KB,2) #==> retourne la taille ici en Ko
    Get-Item -Path $ADDB | Select-Object -Property @{Label = "Taille" ; Expression = {"{0:n2} Ko" -f ($_.length/ 1KB)}} # taille en Ko avec 2 décimales affichées
    Get-Item -Path $ADDB | Select-Object -Property @{Label = "Taille" ; Expression = {"{0:n2} Mo" -f ($_.length/ 1MB)}} # taille en Mo avec 2 décimales affichées
    
    Après si tu veux relever cette valeur sur tous tes DCs, une boucle foreach pour exécuter ceci sur chaque machine

    # collecte de tous les DC du domaine
    $AllDCs = (Get-ADDomainController -Filter *).name
    # Query chaque DC
    foreach ($DC in $AllDCs)
        {
        Invoke-Command -ComputerName $DC -ScriptBlock {(Get-Item -Path "C:\Windows\system32\ntds.dit").Length}
        }

    cordialement

    Olivier

    mardi 22 septembre 2020 10:01

Toutes les réponses

  • AD n'est pas directement une base de données. Son volume est d'une centaine de Mo. En général sa taille n'est pas un problème pour les migrations. L'organisation des disques et l'emplacement de la base ntds.dit demande plus de reflexion, virtualisé ? HyperV ? Generation VM  1 ou 2 ?

    Un peu de lecture :

    http://pbarth.fr/node/219

    mardi 22 septembre 2020 05:31
  • Bonjour Serge,

    Ci-dessous quelques lignes - qui font la même chose - et qui permettent de connaitre la taille d'un fichier.

    # Path de la DB AD : défaut C:\Windows\system32\ntds.dit mais peut avoir été modifié lors de l'installation de l'AD
    $ADDB = "C:\Windows\system32\ntds.dit"
    
    (Get-Item -Path $ADDB).Length                      #==> retourne le taille ici en octets
    (Get-Item -Path $ADDB).Length/1KB                  #==> retourne le taille ici en Ko
    (Get-Item -Path $ADDB).Length/1MB                  #==> retourne le taille ici en Mo
    "{0:N2}" -f ((Get-Item -Path $ADDB).Length/1KB)    #==> retourne la taille ici en Ko avec 2 décimales affichées (aucun sens dans ce cas)
    "{0:N2}" -f ((Get-Item -Path $ADDB).Length/1MB)    #==> retourne la taille ici en Mo avec 2 décimales affichées
    [math]::round((Get-Item -Path $ADDB).Length/1KB,2) #==> retourne la taille ici en Ko
    Get-Item -Path $ADDB | Select-Object -Property @{Label = "Taille" ; Expression = {"{0:n2} Ko" -f ($_.length/ 1KB)}} # taille en Ko avec 2 décimales affichées
    Get-Item -Path $ADDB | Select-Object -Property @{Label = "Taille" ; Expression = {"{0:n2} Mo" -f ($_.length/ 1MB)}} # taille en Mo avec 2 décimales affichées
    
    Après si tu veux relever cette valeur sur tous tes DCs, une boucle foreach pour exécuter ceci sur chaque machine

    # collecte de tous les DC du domaine
    $AllDCs = (Get-ADDomainController -Filter *).name
    # Query chaque DC
    foreach ($DC in $AllDCs)
        {
        Invoke-Command -ComputerName $DC -ScriptBlock {(Get-Item -Path "C:\Windows\system32\ntds.dit").Length}
        }

    cordialement

    Olivier

    mardi 22 septembre 2020 10:01