Tag Archives: PowerShell

Cookie Nutzung mit PowerShell Invoke-WebRequest

Wenn man Cookies von einem WebRequest zu anderen übergeben möchte geht das wie folgt:

$LoginXML = Invoke-WebRequest $LoginUrl -Method Post -Body "Some=Post&Variable=true" -SessionVariable session
$UsersXML = Invoke-WebRequest $OtherUrl -WebSession $session

Die Cookies werden dann in der Variable $session gespeichert und können mit der Option -WebSession weiterverwendet werden.

Leave a Comment

Filed under PowerShell, Windows

Löschen aller Tabellen in einer MSSQL Datenbank

Ich musste gerade mal auf die schnelle alle Tabellen in einer  MSSQL Datenbank löschen. Hier für gibts zig SQL Scripte dafür im Internet, aber eigentlich geht das viel schneller mit der integrierten Powershell:

1. Zu der Auflistung der Tabellen navigieren, Rechtsklick drauf und ‚PowerShell starten‘ auswählen:

2. Nun eingeben:

ls | %{$_.Drop()}

Das wars auch schon 🙂 Nun werden alle Tabellen in der ausgewählten Datenbank gelöscht.

Leave a Comment

Filed under PowerShell, Windows

SCP Upload via PSCP und PowerShell

Ich mag ja Batch (CMD.exe) sowas von garnicht, inzwischen schreibe ich alles in PowerShell. Hier mal ein kurzes Beispiel für einen SCP Upload auf ein Unix System mit Hilfe von pscp.exe.
Dies ist die Command Line SCP Version von Putty und lässt sich hier runterladen.

$PathToPSCPEXE = "C:\Program Files (x86)\Putty\pscp.exe"
$PathToPrivateKey = '"C:\Path\To\PrivateKey.ppk"'
$PrivateKeyPassPhrase = "PASSPHRASE"
$UserName = "root"
$UploadHostName = "hostname.example.org"
$PathToUploadFile = "C:\Path\To\File.txt"
$UploadPath = "/root/" # With closing "/"!
[Array]$Arguments = "-i", $PathToPrivateKey, "-pw", $PrivateKeyPassPhrase, $PathToUploadFile,($UserName,"@",$UploadHostName,":",$UploadPath,$PathToUploadFile.Split("\")[-1] -join "")

& $PathToPSCPEXE $Arguments

Leave a Comment

Filed under PowerShell

Alle möglichen Bildschirm Auflösungen mit PowerShell herausfinden

Gerade mal wieder was interessantes in PowerShell gefunden. Und zwar ging es mir darum die möglichen Auflösungen auszulesen, welche auf dem Rechner möglich sind.
Nach einigem Knobel kam folgendes dabei raus:

$Query = "SELECT * FROM CIM_VideoControllerResolution"
$res = Get-WMIObject -query $Query | Select Caption

Um die größtmögliche Auflösung herauszubekommen, kann folgendes verwendet werden:

$Query = "SELECT * FROM CIM_VideoControllerResolution"
$res = Get-WMIObject -query $Query | Select Caption | Select-Object -Last 1 | %{$_.Caption.Split("x")} | %{$_.Trim()} | Select-Object -First 2
$maxwidth = $res[0]
$maxheigth = $res[1]

Leave a Comment

Filed under PowerShell, Windows

Viele Rar Dateien entpacken mit PowerShell

Ich hatte soeben das Problem, dass ich einige dutzend .rar Dateien hatte, welche in allen möglichen Unterverzeichnissen einen Ordners lagen. Da ich ehrlich gesagt viel zu faul bin jede Datei einzeln anzuklicken und zu entpacken habe ich vor einiger Zeit das Programm „Muli Unpacker“ gefunden, welches aber einen entscheidenden Nachteil hat: Das Winrar-Entpack Fenster ist immer im Vordergrund. Ergo ziemlich blöd wenn man nebenher irgendwas sinnvolles arbeiten möchte.
Da Winrar standardmäßig aber auch einige Command-Line Tools (rar.exe, unrar.exe) mitbringt, kann man dies auch schnell in der PowerShell automatisieren. Folgendermaßen könnte solch ein Script aussehen:

$input = Read-Host "Bitte Pfad eingeben:"
$files = Get-ChildItem $input -Recurse -Filter *.rar 

foreach ($file in $files)
{
    $Filename = $file.FullName
    $DirectoryName = $file.DirectoryName
    & 'C:\Program Files\WinRAR\UnRAR.exe' x -y $filename $DirectoryName | Out-Null
    if ($LASTEXITCODE -match "0")
    {
        rm "$DirectoryName\*.r*"
        rm "$DirectoryName\*.sfv"
        Write-Host "Gelöscht: $DirectoryName\*.r*"
        Write-Host "Gelöscht: $DirectoryName\*.sfv"
    }
    else
    {
        Write-Host -ForegroundColor Red "ACHTUNG FEHLER! $filename"        
    }
}

Ich hoffe dem ein oder anderen hilft das weiter 🙂 Gute Nacht 🙂

2 Comments

Filed under PowerShell, Windows