Voici quelques commandes que j’ai utilisé cette semaine…Puisque cela m’a aidé, peut être que cela vous aidera aussi !
Besoin: connaître les utilisateurs qui n’utilisent pas le mode mise en cache de outlook.
Solution: Exchange 2007 possède un cmdlet PowerShell qui correspond tout à fait:
Get-LogonStatistics -server MonServeurExchange | where {$_.ClientMode -eq "Classic"} |FL ClientName
Besoin: Collecter les adresses IP assignées aux serveurs.
Solution:
- Créer un fichier texte contenant un nom de serveur par ligne, par exemple en récupérant tous les objets AD ayant pour OS « Windows Servers » via adfind
- Utiliser PowerShell + psexec pour récupérer le résultat de ipconfig /all sur chaque serveur
Le « script » powershell est le suivant:
———————————————————————————————-
get-content servers.txt | foreach-object {
$server=$_
$ip=.\psexec \\$server ipconfig /all| where { $_ -match "IP Address"} | %{$_ -replace "IP Address. . . . . . . . . . . . : ","$server;"}
Write-Output $ip >> servers_ipconfig.txt
}
———————————————————————————————-
Cette méthode, bien que très basique a certains avantages:
- On récupère les informations en « live » sans reposer sur des relevés pouvant être obsolètes
- Tout es ramassé, IP via NLB, carte réseau privée (heartbeat…), ip d’un tunnel VPN…
- psexec permet de spécifier un login/pass quand on est hors domaine
- Elle ne nécessite aucun agent sur les serveurs (SCCM, Altiris…)
Elle a au moins un inconvénient, il faut adapter la chaîne de caractère « IP Address » à la langue de vos systèmes d’exploitation.
Si vous êtes allergiques à PowerShell, où qu’il n’est pas disponible depuis votre environnement, une variante en MSDOS:
for /f %s in (servers.txt) do echo %s >>ipall.txt && psexec \\%s ipconfig /all | findstr "Address" | findstr "IP" >> ipall.txt