Archive

Archives pour la catégorie ‘Powershell’

Raccourcir une URL avec PowerShell

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 :

Categories: Powershell Tags: , ,

Importer un fichier avec des accents et caractères spéciaux

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 :

Lancer une commande Dos avec une variable issue d’un import.

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 :

Categories: Powershell Tags: , ,

Conserver le dernier mot de chaque phrases

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 :

Categories: Powershell Tags:

Supprimer le dernier mot d’une ligne

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 :

Categories: Powershell Tags:

Réduire la taille de toutes les images d’un dossier.

illex

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 :

Categories: Powershell Tags: , ,

Faire un recherche DNS sur un liste d’adersse IP

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 :

Categories: Powershell Tags: , ,

Quel temps fait-il à Nantes avec PowerShell

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 :

Categories: Powershell Tags: , , ,

Module PowerShell pour gérer le DHCP

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 :

Categories: Powershell Tags: , ,

Lister les étendues DHCP d’un serveur

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 :

Categories: Powershell Tags: ,