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 |
Voici comment générer un nombre aléatoire à 4 chiffres.
$rand = New-Object System.Random
[char]$rand.next(1000,9999) |
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.
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é.
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 |
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 |
Dans la continuité de l’article précédent voici comment afficher tous les fichiers non modifiés depuis plus d’un mois.
$date= (get-date).AddMonths(-1)
Get-ChildItem * | Where-Object {$_.LastWriteTime -lt $date} | Select-Object LastWriteTime,Name,DirectoryName |
Pour voyager dans le temps un peu comme McFly.
Il est possible de définir une valeur de temps dans le passé ou le futur par rapport à la date actuelle.
Dans le futur:
Exemple: Ajouter 10 jours à la date actuelle.
$date = (get-date).AddDays(10) |
Dans le passé:
Exemple: Ajouter 6 heures à la date actuelle.
$date = (get-date).AddHours(-6) |
Il est possible de remplacer « AddDays » par:
AddHours
AddMinutes
AddMonths
AddSeconds
AddYears
Permet de transférer la valeur d’une variable dans un fichier texte.
$christophe = get-mailbox *christophe*
Set-Content christophe.txt $christophe |
Voici quelques commandes pour traiter un fichier texte.
Supprimer les lignes contenant une chaine de caractères:
Get-Content .\fichier.txt | where { $_ -notmatch "Ligne à supprimer" } |
Conserver les lignes contenant une chaine de caractères:
Get-Content .\fichier.txt | where { $_ -like "Ligne à garder*" } |
Remplacer ou supprimer une chaine de caractère dans toutes les lignes:
Get-Content .\fichier.txt | foreach { $_ -replace "Mailbox: ","" } |
Supprimer les lignes vides:
Get-Content .\fichier.txt | where { $_ -ne "$null" } |