Archive

Archives pour 01/2011

Rechercher des OU dans le domaine

Comment lister toutes les Unités d'Organisation d'un domaine contenant le mot "Users".
?View Code POWERSHELL
$search = [System.DirectoryServices.DirectorySearcher]([adsi]"") 
$search.Filter = "(objectClass=organizationalUnit)" 
$search.Findall() | Where-Object {$_.properties.distinguishedname -match "Users" }

Lister les fichiers archivés.

Les travaux pratiques du jour: Lister tous les fichiers qui sont archivés sur un serveur sans les désarchiver. Les fichiers archivés on l'attribut "Offline". La commande suivant a eu pour effet de désarchiver tous les fichiers listés, donc il faut y aller avec des pincettes pour ne pas désarchiver tout le serveur d'un coup.
?View Code POWERSHELL
Get-ChildItem | fl
Voici les commande qui permet de lister les fichiers avec le chemin sans les agresser.
?View Code POWERSHELL
Get-ChildItem -Recurse | Where-Object { $_.Attributes -match "Offline" } | Select-Object  Name,Attributes,Fullname | Export-Csv -Path .\Exports\arhived_files.csv -Encoding unicode
Demain, nous verrons bien comment on va faire pour les désarchiver en douceur.
Categories: Windows Tags: , ,

Filter les MailContacts sur un nom de domaine.

Je souhaite filter les MailContacts qui transferent les messages vers un domaine spécifique. En cette période de grand ménage, je cherche a exporter la liste des MailContacts obsolètes.
?View Code POWERSHELL
Get-MailContact -ResultSize unlimited | Where-Object { $_.ExternalEmailAddress -like "*@sc.domain.com" } | Select-Object DisplayName,Alias,ExternalEmailAddress | Export-Csv -Path .\Export\Old_MailContacts.csv
Categories: Exchange 2007 Tags: ,

Sélectionner le dernier fichier créé.

Voici la méthode pour sélectionner les dernier fichier qui a été créé dans un dossier. Cela me permet de récupérer le dernier fichier de logs ou de traiter le dernier rapport.
?View Code POWERSHELL
$file = Get-ChildItem -Path .\Logs -recurse -include *.log | Sort-Object -Property CreationTime | Select-Object -Last 1
$file
Categories: Powershell Tags:

Lister les Licence Terminal Server

Ce script m'a permit de lister tous les serveurs gestionnaires de licences terminal server dans le domaine. LSVIEW.EXE permet de faire cette recherche mais ne fouille pas recoins lointains d'un domaine important. Le script ci-dessous est plus agressif, il vérifie la présence du service "TermServLicensing" sur tous les Windows Server du domaine.
?View Code POWERSHELL
 
$Input = Get-QADComputer -SizeLimit 0 | where {$_.OSName -match "Windows Server" }
 
$expfileok = New-Item -ItemType file -Path .\TermServLicensing.csv -Force
Add-Content -Path $expfileok -Value "Name,OK"
 
 
foreach ($server in $Input)
{
$version = $null
$version = Get-WmiObject Win32_OperatingSystem -ComputerName $server.name -ErrorAction SilentlyContinue
 
	If ( $version -eq $null)
	{
		Write-Host $server.name " Inaccessible." -Separator ","  -ForegroundColor Red
	}
	Else
	{
 
	$Service = Get-Service -ComputerName $server.name -Name "TermServLicensing" -ErrorAction SilentlyContinue
		If ($Service.name -eq "TermServLicensing")
		{
		Write-Host $server.name "OK"-Separator "," -ForegroundColor Green
		Add-Content -Path $expfileok -Value "$($server.name),$("OK")"
 
		}
	}	
}