Note IT
November 30th, 2007

PS: Calculer une date au format “Lastlogon”

Le “Lastlogon” représente la date de la dernière connexion d’un utilisateur sur le domaine AD.
Mais cette valeur n’est pas codé comme un simple date.

Elle correspond aux dizaines de milliers de millisecondes (100ene de microseconde) écoulées entre le 1er janvier 1601 et la date de la dernière connexion.

Pour convertir le lastlogon en date, un petit script en PowerShell et le tout est joué.

PowerShell:

$lastlogon={lastlogon a convertir}
$lastlogon /= 10000
(get-date -year 1601 -month 1 -day 1).addmilliseconds($lastlogon)

Et l’inverse, pour convertir une date au format “lastlogon”

PowerShell :

New-TimeSpan -Start (Get-Date -year 1601)
-End (Get-Date -year 2007 -month 12 -day 22)
|Format-List TotalMilliseconds

Retourne l’écart entre le 1 janvier 1601 et la date fournie en ms.

Pour retomber sur le format “Lastlogon”, convertir en 100ene de ns, soit multiplier le résultat par 10000.

November 30th, 2007

DHCP: Exporter un DHCP de Windows 2000 server vers Windows 2003 server

Sur le serveur DHCP Windows 2000 :

Installer l’outil DHCPExim (disponible ICI)

Installer et lancer depuis c:\Program Files\Resource Kit\DHCPEXIM.EXE

Il suffit ensuite d’exporter les plages que vous souhaitez retrouver sur votre futur serveur.
La case “Disable selected scope” est utile pour empêcher tous conflits lors de l’import de la plage sur le nouveau serveur.

Sur le serveur DHCP Windows 2003 :

DHCPExim n’est pas supporté par Windows 2003 … mais la commande Netsh si.

Donc, une fois que le DHCP est installé et démarré sur le 2003, on tape (depuis une invite de commande) :

netsh dhcp server import nom_fichier_conf   plage_ip


(ex : netsh dhcp server import DHCPconf 192.168.0.0)


Il ne reste plus qu’à vérifier que tout s’est bien importé dans la console DHCP …

Pour éviter tous soucis, il est préférable d’importer les plages une par une.

Source: DHCPExim

November 28th, 2007

AD: Restaurer un objet efface

Un petit moment de faiblesse et 2 clics plus tard, un objet (OU, Utilisateurs …)  disparait de l’AD.
Forcement, la réplication vers les autres DC est systématique.

Comment réparer votre boulette ?

Il est évident que le pré-requis est d’avoir un backup du “System State” récent contenant l’objet que vous avez effacé.

  • Commencer par restaurer le backup sur votre DC
  • Redemarrer votre serveur en mode “Directory Service Restore Mode” (F8 au démarrage du PC avant le lancement de Windows)

  • Lancer ” Ntdsutil
  • Taper ” authoritative restore

Le but est d’incrémenter la version de l’objet effacé afin qu’il soit de nouveau répliquer.
Il est indispensable de connaitre le FQDN de l’objet (ex: “cn=Bob,ou=Users,dc=domain, dc=com”)

  • Taper : restore object suivit du FQDN

L’utilisateur Bob : restore object “cn=Bob,ou=Users,dc=domain, dc=com”
L’OU Users: restore subtree “ou=Users,dc=domain, dc=com”

La version de l’objet est incrémenté de 100000 afin qu’il soit assuré d’être la dernière version présente dans l’AD.



Un fichier de log est généré avec les éléments restaurés et leur SID.

Un redémarrage du serveur et lors de la prochaine synchro avec les autres DC, l’objet sera répliqué.

November 27th, 2007

Exchange 2007 : Back Pressure Mode

1. Allô docteur, c’est grave ?

Si vous avez mis en places des maquettes virtuelles d’Exchange 2007 avec des ressources limitées, vous avez peu être remarqué, outre les temps de lancement importants et certaines latences, que les mails que vous avez écris ne sont pas remis au destinataire mais dans vos propres brouillons.
Cela vient tout simplement du fait que votre serveur manque de ressources (disque, mémoire, etc …).
Bienvenue dans le Back Pressure Mode.

2. C’est quoi donc ?

C’est un mode présent sur les serveurs Edge et Hub, qui s’enclenche lorsque les ressources deviennent limitées
(ce qui est souvent le cas pour des VM installées sur un poste de travail).

Il se compose de 3 parties :

  • - Mode Normal : Fonctionnement normal du serveur
  • - Mode Medium : Passage en back pressure mode.
    Les ressources commencent à être limité, le serveur accepte les connexions smtp venant du domaine mais n’accepte plus celles venant de l’extérieur.
  • - Mode High : Passage en full back pressure.
    Votre serveur pédale dans la semoule, toutes les connexions smtp sont refusées.

En regardant dans l’observateur d’événement, on remarque des erreurs de ce type :

•    Event log entry for changes in resource utilization level
Event Type: Warning
Event Source: MSExchangeTransport
Event Category: Resource Manager
Event ID: 15001
Description: The resource pressure changed from Previous Utilization Level to Current Utilization Level.

•    Event log entry for constantly high resource utilization levels
Event Type: Warning
Event Source: MSExchangeTransport
Event Category: Resource Manager
Event ID: 15002
Description: The resource pressure is constant at High.

•    Event log entry for changes in memory utilization level by the EdgeTransport.exe process
Event Type: Warning
Event Source: MSExchangeTransport
Event Category: Resource Manager
Event ID: 15003
Description: Private bytes consumption changed from Previous Utilization Level to Current Utilization Level.

•    Event log entry for an increase in any resource utilization level (avec SP1)
Event Type: Error
Event Source: MSExchangeTransport
Event Category: Resource Manager
Event ID: 15004
Description: Resource pressure increased from Previous Utilization Level to Current Utilization Level.

•    Event log entry for a decrease in any resource utilization level (avec SP1)
Event Type: Information
Event Source: MSExchangeTransport
Event Category: Resource Manager
Event ID: 15005
Description: Resource pressure decreased from Previous Utilization Level to Current Utilization Level.

3. Ca se soigne ?

Microsoft recommande de ne pas couper cette protection dans un environnement de production (bien que ce type de cas ne doive pas y être rencontré), néanmoins, pour vos maquettes c’est une autre histoire.
Le fichier à modifier pour désactiver (ou éditer les conditions de déclanchement) ce mode, se trouve sur votre serveur Edge / Hub, dans :
« C:\Program Files\Microsoft\Exchange Server\Bin »

Et se nome :
EdgeTransport.exe.config

Editer avec Notepad (par exemple) et modifiez la ligne :
<add key=”EnableResourceMonitoring” value=”true” />    par
<add key=”EnableResourceMonitoring” value=”false” />

Il ne reste plus qu’à redémarrer les services exchange et à profiter de sa maquette (attention tout de même aux ressources utilisées).

November 26th, 2007

AD: Optimiser la base Active Directory

Néttoyer les SID en doublons:

  1. Exécuter NTDSutil.exe
  2. puis la commande Security Account Management
  3. Se connecter au contrôleur DC assurant le stockage de la base SAM connect to server [nom_serveur]
  4. Exécuter la commande Check Duplicate Sid

Un fichier de log est généré : dupsid.log

Ensuite, la commande Cleanup Duplicate SID permet de supprimer les entrées listées.

Défragmenter la base de données Active Direcotry (ntds.dit):

  1. Redémarrez le contrôleur de domaine. Lorsque votre Windows 2003 serveurs démarre, appuyez sur F8.
  2. Choisissez  Mode restauration Active Directory (contrôleur de dom. Windows 2003).
  3. Se connecter en administrateur local du serveur
  4. Lancer Ntdsutil.exe
  5. Entrer la commande Files puis infos.
  6. Dès lors des informations sur la base de données Active Directory doivent être affichées.

    Ensuite pour optimiser la base :

    compact to votrelecteur:\votre_répertoire. Dans notre exemple nous allons mettre la nouvelle base Active Directory dans c:\ad

    Une fois le processus terminé, Il reste plus qu’à récupérer la nouvelle base dans le répertoire que vous avez indiqué (dans notre exemple c:\ad) et à le copier à l’emplacement de l’actuel base (par défaut c:\winnt\NTDS tds.dit) et à supprimer les logs présente dans le dossier NTDS.

    Redémarrer votre serveur.

    Votre base de données est à présent plus légère et mieux organisée.

November 26th, 2007

WMI: Lister les mises a  jour installees sur un PC sans installer d’outils

Il arrive régulièrement de devoir vérifier la présence d’une Update Microsoft, et le problème est qu’il est souvent pénible de devoir installer un outils pour devoir le faire.

A l’aide d’une requête WMI, il est possible d’extraire ses infos et de les restituer sous un format HTML très facilement lisible.

wmic /node:computername qfe list full /format:htable >C:\update.html

Explicaton du code:

  • wmic : wmic est la console permettant d’exécuter des requêtes WMI
  • ode : Ordinateur Cible
  • qfe : Alias de l’entrée WMI Win32_QuickFixEngineering
  • list full : regroupe de façon plus lisible les éléments
  • /format:htable : convertie la sortie en HTML
  • >C:\update.html :  Enregistre la sortie dans le fichier C:\update.html

Aperçu de la sortie de la requête:


Pour rechercher rapidement la présence d’une mise à jour tout en connaissant son KB, il suffit d’exécuter le script WMI suivant qui retournera


wmic qfe | find “KBxxxxxx”


November 23rd, 2007

Exchange 2007: Erreur MMC 3.0 lors de l’installation

Lors de l’installation de Exchange 2007 sur un serveur, l’un des pré requis est la présence du composant MMC 3.0.

La mise à jour de 2.0 à 3.0 est simple.

Mais une fois faite, il est possible que l’installation d’Exchange 2007 bloque encore à cette étape malgré la présence du composant en version 3.0.

Message d’erreur: “Exchange Server ‘12′ requires Microsoft Management Console 3.0.”


L’ajout d’une clé dans la base de registre peut solutionner le problème :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MMC30Core

Source MMC 3.0: MMC 3.0

November 23rd, 2007

Exchange: Import/Export de BAL avec ExMerge

ExMerge, outils Microsoft présent sur le CD de Exchange 2000 (SUPPORT\UTILS\I386\EXMERGE), permet d’importer des données d’un serveur Exchange à un autre sous la forme de PST.

Très pratique lors de mise en place de test de migration, par exemple, cette outils permet de backuper puis restaurer le contenu d’une boite aux lettres de façon très rapide d’un serveur à un autre.

Le package contient une Doc Microsoft très bien faite avec de nombreux cas concret d’utilisation.

Source: ExMerge

Versions supportées: Exchange 5.5/200x

November 23rd, 2007

Exchange: Forcer la publication du Free/Busy

Lors d’une migration de serveur Exchange, une problématique qui peut devenir complexe est celle du déplacement du Free/Busy.
Cette opération peut être faite grâce à PFmigrate qui s’occupe de migrer Public et System Folder.
Mais, il m’est arrivé de ne pas pouvoir utiliser cette outils qui migre l’intégralité des données ce qui peut être trop (lors d’une cission pa exemple).
Il est vrai aussi que les occasions de repartir d’un Public et System Folder propre sont rare.

Par défaut, le serveur Exchange publie 3 mois d’information du Free/Busy.
Cette valeur peut être changé grâce une valeur dans la base registre afin de la passé à plus de 12 mois.
Il semble évident que le fait de proposer les informations Free/Busy sur une plus longue durée augment la charge du CPU du serveur Exchange qui aura plus d’information à analyser et à publier.

La clé de Base de registre :

Chemin: HKEY_LOCAL_MACHINE\Software\Microsoft\EXCDO\ParametersNom: FBPublishMonthType: DWORDValeur: 1 - 36

Valeur par défaut = 3

Il est à noter que si le client Outlook est paramétré pour accepter les demandes de Réunions, la valeur utilisé est celle du client Outlook plutôt que celle du serveur Exchange.

Afin de forcer la génération du Free/Busy, qui ne se fait habituellement que lors de l’exécution du client Outlook, l’outils FBUpdate ajoute puis supprime une demande de Rendez-vous dans chaque boîtes aux lettres, ce qui a pour but de forcer la mise à jour du Free/Busy.

Cette outils est donnée à titre EXPÉRIMENTALE et non supporté par son éditeur, il est indispensable de le tester sur votre serveur de RECETTE avant toute mis en production.

Pré-requis:

  • FBUpdate doit être lancé depuis une machine sur le domaine où se trouve les serveur Exchange.
  • Le compte utilisé doit faire parti du groupe “Administrator group” (Local ou AD).
  • les runtime .Net

Utilisation:

FBUpdate.exe

[/ACCOUNT:<account_name>]
[/ACCOUNTATTR:<attribute_name>]
[/DN:<distinguished_name>]
[/USER:<admin_account>]
[/PW:<admin_password>]
[/DOMAIN:<domain_name>]
[/FILE:<file_name>]
[/EXCL:<excluded_accounts>]
[/EXCLATTR:<attribute_used_for_exclusions>]
[/FB:<months_of_FB>]
[/FBUPDATEONLY:<1for only updating the FB information>]
[/VERBOSE:<1 for outputting detailed logging information>]
[/USEFORMSAUTH:<1 for indicating that access to OWA is SSL-enabled>]
[/OWAURL:<URL for connecting to Outlook Web Access>]

Le fichier option.ini permet une automatisation du procéssus et l’utilisation d’un fichier contenant le référence cn des utilisateurs impactés par l’opération.

Source:

FBupdate: http://blogpro.justtheitguy.com/Blog/public/Exchange/Tools/FBupdate.zip

http://www.swinc.com/fbupdate/

http://support.microsoft.com/kb/294282/

November 22nd, 2007

Batch : Effacer le contenu d’un repertoire

Effacer le contenu d’un répertoire, tant les sous-répertoire que les fichiers, peut paraitre simple.
Mais après quelques tests, il s’avère que l’opération est plus complexe que prévu.

Un script batch DOS peut le faire pour vous:

Supprimer le contenu d’un repertoire :

      @echo off
      pushd %1
      del /q "*.*"
      for /f "tokens=*" %%a in ('dir /b /ad') do rd /s /q "%%a"
      popd

L’exécution du script se fait sous la forme “nom_du_fichier.bat [cible]” (par exemple del_folder.bat d:\temp\)

Analyse du script:

pushd permet de stocker le répertoire en cours pour une utilisation futur par la commande POPD, ensuite passe au répertoire spécifié dans l’argument.
%1 correspond à l’argument qui a été soumis lors de l’exécution du script.
pushd %1 stock le répertoire courant et passe au répertoire soumis lors de l’exécution du script.

del /q “*.*” supprime tout le contenu du répertoire en cours.
l’argument /q permet de supprimer sans confirmation.

for /f “tokens=*”:
la boucle for avec l’argument /f et le “token=”*” parse (segmente) le contenu de la cible, ici, le résultat de “dir /b /ad”
Ici, le token=* permet de faire une lecture ligne à ligne.

“token=*” %%a in (‘dir /b /ad’):
la variable de jeton “%%a” de la boucle “for” prend la valeur du pointeur dans la liste de répertoire obtenue  par la commande dir /b /ad
dir /b /ad : liste les répertoire en format abrégé

A chaque itération de la commande for, le répertoire courant stocké dans la variable “%%a” est supprimé ainsi que tous les sous-répertoire.
Cette opération est effectuée par la commande “rd /s /q”

rd /s /q %%a:
Supprime le répertoire courant ainsi que tous les sous-répertoires et fichiers présents, l’argument /q permet d’executer la commande en mode silencieux.

popd: repasse le répertoire courant en celui précédemment stocké par la commande PUSHD

This work is licensed under GPL - 2009 | Powered by Wordpress using the theme aav1