Posts tagged: Powershell

Vérifier la présence d’un dossier avant de le créer



Une petite ligne rapide pour tester la présence d’un dossier et le créer si absent.

If (-not (Test-Path "dossier_test")) { New-Item -ItemType Directory -Name "dossier_test" }



Mardi octobre 18th, 2011 in , , | No Comments »

Renommer vos photos avec la date de prise de vue



Mon problème, j’utilise plusieurs appareils photos et mon smartphone pour immortaliser ma petite famille. De ce fait, je me retrouve avec des photos DSC… partout. Je souhaite les classer chronologiquement avec Powershell.
De nombreux programme sous Windows le font en se basant sur EXIF.
Mais quoi de mieux que le faire soit même en Powershell.
Grâces aux Métadonnées EXIF voici ce qu’il est possible de faire.

[reflection.assembly]::loadfile( "C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll") > $null
if ((Test-Path -path "Result") -ne $True)
{
New-Item -Name "Result" -type directory
}
$Files = Get-ChildItem -filter *.jpg
foreach ($file in $Files) 
{
$foo=New-Object -TypeName system.drawing.bitmap -ArgumentList $File.fullname
$date = $foo.GetPropertyItem(36867).value[0..20]
$arYear = [Char]$date[0],[Char]$date[1],[Char]$date[2],[Char]$date[3]
$arMonth = [Char]$date[5],[Char]$date[6]
$arDay = [Char]$date[8],[Char]$date[9]
$strYear = [String]::Join("",$arYear)
$strMonth = [String]::Join("",$arMonth) 
$strDay = [String]::Join("",$arDay)
$DateTaken = $strYear + "-" + $strMonth + "-" + $strDay
$time = [Char]$date[11],[Char]$date[12],[Char]$date[14],[Char]$date[15],[Char]$date[17],[Char]$date[18]
$strtime = [String]::Join("",$time)
$taken = $DateTaken + "-" + $strtime + ".jpg"
$TargetPath = ".\result\" + $taken
Copy-Item -PassThru $File.fullname -Destination $TargetPath
}



Dimanche octobre 16th, 2011 in , , , , | No Comments »

Supprimer le sIDHistory d’un compte



Après une migration AD entre deux domaine avec des outils comme ADMT, il est important de supprimer les sIDHistory sur les comptes du domaine cible.
Cette opération va permettre également de réduire la taille du Token Kerberos.

Get-QADUser "Chuck Norris" | %{Set-QADUser $_ -ObjectAttributes @{sIDHistory=@{delete=$_['sIDHistory']}}}

Plus d’infos



Lister les répertoires et les sous-répertoires



Cette commande vous permet de lister uniquement les répertoires et sous-répertoires du dossier courant.
Sans le filtre, Get-ChildItem vous affiche les dossiers et les fichiers.

Get-ChildItem -Recurse | Where-Object { $_.PSIsContainer } | Select-Object Name,Fullname



Jeudi octobre 6th, 2011 in , , | No Comments »

Les dimensions d’une images avec Powershell



Cela ne va pas servir tous les jours mais voici comment obtenir les dimensions d’une image avec Powershell.

$image = New-Object -ComObject Wia.ImageFile            
$image.LoadFile(".\image.jpg")            
$image.Width, $image.Height



Mercredi septembre 7th, 2011 in , , , | No Comments »

Générer un nombre aléatoire



Voici comment générer un nombre aléatoire à 4 chiffres.

$rand = New-Object System.Random
[char]$rand.next(1000,9999)



Lundi septembre 5th, 2011 in , | No Comments »

Convertir un texte au format nom propre.



Un moyen simple permet de convertir un chaîne de texte au format nom propre.

(Get-Culture).TextInfo.ToTitleCase("string")

Cette méthode peut gérer les espaces, « , », « - » et « _ ». tous les mots de la chaîne seront traités.
La première lettre de chaque mots sera mise en majuscule et le reste n minuscule.



Jeudi septembre 1st, 2011 in , , | No Comments »

Rechercher du texte dans une chaîne ou un fichier



A la manière d’un Grep sous Unix, il est possible avec la commande Select-String de rechercher un texte dans un fichier de logs.

Select-String -Path .\test.txt -Pattern "rechercher ce texte" -Context 0,2

Avec le paramètre Context, il est possible d’afficher les lignes précédentes ou suivant à la ligne ou se trouve le texte recherché.



Samedi août 13th, 2011 in , , , | No Comments »

Exporter les comptes d’ordinateurs



Voici une ligne de commande utile pour exporter la liste des comptes d’ordinateurs d’une OU en vu de faire un peu de ménage.

Get-QADComputer -IncludeAllProperties -SearchRoot domain.local\Paris -Sizelimit 0 | Select-Object cn,OSName,OSServicePack,pwdlastset,ParentContainer | Export-Csv -Path Paris_Computers_List.csv



Mercredi mai 18th, 2011 in , , , , | No Comments »

Recherche DNS avec Powershell.



Voici comment effectuer une recherche DNS avec Powershell à partir d’un FQDN ou d’une adresse IP.

A partir du nom complet DNS:

[System.Net.Dns]::GetHostAddresses('server001.domain.com') | fl

A partir de l’dress IP.

[System.Net.Dns]::GetHostbyAddress('192.168.4.67') | fl



Samedi mars 5th, 2011 in , , , | No Comments »