Ändern der IP-Adresse von statisch auf DHCP

Mit dem Befehl netsh.exe lässt sich unter Windows der komplette IP-Stack konfigurieren, das habe ich mir bei einem kürzlich stattgefundenen DHCP-Rollout zu Nutze gemacht und die PCs über das folgende Script von einer statischen IP-Adresse auf DHCP umgestellt.

@echo off

:: Ändern des DNS von statisch auf DHCP
netsh interface ip set dns "Local Area Connection" dhcp

:: Ändern der IP-Adresse von statisch auf DHCP
netsh interface ip set address "Local Area Connection" dhcp

Das Script kann dann beim Start oder beim Herunterfahren des PCs per GPO ausgeführt werden. Alternativ natürlich mit psexec aus den Sysinternals Tools. Sollte es sich um PC mit einem Windows in deutscher Sprache handeln, dann einfach “Local Area Connection” mit “LAN-Verbindung” ersetzen oder in der Netzwerkumgebung nachschauen wie der Adapter genau benannt wurde.

Enjoy it, b!

Windows Build Number / Nummer

Bald kommt das Herbstrelease von Windows 10 in der Version 1809. Dabei stellt sich die Frage, welche Buildnummer hat eigentlich mein Windows 10 System und wie bekomme ich diese am einfachsten heraus?

Auf meinem aktuellen System mit Windows 10, 1803 ist der Build 17134 …

c:\Temp> ver

Microsoft Windows [Version 10.0.17134.286]

… und unter Windows 10, 1809 wird er dann 17663 sein.

C:\Temp> ver

Microsoft Windows [Version 10.0.17763.1]

image

Da aber die Zukunft PowerShell heißt, können wir uns das dort noch viel schöner anzeigen lassen.

PS C:\Temp> [System.Environment]::OSVersion.Version

image

Windows 10, Build 17763, das Herbst-Release 2018.

Enjoy it, b!

Erstellen von Hashes unter Windows

Gelegentlich muss ich von einer Datei einen Hash erzeugen, um sie zum Beispiel im Virenscanner vom Zugriff aus zu nehmen.

Bisher oder früher hat man das recht einfach mit dem File Checksum Integrity Verifier Utility gemacht, welches Microsoft zum Download anbietet.

Der folgende Aufruf hat dann einen MD5 und SHA1 Hash erzeugt.

FCIV -md5 -sha1 path\filename.ext

Inzwischen gibt es seit PowerShell 4.0 (also auch schon einige Zeit) den Befehl Get-FileHash und damit die Möglichkeit einen Hash ganz ohne 3rd Party Tools oder Downloads zu erstellen.

PS C:\temp> Get-FileHash MEMORY.DMP -Algorithm SHA1

image

Enjoy it, b!

Diskpart und das RO-Flag

Sollte für eine Disk in Windows das RO-Flag (Read-Only) Flag gesetzt haben, ist eine Einrichtung nicht möglich. Dazu muss das RO-Flag zurück gesetzt werden, was mit DISKPART einfach geht.

Zuerst schauen wir, ob die Disk auch unter DISKPART angezeigt wird (in diesem Fall ist es Disk 1)

DISKPART> list disk

  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  Disk 0    Online          256 GB  1024 KB
  Disk 1    Online          512GB   512 GB

Danach wählen wir die Disk aus:

DISKPART> select disk 1

Um mit dem folgenden Befehl das RO-Flag zurück zu setzen.

attributes disk clear readonly

So, fertig und eigentlich kein großes Ding.

Bildergebnis für Frohe Weihnachten

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!

Konvertierung von m4a Dateien nach mp3

Leider können nicht alle Car-Audio Systeme M4A-Dateien abspielen. Darum bin ich gelegentlich mit der Aufgabe konfrontiert M4A-Dateien nach MP3 zu konvertieren, was mit ffmpeg.exe und einem kleinen Script an der Eingabeaufforderung ohne große Probleme funktioniert.

Dazu habe ich den aktuellsten Windows-Build von ffmpeg herunter geladen und in ein Verzeichnis auf meinem Server (SBS) entpackt.

https://ffmpeg.zeranoe.com/builds/

Danach in das Verzeichnis mit den M4A-Dateien gewechselt und folgenden Aufruf ausgeführt:

for /f "tokens=1,2 delims=." %a in ('dir *.m4a /b') do \\sbs\xapps\ffmpeg\bin\ffmpeg.exe -i "%a.%b" -b:a 256K -vn "%a.mp3"
  • dir *.m4a /b liefert mir alle M4A-Dateien zurück
  • for /f …. zerlegt die Dateien in den eigentlichen Dateinamen und die Endung (welche nach der Konvertierung .mp3 sein soll)
  • ffmpeg.exe erstellt die entsprechende mp3 Datei mit einer Sampling-Rate von 256Kbit/s

That’s it … ging recht einfach Smile Die M4A-Dateien habe ich dann noch im Anschluss gelöscht.

Enjoy it, b!

Windows 10, Installation des .NET Frameworks 3.5

Liegt der Inhalt des Windows 10 ISOs auf einer Dateifreigabe im Netzwerk so kann das .NET Framework 3.5, über den folgenden Aufruf, von einer Eingabeaufforderung mit Adminrechten installiert werden.

Dism /online /enable-feature /featurename:NetFx3 /All /Source:\server\w10\sources\sxs /LimitAccess

Das geht deutlich einfacher und scheller als über den Dialog der Windows Features.

image

Enjoy it, b!