Blog

Hallo zusammen,

Im vierten Teil meiner Grundlagenserie zeige ich euch wie ein cmdlet Befehl aufgebaut ist und wie Ihr PowerShell für die tägliche Arbeit nutzen könnt.

Die PowerShell Syntax sieht wie folgt aus = Verb Bindestrich „-“ Substantiv -Parameter Attribut, das ganze in Englisch und in der Einzahl.

Es gibt kein Get-Members/Get-Processes/Get-Services, sondern nur ein Get-Member/Get-Process/Get-Service

Alle Parameter, die man dem cmdlet mit gibt, kann man bis auf ein Zeichen nach dem Bindestrich „-“ abkürzen, solange es keinen weiteren Parameter mit demselben Buchstaben gibt.
Bestes Beispiel wäre jetzt hier das cmdlet Get-ChildItem, hier gibt es als Parameter -Filter -File -Force

Die gekürzte Version würde jetzt wie folgt aussehen: Get-ChildItem -Filt BlaBlaBla -File BlaBlaBla -Fo
Persönlich schreibe ich aber die Parameter aus, dann kann nichts schief gehen und jeder der das Skript liest, weiß was gemeint ist.

Auch ist es möglich die Parameter ganz weg zu lassen, dann muss aber die Reihenfolge der Parameter eingehalten werden. Die Reihenfolge könnt Ihr euch anzeigen lassen, indem Ihr Get-Help cmdlet aufruft.

Powershell Verben:
Get- besorgt Informationen
Set- ändert Informationen
Add- fügt neue Informationen hinzu
Remove- löscht Informationen

Eine Beschreibung aller PowerShell Verben findet ihr auf der MSDN Seite von Microsoft oder mit dem cmdlet Get-Verb
http://msdn.microsoft.com/en-us/library/ms714428%28v=vs.85%29.aspx

Powershell Substantiv:
Help
Member
Service
Command

So dann wollen wir mal loslegen, jede gute Programmiersprache beginnt mit einem „Hello World“, Powershell beginnt meistens mit Get-Process oder Get-Service, dem schließe ich mich jetzt an.

Ich lass mir mal alle meine lokalen Dienste anzeigen:

Um mir alle Dienste nach Namen/Status/DisplayName zu sortieren, benutze ich die Pipeline „|“ und das cmdlet Sort-Object

Um nach bestimmten Diensten zu suchen die ein „win“ in Ihren Namen haben, benutze ich folgende Abfrage

Mit folgendem Befehl finde ich heraus mit welchen zusätzlichen Eigenschaften ich die Dienste noch abfragen kann. Besonderes Augenmerk sind die Property’s

Um mir die Eigenschaften einer Abfrage anzeigen zu lassen, muss diese Abfrage in Klammern gesetzt werden, plus einen Punkt und die dazugehörige Eigenschaft.
Hinter der Eigenschaft sieht man auch in geschweiften Klammern {get;set;}. Das bedeutet, dass diese Eigenschaft bei Get und Set Abfragen benutzt werden kann.

Um Dienste mit der Powershell starten und stoppen zu können, benutzt man das cmdlet Start/Stop-Service

Noch ein schönes Feature ist das cmdlet Out-GridView

Out_GridView

 

 

 

 

 

Um den Starttyp von einen Dienst zu verändern, benutzt man das cmdlet Set-Service

Leider gibt es aber keine Eigenschaft für das cmdlet Get-Service, die mir den Starttyp eines Dienstes zurückgibt. Hier muss man sich mit dem cmdlet Get-WmiObject weiterhelfen.

Mit folgender Abfrage kann man sich alle Dienste anzeigen lassen, die gestoppt bzw. gestartet sind.

Nun bringen wir ein bisschen Farbe ins Spiel, mit folgender Abfrage kann man sich die Dienste je nach Status farbig hervorheben lassen.
Dazu gibt es ein weiteres cmdlet Write-Host mit der Eigenschaft -ForegroundColor.

Um sich das ganze in eine HTML Datei exportieren zu lassen, benutzt man folgende Abfrage.

HTML_Report

 

 

 

 

 

Wenn unter euch ein paar Designer sind, gibt es noch einen schöneren Bericht, der die Prozesse auch gleich mitabdeckt.
Dieses CodeSnippet habe ich im Internet gefunden, leider weiß ich nicht mehr woher. (Vielen Danke an den Codeverfasser)

HTML_Report2

 

 

 

 

 

Das war es erst mal wieder von mir.

Wünsche viel Spaß beim rumspielen und testen, bis die Tage.
Gruß Helmut

Hallo zusammen,

hier in diesen Blog Eintrag möchte ich euch zeigen wie Ihr Wireshark 1.10.6 & WinPcap 4.1.3 Silent Installieren könnt.
Das Paket WinPcap hat leider keine Silent Parameter, daher muss man hier einen keinen Umweg gehen.

Jetzt gibt es zwei möglichkeiten WinPcap Silent zu installieren.

1. Möglichkeit ist, ihr benutzt AutoIT und könnt somit die Buttons der Installation bedienen oder
2. Möglichkeit ist, ihr installiert auf einer Sauberen Maschine WinPcap 4.1.3 per Hand und kopiert euch die passenden Dateien weg.

Dazu könnt ihr folgende Tools benutzen, diese helfen euch wo welches Programm wo etwas hin installieren.

InstallWatch Pro
WhatChanged

WinPcap installiert jetzt folgende Dateien in folgende Verzeichnisse

Und zu guter letzt installiert WinPcap eine Service mit den Namen npf – NetGroup Packet Filter Driver
Sollte der Dienst nicht gestartet sein, gibt es eine Warnhinweis beim öffnen von Wireshark.

npf_error

 

 

 

 

 

Mit diesen Informationen und Dateien, kann ich mir nun eine Silent Installation der beiden Programme zusammenbauen.

Hier das passende Batchskript, die Art und weise der Installation kann man nun, in jede Softwareverteilung übernehmen.

In diesen Sinne viel Spaß damit
Gruß Helmut

Hallo zusammen,

Im dritten Teil meiner Grundlagenserie zeige ich euch wie ihr euer Skriptumgebung anpassen könnnt.

Als Skript Editor nutze ich persönlich Notepad++ und die Powershell ISE, derzeit reicht mir das vollkommen aus.

Trotzdem hier eine kleine Liste von sehr guten Powershell Editoren.

Admin Script Editor (ASE) = http://www.itninja.com/community/admin-script-editor
PowerShell Plus – Idera = http://www.idera.com/productssolutions/freetools/powershellplus
DELL PowerGUI Script Editor = http://en.community.dell.com/techcenter/powergui/m/
PrimalScript 2014 = http://www.sapien.com/software/primalscript

Mit den Powershell Snippet Manager könnt ihr eure zahlreichen Skripte übersichtlich verwalten, arbeitet sehr eng mit der Dell PowerGUI zusammen.
Powershell Snippet Manager = http://bytecookie.wordpress.com/snippet-manager/

Hier die Hilfe rund um das Thema Profil

Um sich ein eigenes Powershell Profil einrichten zu können, sollte man die Pfade dorthin kennen. Es gibt 6 Profile, die man sich anlegen kann.

AllUsersAllHosts = %SystemRoot%\System32\WindowsPowerShell\v1.0\profile.ps1
AllUsersCurrentHost = %SystemRoot%\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1
AllUsersCurrentHost = %SystemRoot%\System32\WindowsPowerShell\v1.0\Microsoft.PowerShellISE_profile.ps1

CurrentUserAllHosts = %USERPROFILE%\Documents\WindowsPowerShell\profile.ps1
CurrentUserCurrentHost = %USERPROFILE%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
CurrentUserCurrentHost = %USERPROFILE%\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1

AllUsersAllHosts = Profil ist für alle Benutzer und alle Powershell Sitzungen gültig
AllUsersCurrentHost = Profil ist für alle Benutzer und nur die aktive Powershell Sitzungen gültig.
CurrentUserAllHosts = Profil ist nur für den aktiven Benutzer und alle Powershell Sitzungen gültig.
CurrentUserCurrentHost = Profil ist nur für den aktiven Benutzer und nur die aktive Powershell Sitzungen gültig.

Sollte es mal vorkommen dass alle Profile existieren, wird folgende Reihenfolge von Powershell abgearbeitet.

1. %SystemRoot%\System32\WindowsPowerShell\v1.0\profile.ps1
2. %SystemRoot%\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1
3. %USERPROFILE%\Documents\WindowsPowerShell\profile.ps1
4. %USERPROFILE%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Ich persönlich habe mir angewöhnt, nur das CurrentUserAllHosts Profil zu nutzen. Damit decke ich alle Powershell Versionen (x86, x64, ISE) auf meinen Rechner ab.

Mit folgenden Befehlen überprüft man, ob eine Profildatei vorhanden ist.

Mit diesen Befehl kann man nochmal nachsehen, ob die Datei auch wirklich vorhanden ist. 🙂

Und hier meine Beispiel Profildatei:

Wer einen Tapetenwechsel für die PowerShell Konsole haben möchte, findet hier eine sehr guten Artikel.
http://tobivnext.wordpress.com/2012/03/07/powershell-konsoleneigenschaften-anpassen/

Kleiner Tipp noch am Rande, im Artikel wird das Wort fallen RGB Farben sind in BGR Format anzugegeben. Das heißt
Im Hexadezimalwert wird einfach das R und B vertauscht. Sachen gibt es. 🙂

RGB Farbe = #112233 = Dunkles Türkis Blau
BGR Farbe = #223311

Viele Spaß und bis die Tage
Helmut

Hallo zusammen,

das wichtigste zuerst, wenn man sich nun intensiver mit PowerShell beschäftigen möchte, muss man seine Umgebung anpassen, um lokal Skripte ausführen zu können/dürfen.

Dazu dient das cmdlet „Set-ExecutionPolicy

Es gibt 5 verschieden Policy Einstellungen

Restricted = Die Powershell führt keine Skripte aus. Das ist der Defaulwert für die Powershell.
AllSigned = Die Powershell startet nur Skripte, die eine digitale Signatur haben.
RemoteSigned = Die Powershell wird keine Skripte ausführen, die aus dem Internet stammen – außer sie haben eine digitale Signatur.
Unrestricted = Die Powershell ignoriert die digitalen  Signatur, fragt aber nach, ob ein Skript, das aus dem Internet stammt, ausgeführt werden soll.
Bypass = Alle Skripte werden ohne Nachfrage ausgeführt (Sehr unsicher)

Undefined = Setzt den Defaultwert auf Restricted, sobald Gruppenrichtlinien im Einsatz sind, hat dieser Schalter keine Auswirkung.

Wenn man nun lokal Skripte ausführen möchte, setzt man dementsprechend seine ExecutionPolicy

Sobald man aber in einen Firmenumfeld Powershell Skripte einsetzen möchte, sollte man seine fertigen Skripte mit einem Zertifikat signieren. Ob das Sinnvoll ist oder nicht, muss natürlich jeder für sich selbst entscheiden. Es gibt natürlich auch hier Mittel und Wege das ganze auszuhebeln, aber für unerfahrene Mitstreiter eine kleine Lebensaufgabe.

Hier die Vorbereitung um Firmenweit seine Powershellskripte zu signieren:
Als erstes erstelle ich eine neue Gruppenrichtlinien für die Domain, diese Gruppenrichtlinie verknüpfe ich mit der Domain.

Computerkonfiguration –> Richtlinien –> Administrative Vorlagen –> Windows-Komponenten –> Windows Powershell –> Skriptausführung aktivieren (Nur signierte Skripte zulassen)

GPO

 

 

 

 

 

GPO_Shortcut

 

 

 

 

 

Wenn man nun mit gpupdate /force die Gruppenrichtlinien aktualisiert, bekommt man beim Öffnen von PowerShell eine Fehlermeldung. (Bei mir war bereits eine PowerShell Profildatei hinterlegt)

PowershellError

 

 

 

 

 

Danach erstelle ich mir in Active Directory eine neue Rollengruppe und füge alle Mitglieder hinzu, die PowerShellSkripte signieren dürfen.

Rollengruppe

 

 

 

 

 

Jetzt öffne ich meine AD Zertifizierungsstelle und lege eine neue Zertifikatsvorlage an. Diese Zertifikatsvorlage Veröffentliche ich im Anschluss.

Zertifikatsvorlage1

 

 

 

 

 

Zertifikatsvorlage2

 

 

 

 

 

Zertifikatsvorlage3

 

 

 

 

 

Alle Benutzer die berechtigt sind, Skripte zu signieren. Öffnen nun eine neue MMC Konsole und fügen sich das SnapIn Zertifikate/Eigenes Benutzerkonto hinzu.

Unter Eigene Zertifikate –> Zertifikate –> Neu Aufgaben –> Neues Zertifikat anfordern, fordern nun die Benutzer ein Codesigning Zertifikat an.

Zertifikat_anfordern1

 

 

 

 

 

Zertifikat_anfordern2

 

 

 

 

 

Und mit folgenden beiden Befehlen kann man seine Skripte signieren

Script_Signieren

 

 

 

 

 

Powershell_ohne_Error

 

 

 

 

 

Sobald die Gruppenrichtlinie AllSigned gesetzt wurde, kann man diese nicht mehr !vorübergehen! außer Kraft setzen.

keine_aenderung_moeglich

 

 

 

 

 

Viel Spaß und bis die Tage
Helmut

Hallo zusammen,

da ich mich momentan wieder sehr intensiv mit PowerShell beschäftige, möchte ich nicht all mein Wissen hier auf meiner Festplatte verstauben lassen.
In den nächsten Tagen und Wochen werde ich von den Grundlagen bis zu fertigen Beispielskripten alles hier posten.

PowerShell rückt von Tag zu Tag immer mehr in den Vordergrund und löst endlich, oder vielleicht auch Gott sei Dank, die gute alte CMD Konsole ab.
Umso früher man sich mit PowerShell beschäftigt, umso leichter wird auch der Umstieg sein.

Derzeit arbeite ich mit der PowerShell Version 3
Voraussetzung um PowerShell 3 auf Windows 7 einsetzen zu können, ist das Microsoft .NET Framework 4.0, besser wäre natürlich gleich das Microsoft .NET Framework 4.5.1
http://www.microsoft.com/de-de/download/details.aspx?id=40779

Nachdem Microsoft .NET Framework 4.5.1 installiert ist, benötigt man noch das Windows Management Framework 3.0
http://www.microsoft.com/en-us/download/details.aspx?id=34595

Nach der Installation, kann man sich mit den folgenden Befehl die PowerShell Version anzeigen lassen.

Wenn alles sauber installiert wurde und die Version passt, geht es an die Hilfedateien. Diese müssen für die PowerShell 3 aus dem Internet heruntergeladen werden.

Folgender Befehl lädt die Dateien aus dem Internet

Sollte man an bestimmten Arbeitsplätzen keinen Internetzugriff haben, muss man einen kleinen Umweg gehen.
Ich besorge mir von einem bestehenden Client, mit aktueller PowerShell 3.0, mit folgendem Befehl die passenden Hilfedateien.

Und spiele diese auf den passenden Arbeitsplätzen ohne Internetzugriff wieder ein.

Da derzeit die Hilfe nur in Englisch verfügbar ist, navigiere ich in folgendes Verzeichnis

C:\Windows\System32\WindowsPowerShell\v1.0\en-US

kopiere mir alle Hilfe Textdateien und füge sie hier wieder ein.

C:\Windows\System32\WindowsPowerShell\v1.0\de-DE
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\de-DE

oder mit

Wenn das alles erledigt ist, fangen wir an uns mit der Hilfe vertraut zu machen.

Wenn man sich die komplette Hilfe speichern möchte, dann funktioniert das mit diesen beiden Befehlen.
Die Hilfe umfasst ca. 130.000 Textzeilen und das sind noch nicht mal alle cmdlets, die für die PowerShell angeboten werden.

Weitere wichtige Befehle sind der Get-Command, Get-Member und Get-Alias Befehl. Man kann sich nicht alle Befehle merken, aber man kann danach suchen.

Um sich Alias anzeigen zu lassen, benutzt man z.B.

Um sich seine History von Befehlen anzeigen zu lassen, benutzt man Get-History oder F7 (Taste Pfeil Hoch/Pfeil Runter)
Gerade am Anfang kann man sich seine ersten Schritte in PowerShell aufzeichnen lassen, hierzu dienen diese beiden Befehle (Start und Stop-Transcript), alles was zwischen den beiden Befehlen passiert, wird in eine Datei gespeichert.

Woher beziehe ich mein Powershell Wissen.

Microsoft TechNet = http://technet.microsoft.com/de-de/library/ff742278.aspx
Powershell Praxis = http://www.powershellpraxis.de/
NT4 Admins = http://www.nt4admins.de/themen/powershell.html
Script resources for IT professionals = http://gallery.technet.microsoft.com/scriptcenter
YouTube = http://www.youtube.com/results?search_query=Powershell+Grundlagen

Wünsche euch viel Spaß

Gruß Helmut

RDS_2012R2

 

 

 

 

In diesem Howto möchte ich euch kurz erklären wie man unter Windows Server 2012 R2 eine Remote Desktop Farm aufbauen kann.
Dies war mein erster Test zu Hause, in den nächsten Tagen werde ich mir noch die Bereitstellung der Desktopumgebung und Remote-Apps ansehen.

Wie immer findet ihr hier das Howto –> http://www.thurnhofer.net/howtos/RDS_Farm_Server_2012_R2.pdf

Viele Grüße

Helmut

windows8-pe-logo

Letzte Woche bekam ich eine Anforderung auf den Tisch, wie man schnell baugleiche Hardware mit Windows Boardmittel installieren kann.
Es ist eigentlich nicht meine Art so Software zu verteilen, aber man kann es für kleiner Unternehmen tatsächlich verwenden, gerade wenn keine Softwareverteilung im Einsatz ist und jedes System per Hand installiert werden muss.

Der Große Nachteil an solch einer Image Technologie ist der Updateprozess bzw. das aktuell halten der Images. Hier muss man in Regelmäßigen Abständen den Prozess wiederholen um Up to Date zu bleiben.

Hier kommt ihr zum Howto –> Windows 8 mit WinPE 4.0 und imagex clonen

Viel Spaß beim nachmachen.

Gruß Helmut

ad2008_debian-logo

Da ich mich derzeit auf die LPIC-1 Prüfung vorbereite und viel mit Linux Systemen arbeite, habe ich wieder den Punkt Linux Systeme und das Microsoft Active Directory Thema aufgegriffen.
Hier ein kleiner Blog Eintrag wie sich das ganze bewerkstelligen lässt.

Diesmal habe ich mich für das Debian 7 Linux System entschieden und dieses per winbind, Samba und Kerberos 5 an das Active Directory angebunden. Die gleiche Vorgehensweise funktioniert auch mit Ubuntu 13.x

2012 habe ich bereits einen Blog Artikel geschrieben mit Ubuntu 11/12 –> http://www.thurnhofer.net/ubuntu-11-1012-04-desktop-in-das-microsoft-active-directory-einbinden/

Hier findet ihr wieder das Howto zum Thema. –> http://www.thurnhofer.net/howtos/Debian7_ActiveDirectory.pdf

Viele Spaß beim nach machen

Gruß Helmut

image

Um dieses HowTo schreiben zu können, wurde das Ganze in einer Virtuellen Umgebung mit Oracle VM VirtualBox nachgestellt.

    Microsoft Windows Server 2008 R2 SP1 (Deutsch)
    Microsoft .NET Framework 3.5 SP 1 – Server Features
    Alle Windows Security Updates (derzeit ca. 102 Updates)
    SQL Server Express 2008 R2 SP2
    SharePoint 2013 Foundation Deutsch
    SharePoint Foundation 2013 Software Download
    http://www.microsoft.com/de-de/download/details.aspx?id=35488
    Hardware- und Softwareanforderungen für SharePoint (Foundation) 2013
    http://technet.microsoft.com/de-de/library/cc262485%28v=Office.15%29.aspx

    Anmerkung: Eigentlich wollte ich euch das Ganze auf einer neuen Windows Server 2012 Umgebung präsentieren, aber hier streikte mein sehr leistungsstarker (schwacher) Rechner und machte fast die Grätsche. (war echt überrascht)Nachdem ich die Installation von SharePoint Foundation 2013 beendet hatte, war fast kein Zugriff mehr auf meine Festplatten möglich. Die Kombination Windows Server 2012 und SharePoint 2013 hatte meinen Rechner überlastet.
    Bis jetzt habe ich noch nicht die Ursache gefunden, warum auf einmal so extrem viele Schreib- und Lesezugriffe auf der Platte erfolgten, aber das gibt mir echt zu denken.Für die neue Servertechnologie von Microsoft, sollte ich mir doch noch ein kleines RAID 1 mit SSD Festplatte gönnen.
    Wer Interesse hat, hier drei gute Links, die das Festplattenproblem ein bisschen ausführlicher beschreiben.

    http://www.blazilla.de/index.php?/archives/269-IOPS-Kalkulation.html
    http://www.elasticsky.de/2012/06/iops-berechnung/
    http://en.wikipedia.org/wiki/IOPS

    Ich habe mich jetzt entschieden, das Ganze auf einem Windows Server 2008 R2 Standard Server zu installieren und so wie es jetzt aussieht, läuft das tadellos.

    Wie immer findet Ihr hier das Howto –> SharePoint Foundation 2013 Installation & konfiguration

    Viel Spaß beim Installieren
    Gruß Helmut

    In diesen Howto möchte ich euch zeigen wie Ihr das neue Office Professional Plus 2013 für eine Administrative Installation vorbereiten könnt.
    Hier ein kleiner Ausschnitt aus dem Howto.

    image 
    Vorbereitung des Office 2013 ISO Images

    Um das ISO Image extrahieren zu können, benutze ich die Open Source Software – 7 Zip Packer.
    http://www.7-zip.de/

    Das ISO Image wurde in einen Ordner meiner Wahl extrahiert, um in Anschluss die komplette Ordner Struktur zu sehen.
    Nach dem Extrahieren stehen mir alles Ordner vom Office 2013 Paket zur Verfügung
    Um nun die Administrative Installation vorbereiten zu können, starte ich das Microsoft Office-Anpassungstool (OAT) mit dem Parameter setup.exe /admin

    Wie immer findet Ihr hier das Howto –> Administrative Installation Office Professional Plus 2013

    Viele Grüße
    Helmut