Un raccourcisseur d’URL… Vous trouverez surement plein de plugins ou sites qui le font. Alors pourquoi pas PowerShell?
Voici en deux lignes un script qui raccourci une adresse Internet un peu longue.
Le résultat est directement copié dans le presse-papier pour plus d’efficacité.
$url = Read-Host "Enter the Url"
Invoke-RestMethod -Uri "http://tinyurl.com/api-create.php?url=$url" | clip |
Invoke-RestMethod est disponnible avec PowerShell V3.
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Lors de la création par importation de comptes ou boites aux lettres, vous pouvez avoir à gérer des chaines de caractères avec des accents ou caractères spéciaux.
La cmdlet Import-CSV ne gère pas ces caractères. Il est nécessaire de convertir votre fichier txt ou csv au format Unicode avant de l’importer.
Sans cette conversion, les caractères é, ë, ç… seront transformés en « ? ».
Dans le script ci-dessous, je converti le fichier à importer avant la commande Import-CSV.
Get-Content -Path ./import.txt | Out-File -FilePath ./import-unicode.txt -Encoding Unicode
Import-Csv -Path ./import-unicode.txt | foreach {
$displayname = $_.LastName + " " + $_.FirstName
$displayname
} |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Utiliser PowerShell pour lancer par exemple un « reg query » ou tout autres commandes Dos sur une liste de PC présents dans un fichier texte.
$list = Import-CSV -Path "./comp-list.txt"
ForEach ($comp in $list) {
$ip = $comp.ip
$cmdreg = "reg query \\$ip\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa"
Invoke-Expression $cmdreg
} |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Cette fois je souhaite conserver la dernière valeur des chaque chaines de caractères.
$songs= "My name is stain dfldsj","Reset after all pomaolk","Palabra mi amor piloeak"
foreach ($title in $songs) {
$title.Split(" ")[-1]
} |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Je souhaite retirer la dernière valeur de chaque chaines de caractères.
$songs= "My name is stain dfldsj","Reset after all pomaolk","Palabra mi amor piloeak"
foreach ($title in $songs) {
$Split = $title.Split(" ")
[string]$split[0..($Split.count-2)]
} |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :

J’ai trouvé un script très utile permettant de réduire la taille de toutes les images contenu dans un dossier.
Ça marche nickel.
[reflection.assembly]::LoadWithPartialName("System.Drawing")
$toresize = "..\images"
$SizeLimit=1024 # required size of picture's long side
$logfile="resizelog.txt" # log file for errors
Get-ChildItem -recurse $toresize -include *.jpg | foreach {
$parent = $_.Directory.name
$backupdir = ".\backup\" + $parent + "\"
If (-not (Test-Path $backupdir)) { New-Item -ItemType Directory -Name $backupdir }
$backup = $backupdir + "\" + $_.Name
Copy-Item -Path $_.fullname -Destination $backup
$OldBitmap = new-object System.Drawing.Bitmap $_.FullName # open found jpg
if ($error.count -ne 0) { # error handling
$error | out-file $logfile -append -encoding default
$error[($error.count-1)].TargetObject | out-file $logfile -append -encoding default
echo $_>>$logfile
$error.clear()
}
$LongSide=$OldBitmap.Width # locating long side of picture
if ($OldBitmap.Width -lt $OldBitmap.Height) { $LongSide=$OldBitmap.Height }
if ($LongSide -gt $SizeLimit) { # if long side is greater than our limit, process jpg
if ($OldBitmap.Width -lt $OldBitmap.Height) { # calculate dimensions of picture resize to
$newH=$SizeLimit
$newW=[int]($OldBitmap.Width*$SizeLimit/$OldBitmap.Height)
} else {
$newW=$SizeLimit
$newH=[int]($OldBitmap.Height*$newW/$OldBitmap.Width)
}
$NewBitmap = new-object System.Drawing.Bitmap $newW,$newH # create new bitmap
$g=[System.Drawing.Graphics]::FromImage($NewBitmap)
$g.InterpolationMode = [System.Drawing.Drawing2D.InterpolationMode]::HighQualityBicubic # use high quality resize algorythm
$g.DrawImage($OldBitmap, 0, 0, $newW, $newH) # resize our picture
$name=$_.DirectoryName+"\"+$_.name+".new" # generating name for new picture
$NewBitmap.Save($name, ([system.drawing.imaging.imageformat]::jpeg)) # save newly created resized jpg
$NewBitmap.Dispose() # cleaning up our mess
$OldBitmap.Dispose()
$n=get-childitem $name
if ($n.length -ge $_.length) { # if resized jpg has greater size than original
Write-host -NoNewLine "+" # draw "+"
$n.delete() # and delete it
} else { # if resized jpg is smaller than original
if ($n.Exists -and $_.Exists) {
$name=$_.FullName
$_.Delete() # delete original
$n.MoveTo($name) # rename new file to original name (replace old file with new)
echo ($Name + " " + $LongSide) # write its name for visual control
}
}
} else { # if long side is smaller than limit, draw dot for visual
Write-host -NoNewLine "."
$OldBitmap.Dispose()
}
} |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Un script PowerShell pour faire un recherche DNS sur une liste d’adresse IP à la manière d’un NSLookup.
$list = Get-Content -Path .\nslookuplist.txt
Foreach ($ip in $list) {
[System.Net.Dns]::GetHostByAddress("$ip")
} |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
J’ai pas encore trouvé l’utilité mais ça peut servir.
Voici un script PowerShell qui vous permet de connaitre le temps qu’il fait en ce moment à Nantes.
$webclient = new-object net.webclient
$feed = [xml]($webclient.DownloadString("http://www.google.com/ig/api?weather=nantes, france&hl=fr"))
$feed.xml_api_reply.weather.current_conditions.condition.GetAttribute("data") |
Autre intérêt que de connaitre le temps qu’il fait grâce à une API Google, ce script montre comment télécharger un contenu XML sur internet et en extraire un information avec PowerShell.
Pour info, aujourd’hui, c’est « Nuageux dans l’ensemble ».
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Voici un module PowerShell a ajouter pour obtenir les commandes supplémentaires pour gérer vos serveurs DHCP.
PowerShell Module for DHCP
Vous aurez alors accès à 24 cmdlets supplémentaires.
Add-DHCPExclusionRange
Add-DHCPIPRange
Disable-DHCPScope
Enable-DHCPScope
Get-DHCPOption
Get-DHCPOptionDefinitions
Get-DHCPReservation
Get-DHCPScope
Get-DHCPServer
Get-DHCPStatistics
New-DHCPOptionDefinition
New-DHCPReservation
New-DHCPScope
Remove-DHCPExclusionRange
Remove-DHCPIPRange
Remove-DHCPOption
Remove-DHCPOptionDefinition
Remove-DHCPReservation
Remove-DHCPScope
Set-DHCPConflictDetectionAttempts
Set-DHCPOption
Set-DHCPScopeDescription
Set-DHCPScopeLease
Set-DHCPScopeName
Ces commandes utilisent netsh, pour simplifier les taches d’administration sur les serveur DCHP.
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Netsh est un utilitaire en ligne de comande qui va vous permettre de gérer le DHCP Client et Serveur.
Par exemple sur un serveur, la commande suivant permet d’afficher toutes les étendues.
netsh dhcp server \\SERVERNAME show scope |
Ces commandes s’intègre très bien dans vos scripts PowerShell.
Vue d’ensemble des commandes Netsh
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Commentaires récents