Powershell: Liste verfügbarer WLAN SSID’s erstellen

function Get-WLANNet {
 end {
  netsh wlan sh net mode=bssid | % -process {
    if ($_ -match '^SSID (\d+) : (.*)$') {
        $current = @{}
        $networks += $current
        $current.Index = $matches[1].trim()
        $current.SSID = $matches[2].trim()
    } else {
        if ($_ -match '^\s+(.*)\s+:\s+(.*)\s*$') {
            $current[$matches[1].trim()] = $matches[2].trim()
        }
    }
  } -begin { $networks = @() } -end { $networks|% { new-object psobject -property $_ } }
 }
}

Get-WLANNet| select index, ssid, signal, 'radio type' | sort signal -desc | Format-Table -auto

SQL Abfrage per Powershell

Sehr nützliche Funktion um Queries auf einer SQL Datenbank laufen zu lassen:

function Invoke-SQL 
{
    param(
    [string] $dataSource = 'Server-Name',
    [string] $database = "Database-Name",
    [string] $sqlCommand = $(throw "Please specify a query.")
        )
                                          
    $connectionString = "Data Source=$dataSource; " + 
                    "Integrated Security=SSPI; " + 
                    "Initial Catalog=$database"
                                                                      
    $connection = new-object system.data.SqlClient.SQLConnection($connectionString)
    $command = new-object system.data.sqlclient.sqlcommand($sqlCommand,$connection)
    $connection.Open()
                                                                                  
    $adapter = New-Object System.Data.sqlclient.sqlDataAdapter $command
    $dataset = New-Object System.Data.DataSet
    $adapter.Fill($dataSet) | Out-Null
                                                                                              
    $connection.Close()
    $dataSet.Tables
                                                                                                      
}

Powershell Executionpolicy

Fundamental für funktionierende Powershell Scripte ist die Executionpolicy.

Die Executionpolicy legt fest unter welchen Vorraussetzungen ein Powersehll Script ausgeführt werden darf.

Folgende Policies sind verfügbar

get-executionpolicy

set-executionpolicy -executionpolicy AllSigned
set-executionpolicy -executionpolicy Bypass
set-executionpolicy -executionpolicy Default
set-executionpolicy -executionpolicy RemoteSigned
set-executionpolicy -executionpolicy Restricted
set-executionpolicy -executionpolicy Unrestricted
set-executionpolicy -executionpolicy Undefined

die Kurzbeschreibung von Microsoft sieht wie folgt aus:

http://technet.microsoft.com/en-us/library/ee176961.aspx

 

Fotos per Powershell in Ordner einsortieren

Ich sortiere meine Fotos in Ordner nach Erstelldatum.

Das heisst, ist das Foto am 22.03.2014 erstellt worden landet es im Ordner 20140322.

Diese mühselige Arbeit kann natürlich mit Powershell automatisiert werden.

function copy-files2folder
{
<#
    .SYNOPSIS
        Reads the create date of each file and creates a folder with naming YYYYMMDD and puts the file into it
    .PARAMETER Path
        $Path is mandatory and defines the path where the script needs to go through
    .PARAMTER Extension
        $Extenison is defining a filter for a specific file extenstion to be covered
    .EXAMPLE
        copy-files2folder -Path "c:\temp" -Extension "jpg"
    .LINK
        http://www.gabrie.li
#>
    PARAM
    (
    [Parameter(Mandatory=$true)]
    [string]$Path,

    [string]$Extension
    )

$filesinfolder = Get-ChildItem -Path $Path -File -Filter "*.$Extension"
foreach ($file in $filesinfolder)
    {
    $foldername = ((Get-ItemProperty -Path $File.FullName).CreationTime).ToString("yyyyMMdd")
    if (test-path -Path $Path\$foldername)
        {
        Move-Item -Path $file.FullName -Destination $Path\$fodername 
        }
    Else 
        {
        new-item -ItemType directory -Path $Path\$foldername
        Move-Item -Path $file.FullName -Destination $Path\$foldername
        }
    } 

}

copy-files2folder -Path "c:\temp" -Extension "jpg"

Durch einen weiteren Parameter kann sogar zwischen verschiedenen Datei-Erweiterungen unterschieden werden.