Windows Bootstick - Installierbare Versionen einsehen
Einleitung
Immer wieder trifft man auf alte USB SticksUSB-Sticks, die einen Windows Installer enthalten, aber man weißweiß nichtnicht, um welche Version es sich handelt. Man kökönnte jetzt den PC von diesem Stick aus booten und installieren. Aber um diesen Vorgang zu erleichternerleichtern, gibt es ein SkriptSkript, welches die Installierbareninstallierbaren Versionen in einem Terminal Fenster ausgibt.
Anwendung
Wir ladenladen, füfügen den Code in eine Batch Datei ein. Den Namen kökönnen wir frei wäwählen. Ich verwende den Namen ReadWim.bat. Im nänächsten Schritt ööffnen wir das Windows AusfüAusführen Fenster [Windows Taste + R]. Dort geben wir folgendes ein: shell:sendto. (Ordner: C:\Users\<Kontoname>\AppData\Roaming\Microsoft\Windows\SendTo) Eses ööffnet sich ein Ordner. Dort erstellst du eine VerknüVerknüpfung. Unter Eigenschaften legst du einen Pfad festfest, in der die Batch Datei liegt.
Wichtig: Unter den Eigenschaften der VerknüVerknüpfungen musst du unter VerknüVerknüpfung => Erweitert die Checkbox Als Administrator ausfüausführen aktivieren!
%comspec% /c C:\skripte\ReadWim.bat
Im nänächsten Schritt mümüssen wir einen Registry Eintrag hinterlegen. Das machen wirwir, indem wir eine Datei erstellen mit dem Namen addReg.reg. Dort füfügen wir folgenden Code ein
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Drive\shellex\ContextMenuHandlers\Sendto]
@="{7BA4C740-9E81-11CF-99D3-00AA004AE837}"
Diese Datei speicherst du ab, und machst dann einen Doppelklick drauf.darauf.
Code
@echo off
set workdir=%~dp0
whoami /groups | find "S-1-16-12288" > nul
if not errorlevel 1 (
%windir%\System32\more +16 "%~f0" > "%workdir%%~n0-temp.ps1"
powershell -NoProfile -ExecutionPolicy Bypass -File "%workdir%%~n0-temp.ps1" %*
del %workdir%%~n0-temp.ps1
exit /b
)
color 0C
echo.
echo Das Attribut -Als Administrator ausfuehren- wurde nicht gesetzt!
pause
goto :eof
$Details = $true
$Details = $false
function Ausgabe([string[]] $Pfade, [bool] $Details) {
ForEach ($Pfad in $Pfade) {
if (Test-Path -Path $Pfad) {
Write-Host `n$Pfad -ForegroundColor Yellow -BackgroundColor Black
}
else {
Write-Host "`n$Pfad nicht gefunden." -ForegroundColor Red -BackgroundColor Black
continue
}
$ISO = $Null
if (Test-Path -Path $Pfad -Include *.iso) {
$ISO = $Pfad
Mount-DiskImage $Pfad | Out-Null
$Pfad = (Get-DiskImage $Pfad | Get-Volume).DriveLetter + ":\"
}
if ($Details) {
if (Test-Path -Path $Pfad -Include *.swm,*.esd,*.wim) {
$Index = (Get-WindowsImage -ImagePath $Pfad).ImageIndex
ForEach ($Nummer in $Index) {
Dism.exe /Get-ImageInfo /Imagefile:$Pfad /index:$Nummer
}
}
else {
$Wims = Get-ChildItem -Path $Pfad -include *.wim,*.esd,*.swm -Recurse
ForEach ($Pfad in $Wims) {
$Index = (Get-WindowsImage -ImagePath $Pfad).ImageIndex
ForEach ($Nummer in $Index) {
Dism.exe /Get-ImageInfo /Imagefile:$Pfad /index:$Nummer
}
}
}
}
}
else {
if (Test-Path -Path $Pfad -Include *.swm,*.esd,*.wim) {
Dism.exe /Get-ImageInfo /Imagefile:$Pfad
}
else {
foreach ($wim in (Get-ChildItem -path $Pfad -Include *.wim,*.esd,*.swm -Recurse)) {
Dism.exe /Get-ImageInfo /Imagefile:$wim
}
}
}
If ($ISO) {
Dismount-DiskImage $ISO | Out-Null
}
}
}
$Dateien = @()
ForEach ($arg in $Args) {
if ($arg -eq "-v" -or $arg -eq "/v" -or $arg -eq "--verbose") {
$Details = $true
}
else {
$Dateien += $arg
}
}
Ausgabe $Dateien $Details
Write-Host "`r`n`r`n(Enter zum Beenden)" -NoNewline
Read-Host
Quellenangabe: Skript & Anleitung stammt von https://heise.de. Diese Anleitung ist hier nur eine gekügekürzte Fassung.
Original-Artikel: https://www.heise.de/ratgeber/Anleitung-Mit-Skript-Windows-Setup-Medium-analysieren-6550233.html