All posts in Allgemein

MDT2013_WDS2012_Logo

 

 

 

 

 

 

In diesem Howto möchte ich euch zeigen, wie man das Microsoft Deployment Toolkit 2013 und den Windows Deployment Services 2012 nutzt, um Windows 8.1 bzw. Windows 10 Preview im Netzwerk zu verteilen. Es sind einige Vorkenntnisse in der Software Verteilung bzw. Windows Image Erstellung/Software Scriptierung erforderlich. Die Tools und Begriffe wie sysprep, dism, imagex, WinPE Lite Touch (LTI), Zero Touch (ZTI), Slipstreaming und vieles mehr, sollten also keine Fremdwörter für euch sein.

http://de.wikipedia.org/wiki/Softwareverteilung

Dieses Howto kann man auch als Anregung für kleinere Unternehmen einsetzen. Für eine Anzahl von ca. 15 – 20 Client Computer ist die Art und Weise der Softwareverteilung wie ich Sie hier beschreibe in Ordnung, ab 25 Client Computer sollte man aber in Erwägung ziehen, ob es nicht sinnvoller ist, eine geeignete Softwareverteilung dafür einzusetzen. Besonders wenn man den PC Lifecycle im Auge behalten möchte. Anbei drei gute Beispiele, mit denen ich sehr gute Erfahrung sammeln durfte:

Hier ein paar alte Blogeinträge, die sich um das Thema rund um die Softwareverteilung beschäftigen:

 Server Vorbereitungen

  • Server 2012 R2, Active Directory und Root CA – (ads01.htdom.local)
  • Server 2012 R2, MDT 2013, WDS 2012, DHCP, SQL Express 2012 – (mdt01.htdom.local)
  • Auf dem MDT Server sollte die Firewall deaktiviert werden, für die spätere PXE Phase.
  • WSUS Server ist optional, da ich derzeit keine Windows 10 Updates verteilen kann.
  • Windows ADK 10
  • Windows ADK 8.1
  • Microsoft Deployment Toolkit (MDT) 2013

Howto Serie wird folgende Punkte abdecken:

 

Hier kommt ihr wieder zum Howto –> Softwareverteilung mit MDT 2013 und WDS 2012

 

Viel Spaß damit

Gruß
Helmut Thurnhofer

Hallo zusammen,

in dem heutigen Howto zeige ich euch, wie Ihr euer Windows 8.1 Standard Image mit allen Microsoft Security Updates patchen könnt.

Um an alle Security Patches von Microsoft ranzukommen, gibt es zwei Möglichkeiten. Entweder man nutzt das Tool WSUS Offline Update –> http://download.wsusoffline.net/wsusoffline931.zip

wsusoffline

 

 

 

 

 

oder lädt sich von der Webseite http://winfuture.de/UpdatePack das passende UpdatePack herunter und extrahiert dieses in einen Ordner seiner Wahl.

winfuture

 

 

 

 

 

Bei den WSUS Offline Updates hat man immer den aktuellsten Stand. Bei WinFuture werden die Updates nur nach jedem Microsoft PatchDay (2. Dienstag im Monat) aktualisiert.
Was im Großen und Ganzen aber nicht wirklich eine Rolle spielt. Der Unterschied besteht maximal in zwei bis drei Updates, die bei WinFuture fehlen.

Auf meinem Windows 8.1 Test Rechner lege ich mir eine Ordnerstruktur an, die ungefähr so aussieht:

Windows_8_ISO
– Windows_8_Images (entweder ISO entpacken oder von Windows 8.1 DVD kopieren)
– Mount (Mountpoint für das Windows 8.1 Standard Image)
– Updates (alle extrahierten *.msu (WinFuture) oder *.msu/*.cab (WSUS Offline) Dateien kopieren)

OrdnerStruktur

 

 

 

 

 

Nun startet man eine CMD Konsole als Administrator und mounted das Windows 8.1 Standard Image in den Ordner „…\Mount“

ImageMount

 

 

 

 

 

Im nächsten Schritt fügen wir alle Updates dem Windows 8.1 Standard Offline Image hinzu

ImageUpdate

 

 

 

 

 

Bei den WSUS Offline Updates hatte ich bei der Integration ein paar Fehler, diese traten bei WinFuture nicht auf.
Nach erfolgreichen Updates, speichern wir das Windows 8.1 Standard Offline Image

ImageSave

 

 

 

 

 

Wenn man das Ganze wieder auf eine DVD brennen möchte, muss eine neue ISO Datei erstellt werden.

Dazu gibt es wieder zwei Möglichkeiten, obwohl ich Möglichkeit Zwei nicht getestet habe.

Erste Möglichkeit ist das Tool „oscdimg.exe“, welches im Windows ADK zu finden ist.

Windows Assessment and Deployment Kit (ADK) für Windows 8 –> http://www.microsoft.com/de-de/download/details.aspx?id=30652

Oder folgender Artikel im Internet „Bootfähige Windows (7)8 ISO erzeugen“ –> http://huebauer4.bplaced.net/

Nachdem die ISO Datei erstellt wurde und wir einen PC damit neu installiert haben, kann man folgenden Unterschied feststellen.

Diese Anleitung funktioniert mit Windows 7/8/8.1 Images wie auch mit den Serverbetriebssystemen Windows Server 2008/2008 R2/2012/2012 R2 Images.

UpdatesVorher

 

 

 

 

 

UpdatesNachher

 

 

 

 

 

Viel Spaß damit

Gruß Helmut

Hallo zusammen,

in dem heutigen Howto zeige ich euch, wie Ihr SQLite mit Powershell nutzen könnt.
Um euch eine Alternative zu XML-Dateien aus meinem letzten Post vorzustellen, nutzen wir diesmal SQLite Datenbanken.

Für die XML-Dateien hatte ich mir eine Serverstruktur aufgebaut, die ich später abfragen konnte. Die gleiche Servestruktur werde ich nun in einer SQLite Datenbank abbilden, die wir wiederum später mit Powershell abfragen können.

Arbeitsdateien für das Howto

Um grundlegend mit SQLite Datenbanken zu arbeiten und die Datenbankstruktur anlegen, verwalten und ansehen zu können, benötigt man ein Management Tool.
Hierzu kann man folgende Software/Tools nutzen.

SQLite Database Browser
SQLite_Database_Browser

 

 

 

 

 
SQLite Manager (Firefox AddOn)
SQLite_Manager

 

 

 

 

 
Weitere Management Tools findet ihr bei SQLite.org –> http://www.sqlite.org/cvstrac/wiki?p=ManagementTools

Um überhaupt SQLite Datenbanken mit Powershell abfragen zu können, benötigt man die System.Data.SQLite Runtime bzw. die System.Data.SQLite.dll. Das passende Softwarepaket findet man auf folgender Webseite.

http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
http://system.data.sqlite.org/downloads/1.0.92.0/sqlite-netFx451-setup-bundle-x64-2013-1.0.92.0.exe

Nach der Installation findet man lokal folgende Struktur vor. Mit dieser Struktur werden wir im nachfolgenden Howto arbeiten.
FileStruktur

 

 

 

 

 

 
Um die Datenbank schnell mit Informationen füllen zu können, habe ich euch ein Excelsheet mit ein paar Demo Einträgen vorbereitet, dazu das passende VB Script für den Export in eine TXT Datei.
Nach dem Export der TXT Datei müssen noch ein paar Anpassungen gemacht werden, damit der Import sauber funktioniert.
Export_Excel

 

 

 

 

 
Export_Import_Datei

 

 

 

 

 
Datenbank_vorbereiten

 

 

 

 

 
Datenbank_vorbereiten2

 

 

 

 

 
Nachdem die Datenbank vorbereitet ist, können wir uns den Powershellabfragen widmen.

Auch ich habe mich vorab im Internet informiert, wie so eine Abfrage funktioniert und habe drei gute Ansätze gefunden, die ich euch in dem Post vorstelle.

Erste Beispiel:
Gefunden bei http://thescriptingfrog.blogspot.de/2012/08/how-to-query-sqlite-database-with.html

Powershell_Abfrage_1

 

 

 

 

 
Zweite Beispiel:
Gefunden bei http://poshcode.org/2879

In diesem Beispiel werden zwei Funktionen benutzt, dieses Powershell Skript speichert man sich als z.B. MySQLite.ps1 ab und lädt es sich als Modul nach.

Powershell_Abfrage_2

 

 

 

 

 
Powershell_Abfrage_2_2

 

 

 

 

 
Dritte Beispiel:
Gefunden bei http://psqlite.codeplex.com/

Nachdem man sich das SQLite Modul heruntergeladen und entpackt hat, kopiert man sich den Ordner in folgendes Verzeichnis

C:\Windows\System32\WindowsPowerShell\v1.0\Modules
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\Modules

So das war es schon wieder von mir, wünsche euch viel Spaß damit.
Gruß Helmut

Hallo zusammen,

um ein wenig von dem Grundlagentraining weg zu kommen, zeige ich euch heute, wie Ihr XML-Dateien mit Powershell nutzen könnt.
Hier habe ich euch ein kleines Howto geschrieben wie man XML-Dateien mit Microsoft Excel und Notepad vorbereitet. Zusätzlich könnt ihr hier die XML-Templates herunterladen.

XML-Dateien für Powershell vorbereiten
XML-Dateien Templates Download

Wie fragt man nun die Struktur einer XML-Datei ab? Hier ein kleines Schaubild.

XML_Visualisierung

 

 

 

 

 

Fangen wir an, eine XML-Struktur mit Powershell abzufragen. 🙂

Um mit XML-Dateien in Powershell arbeiten zu können, muss man das vorangestellte PowerShell-XML-Objektadapter [xml]$VariablenName definieren.
Die Variable wird als .NET-Klasse – System.Xml.XmlDocument deklariert. Zu finden mit:

serverliste1  serverliste2

 

 

 

 

serverliste3

 

 

 

 

 

serverliste4

 

 

 

 

 

serverliste5

 

 

 

 

 

Um jetzt die Informationen von so einer XML-Datei nutzen zu können, habe ich hier mal zwei Abfragen gebaut, um meine Server anpingen zu können.

Ping2

 

 

 

 

 

Ping1

 

 

 

 

 

Temporäre Änderung einer XML Struktur

XML_aendern

 

 

 

 

 

Server Liste erstellen lassen – sortiert nach IP Adressen

Servername + Domainname zusammenstellen lassen

Servereinträge in einer XML-Datei clonen

Clone1

Clone2

 

 

 

 

 

So das was erst mal wieder von mir.

Viele Spaß beim ausprobieren.
Gruß Helmut

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,

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