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.

Get-ChildItem | fl

Voici les commande qui permet de lister les fichiers avec le chemin sans les agresser.

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.

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.

$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.

 
$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")"
 
		}
	}	
}

Formater les nombres.

Voici comment formater les nombres avec Powershell.

CommandOutputType
“{0:N2}” -f $num725.00Numérique
“{0:D8}” -f $num00000725Décimal
“{0:C2}” -f $num$725.00Monétaire
“{0:P0}” -f $num72,500%Pourcentage
“{0:X0}” -f $num15CHexadécimal

Categories: Les bases Tags: , ,

Les statistiques de Novembre

Les statistiques du mois de Novembre.

statistiques aidexchange.fr

Categories: Divers Tags: ,

Configurer la communauté SNMP.

Permet de configurer le service SNMP d’un serveur distant.
Ce script configure la communauté et les hosts autorisés.

$server = Read-Host "Please enter the server name"
		$MachineName = $server
		$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $MachineName)
		$regconf = $reg.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\SNMP\\Parameters",$true)
		$regconf.SetValue('EnableAuthenticationTraps','0','DWord')
		$regconf = $reg.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\SNMP\\Parameters\\PermittedManagers",$true)
		$regconf.SetValue('1','localhost','string')
		$regconf.SetValue('2','SV002859','string')
		Write-Host "Server: "$MachineName -ForegroundColor Green
		$regconf.GetValue('1')
		$regconf.GetValue('2')
 
		Write-Host "-------------------------------------" -ForegroundColor Green
		$regconft = $reg.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\SNMP\\Parameters\\ValidCommunities",$true)
		$regconft.SetValue('casimir','4','DWord')

Categories: Windows Tags: , , ,

Déplacer les membres d’un groupe

Déplacez les membres d’un groupe vers un autre groupe Active Directory.

$groups = Read-Host "Entrez le nom du groupe source"
$groupt = Read-Host "Entrez le nom du groupe cible"
$members = Get-QADGroupMember -Identity $groups
Foreach ( $member in $members) {
if ( $member -ne $null) {
Add-QADGroupMember -Identity $groupt -Member $member.dn
Remove-QADGroupMember -Identity $groups -Member $member.dn
}
}

Categories: Active Directory Tags: ,

Copier les membres d’un groupe

Copie les membres d’un groupe dans une autre groupe Active Directory.

$groups = Read-Host "Entrez le nom du groupe source"
$groupt = Read-Host "Entrez le nom du groupe cible"
$members = Get-QADGroupMember -Identity $groups
Foreach ( $member in $members) {
Add-QADGroupMember -Identity $groupt -Member $member.dn
}

Categories: Active Directory Tags: , ,

Vérification des services Enterprise Vault

Le script que j’utilise pour rapidement vérifier si tous les services nécessaire à Entreprise Vault sont démarrés sur une liste de serveurs.

$servers = "SRV00045","SRV00046"
foreach ($server in $servers) {
Get-Service -ComputerName $server | Where-Object { $_.name -like "EnterpriseVault*" -or $_.name -eq "MSMQ"} | ft $server,Status,Name,DisplayName
}