Posts tagged ‘Powershell’

Mit Powershell die installierte Software auslesen

Unter http://myitforum.com/cs2/blogs/yli628/archive/2008/01/16/powershell-script-to-list-installed-software-on-local-computer.aspx habe ich ein Skript gefunden, das anhand der Registry die installierte Software ausliest und in einer Excel-Datei auflistet.

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

C# und Powershell mischen

Von Doug Finke gibt es ein interessantes Video, in dem er beschreibt wie man C# Code in Powershell Skripten direkt ausführen kann.

http://dougfinke.com/blog/?p=414

Extrem genial ist die Möglichkeit, den C# Code direkt in der Powershell laufen zu lassen, die einzige Erweiterung war das „public“ Setzen von Klasse und Methode und der passende Aufruf:

Add-Type `
@"
using System;
namespace ConsoleApplication1
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hallo Welt");
            Console.ReadLine();
        }
    }
}
"@
[ConsoleApplication1.Program]::Main($null)

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Powershell Commandlets mit Visual Studio 2008 erstellen

Heute Nachmittag hab ich mich mal aufgemacht, ein eigenes Commandlet mit Visual Studio C# zu programmieren. Dazu bin ich einfach dem Tutorial von Alan Bradley gefolgt: http://www.gangleri.net/2009/04/21/BuildingPowerShellCmdletsWithVisualStudio2008.aspx. Die Projekt Template konnten zuerst nicht installiert werden, da in meinem Dokumente-Ordner folgende Unterordner fehlten:

  • \Visual Studio 2008\Templates\ItemTemplates\Visual Basic
  • \Visual Studio 2008\Templates\ProjectTemplates\Visual Basic
  • \Visual Studio 2008\Templates\ItemTemplates\Visual C#
  • \Visual Studio 2008\Templates\ProjectTemplates\Visual C#

Der Rest war einfach, nur die Zeile Set-Alias installutil C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe wollte ich auf .Net 3.5 anpassen, fand aber die InstallUtil.exe nicht im entsprechenden Verzeichnis. Googeln ergab dann, dass Version 3.0 und 3.5 nur Aufsätze für die Version 2.0 sind und daher der obige Pfad richtig ist.

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Netzwerk-Einstellungen auslesen per Powershell

Folgende Zeile, gepostet in der Powershell-Newsgroup, gibt eine Übersicht über alle Netzwerkadapter des Systems:

get-wmiobject Win32_NetworkAdapterConfiguration

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Powershell in Action, 2. Auflage

März 2010 soll die zweite Ausgabe von Bruce Payettes Buch „Powershell in Action“ erscheinen. Auf der entsprechenden Homepage des Manning-Verlags gibt es ein paar Probekapitel: http://www.manning.com/payette2.

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Powershell gci mit limitierter Rekursionstiefe

Standardmäßig hat Powershell keine Möglichkeit, die Rekursionstiefe von gci zu begrenzen. Über Textfilter bekommt man es aber doch hin, wie mir in der microsoft.public.windows.powershell Newsgroup gezeigt wurde. Der volle Pfad eines Items wird an den „\“ gesplittet, dann wird gezählt, in wieviele Elemente gesplittet wurde und nur die ausgegegeben, bei denen es weniger oder gleich 3 Splits (4 Elemente) waren. Ist man bereits in einem tiefen Verzeichnisbaum muss der Parameter entsprechend hoch angesetzt werden.

gci c:\powershelltest -recurse | where{
        if(
            ($_.fullname.split("\")).count -le 4){write-host $_.fullname}
 
        }

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Mit Powershell Windows Shares auslesen

Hab ich grad in den Weiten des Netzes gefunden:

Get-ChildItem \\bigboy\share  -recurse | where {$_.PSIsContainer} | Get-Acl | Select-Object Path, Owner -ExpandProperty Access

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Verknüpfungen anlegen mit Powershell

Im Blog von Lee Desmond findet sich ein kurzer Artikel, wie man über die Powershell Verknüpfungen anlegen kann: http://www.leedesmond.com/weblog/?p=60.

Hier ein Beispiel:

$link = $wshshell.CreateShortcut($home\Desktop\Verknuepfung.lnk”)
$link.targetpath = "C:\test.txt"
$link.save()

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Powershell im IT-Handbuch für Fachinformatiker

Im IT-Handbuch für Fachinformatiker aus dem Galileo-Verlag findet sich auch ein Abschnitt zur Powershell, der unter http://openbook.galileocomputing.de/it_handbuch/ fachinformatiker_06_windows_002.htm #mj79f9cdd8da1b64d3ad8122bf8d6e3b9e online verfügbar ist.

Das Buch geht dabei nicht so in die Tiefe, wie spezielle Powershell-Bücher, gibt aber einen recht guten Einstieg, der sicher Lust auf mehr macht.

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

FileOpen und FileSave Dialoge mit Powershell

Da man mit Powershell auch die Windows API ansprechen kann, lässt sich auch ein FileOpen oder FileSave Dialog mit geringem Aufwand erstellen. Ein schönes Beispiel für einen entsprechenden Dialog habe ich unter http://www.peetersonline.nl/index.php/powershell/powershell-open-file-dialog-box/ gefunden.

Das dortige Skript nutzt den FileOpen-Dialog, d.h. die Datei muss vorhanden sein. Mit sehr wenig Aufwand lässt sich auch ein entsprechender Dialog zum Speichern basteln:

# Select-FileDialog Function  #
# Created by Hugo Peeters     #
# http://www.peetersonline.nl #
# modified by Uwe Ziegenhagen for SAVE #
###############################
# Note: store in your profile for easy use
# Example use:
# $file = Select-FileDialog -Title "Select a file" 
# -Directory "D:\scripts" -Filter "Powershell Scripts|(*.ps1)"
 
function Select-FileDialog
{
  param([string]$Title,[string]$Directory,[string]$Filter="All Files (*.*)|*.*")
     [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
# UZ: replaced OpenFileDialog by SaveFileDialog
$objForm = New-Object System.Windows.Forms.SaveFileDialog
$objForm.InitialDirectory = $Directory
$objForm.Filter = $Filter
$objForm.Title = $Title
$Show = $objForm.ShowDialog()
If ($Show -eq "OK"){
                Return $objForm.FileName
}
Else {
      Write-Error "Operation cancelled by user."
      }
}
$file = Select-FileDialog -Title "Select a file" -Directory "C:\" -Filter "All Files |(*.*)"
write-host $file

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website