Ausführen von PowerShell über eine Batch

PowerShell Skripte oder CmdLets lassen sich auch über eine Batchdatei (.cmd / .bat) ausführen. Das geht recht einfach und sogar Parameter können mit angegeben werden. Es muss lediglich auf korrekte gesetzte Quoten (Anführungszeichen) geachtet werden.

:: Variables
set log="%temp%\Expand-Raw.log"

:: Header
echo Expand-Raw ...
echo Expand-Raw ... >%log%
echo.

for /f "tokens=*" %%a in ('dir RAW*.zip /b') do (

	rem  PowerShell -NoExit "&" ""P:\Code\Distribute-Pictures.ps1" -Action dis -File '.\%%a'"
	PowerShell ""P:\Code\Distribute-Pictures.ps1" -Action dis -File '.\%%a'"
	echo [RC=%ERRORLEVEL%], PowerShell -NoExit "&" ""P:\Code\Distribute-Pictures.ps1" -Action dis -File '.\%%a'" >>%log%

)

:_End

Schauen wir uns das PowerShell-Skript genauer an, dann sehen wir das insgesamt 4 Parameter übergeben werden:

  • -Action und die entsprechende Aktion, also –Action dis
  • -File und Dateiname, also –File ‘RAW 2017-01-08-01, Huskies auf der Alb.zip’

Der Aufruf unter PowerShell (also nicht über eine Batch sieht wie folgt aus):

.\Distribute-Pictures.ps1 -Action dis -File 'RAW 2017-01-08-01, Huskies auf der Alb.zip'

Die Batch Datei, welche nun drum herum abläuft, soll das PowerShell-Skript einfach mehrfach für eine Reihe von Dateien im gleichen Verzeichnis ausführen. Darum erfolgt ein Aufruf von PowerShell.exe mit dem Script und den Parametern aus der Batch heraus.

PowerShell ""P:\Code\Distribute-Pictures.ps1" -Action dis -File '.\%%a'"

PowerShell ruft die PowerShell.exe auf, danach wird der vollständige Aufruf für PowerShell in normale Anführungszeichen gesetzt.

""P:\Code\Distribute-Pictures.ps1" -Action dis -File '.\%%a'"

Innerhalb dieser Anführungszeichnen (“) steht dann das PowerShell-Script in weiteren Anführungszeichen, gefolgt von den Parametern. Der letzte Parameter, welcher den Dateinamen darstellt, wird in einfache Anführungszeichen (‘) gesetzt, da ihn PowerShell dann literal behandelt.

Enjoy it, b!

Lenovo L460 und Windows 10

Ich finde, dass Lenovo L460 hat ein recht gutes Preis-/Leistungsverhältnis und daher kommt es häufig bei meinen Kunden zum Einsatz. Mit einer Windows 7 / Windows 10 Lizenz ausgestattet, hat man die Wahl zwischen den beiden Betriebssystemen. Aktuell installiert Lenovo immer noch Windows 7 und damit ist man, wenn Windows 10 zum Einsatz kommen soll, vor die Wahl gestellt, entweder ein Upgrade zu machen oder eine Neuinstallation in Betracht zu ziehen. Ich glaube ich hatte schon geschrieben, dass ich kein großer Freund von Upgrades bin – zumindest wenn es nichts zu upgraden gibt. Sprich die Lenovo Apps bekommen wir hinterher problemlos wieder drauf.

Eine Neuinstallation läuft bei Lenovo vollkommen schmerzfrei ab:

  1. USB Stick mit Windows 10 einstecken
  2. PC einschalten und die ENTER-Taste (Return) drücken und im Anschluss mit F12 den Dialog für die Bootlaufwerke auswählen
  3. Den USB-Stick als Boot Device auswählen und alle vorhanden Partitionen löschen
  4. Windows 10 installieren und fertig
  5. Erst nach erfolgter Installation das LAN-Kabel einstecken oder sich mit dem WLAN verbinden, damit kann man während des Setups problemlos einen Admin-Acrrount anlegen
  6. Den USB-Stick lassen wir übrigens stecken, auch wenn die Windows Installation fertig ist

Ja, geht so einfach … und nach der Anmeldung einfach das Notebook eine Zeit lang (20min) mit einer Verbindung ins Internet stehen lassen. Bei geöffnetem Geräte-Manager, kann man WIndows 10 dabei zuschauen, wie es alle Treiber aus dem Internet über Windows Update herunter lädt. Danach sieht der Geräte-Manager wie folgt aus:

image

Nun installiere ich über Windows Update alle noch ausstehenden Updates und starte das System danach neu. Der HUAWEI GNSS Sensor lässt sich zu diesem Zeitpunkt noch mit keinem anderen Treiber versehen, bzw. meldet das die Treibersoftware auf dem neusten Stand ist.

image

Ab jetzt ist dann die Suche auf der Lenovo Homepage angesagt.

http://pcsupport.lenovo.com/de/de/

Die Lenovo Support Bridge benötigt das .Net Framework 3.5.1 welches üblicher Weise aus dem Internet geladen wird, was aber relativ lange dauert. Daher ist es sinnvoll das .Net Framework einfach davor zu installieren und zwar vom USB-Stick (Windows 10 Medium) mit dem folgenden Kommando:

Dism /online /enable-feature /featurename:NetFX3 /All /Source:D:\sources\sxs /LimitAccess

Deshalb haben wir ihn ja auch im Notebook stecken lassen Smile

image

Es reicht genau 1x auf Detect my Serial Number zu klicken, der Buton wird dann grau und im Hintergrund (nicht sichtbar) läuft der Download und wenn dieser erfolgt ist, einfach das Setup starten.

Danach erkennt die Support-Webseite das Lenovo Notebook und bietet uns nach erfolgter Installation des Lenovo System Updates die noch ausstehenden Treiber, Utilities und Anwendungen an. Wichtig dabei ist, dass generell der Internet-Explorer oder auch Google-Chrome verwendet werden, mit dem Edge-Browser steht der Scan-Dialog bei 10% … stunden lang!

Nach erfolgreichem Scan können nun die noch fehlenden Treiber, etc. installiert werden.

image

So, das war’s mal wieder, bis auf den Treiber für das HUAWEI Modem, diesen müssen wir explizit auswählen.

image

Nun sind wir aber wirklich fertig.

Enjoy it, b!