Posted in: Windows 11

Kuriozita HW požadavků

V tomto příspěvku se s Vámi chci podělit o kuriozní situaci, která podkala můj testovací notebook. Notebook hp EliteBook 8570p má procesor i7-3520M, TPM 1.2 a 8 GB RAM.
Tento notebook měl v sobě Windows 10 Insider Preview z kanálu Beta. Instlační médium Windows 11 správně detekovalo, že PC nesplňuje HW požadavky a odmítlo provést upgrade. Po restartu PC a resetu komponent Windows update se však stala divná věc, Windows update nainstaloval na daný PC bez mého zásahu Windows 11.
Jedenáctky fungují stabilně a poměrně svižně, ač někdy přemýšlí o chlup déle, nežli předešlá verze Windows 10. Chodí pravidelné měsíční aktualizace a vše funguje.

Otázkou tedy je, na kolik je nutné se pokouše modifikovat instalační médium Windows 11, když může (ale nemusí) za uživatele odvést práci Windows update.
I budoucnost tohoto systému není jasná z pohledu aktualizací, ale zatím vše funguje jak má.

Posted in: Windows 11

Jak obejít kontrolu HW při instalaci Windows 11

Hned na úvod musím upozornit, že návody v tomto článku jsou vhodné pouze pro čistou instalaci a hlavně, KŽDÝ JE PODNIKÁ NA VLASTNÍ NEBEZPEČÍ NA TESTOVACÍM ZAŘÍZENÍ.
Jedinou bezpečnou metodou, jak využívat Windows 11 na zařízení, které není 100% ve shodě s HW požadavky je využít Hyper-V v Pro Edici Windows 10, kde se danému virtuálnímu stroji nastaví virtuální TPM.

Změna instalačního média

  1. Vytvoříme instalační USB klíčenku Windows 10
  2. Na instalační klíčence ve složce Sources odstraníme soubor install.esd
  3. Otevřeme instalační ISO Windows 11
  4. Ze složky Sources instalačního ISO souboru Windows 11 zkopírujeme soubor install.wim (ve finální verzi install.esd)
  5. Soubor ze schránky vložíme do složky Sources instalační USB klíčenky Windows 10

Nyní spustíme počítač z instalační USB klíčenky a provedeme čistou instalaci Windows 11.

Změna registru instalačního procesu Windows 11

Trošku netradičním řešením je úprava registrů WinPE po nastartování PC z instalačního média Windows 11.

  1. Nastavíme jazyk a klávesnici instalačního média
  2. Stiskneme klávsovou zkratku: SHIFT+F10
  3. Do příkazové řádky napíšeme příkaz: regedit
  4. Najdeme registrový klíč: HKEY_LOCAL_MACHINE\SYSTEM\Setup
  5. Klikneme pravým tlačítkem myši a vytvoříme nový klíč, který pojmenujeme: LabConfig
  6. V nově vytvořeném klíči, vytvoříme hodnotu typu DWORD s názvem: BypassTPMCheck a hodnotou 1
  7. V novém klíči přidáme další hodnotu typu DWORD s názvem: BypassRAMCheck a hodnotou 1
  8. Do nového klíče přidáme poslední hodnotu typu DWORD s názvem BypassSecureBootCheck a hodnou 1
  9. Zavřeme editor registru
  10. Dokončíme běžným způsobem instalaci Windows 11

Užití MDT jak je popsáno v poslední třetině článku

Posted in: Windows 11

Klávesové zkratky pro Windows 11

  • WIN+W: Zobrazí panel s widgety
  • WIN+Z: Zobrazí nabídku rozložení
  • WIN+A: Zobrazí dialog s přepínači a nastavením
  • WIN+N: Zobrazí kalendář a notifikace
  • WIN+X: Nabídka administrátora
  • WIN+T: Procházení hlavního panelu
  • WIN+S: Vyhledávání
  • WIN+I: Nastavení
  • WIN+H: Hlasové zadávání
  • WIN+V: Shránka s historií
  • WIN+P: Projektor či externí displej
  • WIN+K: Připojení k bezdrítovému projektoru či displeji
  • WIN+SHIFT+S: Nový nástroj výstřižky
  • WIN+, dočasně se zobrazí plochu (klávesy je třeba držet)
  • WIN+D trvale zobrazí plochu
  • WIN+→← přesunou okno do odpovídající stran a rohů
  • WIN+↓↑ maximalizuje, nebo minimalizuje okno
  • WIN+E spustí správce souborů Průzkumník
  • WIN+L zamkne plochu
  • WIN+M minimalizuje všechna otevřená okna
  • WIN+SHIFT+M obnoví minimalizovaná okna
  • WIN+HOME minimalizuje všechna okna až na to aktivní (a po druhém stisku vše vrátí zpět)
  • WIN+R otevře archaický dialog Spustit
  • WIN+PAUSE zobrazí dialog O systému
  • WIN+C kupodivu i ve Windows 11 spustí Cortanu, která však není v češtině k dispozici
  • WIN+Plus zobrazí nástroj lupu, kterou naše generace, která strávila dětství u počítače, bude již brzy potřebovat
  • WIN+CTRL+ENTER spustí předčítače
  • WIN+CTRL+SHIFT+B probudí počítač z bílé/černé obrazovky (chyba při zamykání obrazovky, usínání aj.)
Posted in: Windows 11

Poznatky k virtualizace v Hyper-V

V souladu s HW požadavky Windows 11 je potřeba úzpůsobit také nastavení virtuálního stroje, kde mají být provozovány.
Při užití dynamické RAM je potřeba, aby startovací hodnota byla 4096 MB a pro vlastní upgrade proces byla tato hodnota rovněž minimem. Samozřejmostí je pak využití 2 generace virtuálních strojů, které mají virtuální UEFI. Posledním problémem, pro splňování HW požadavků je TPM čip, ten najdeme v sekci zabezpečení. Hyper-V umí využít fyzický TPM čip, který se nachází v daném zařízení, případně zvládá jeho emulaci na běžném CPU, což umožňuje využít virtualizaci i na strojích, které jinak nesplňují HW podmínky pro Windows 11.

Posted in: Windows 11

Zastaralé a odebrané funkce

  • Cortana již nebude součástí prvního spuštění ani nebude připnuta na hlavní panel.
  • Pokud jste přihlášeni pomocí účtu Microsoft, není možné přenášet Tapetu plochy z nebo do zařízení.
  • Internet Explorer je zakázán. Microsoft Edge je doporučenou náhradou a zahrnuje režim IE, který může být v některých scénářích užitečný.
  • Panel matematického zadávání byl odebrán. Nástroj pro rozpoznávání matematiky se nainstaluje na požádání a obsahuje ovládání matematického zadávání a rozpoznávač. Matematické psaní v aplikacích jako OneNote není touto změnou ovlivněno.
  • Aplikace Novinky a zájmy na hlavním panelu byla odebrána. Místo toho zajistí její funkce widgety.
  • Je odebrán Rychlý stav ze zamykací obrazovky včetně souvisejících nastavení.
  • Režim S režim je dostupný pouze pro verzi Windows 11 Home.
  • Skype MeetNow byl nahrazen chatem.
  • Aplikace Výstřižky bude i nadále dostupná, ale starý design a funkce ve verzi Windows 10 byly nahrazeny těmi z aplikace dříve známé jako Snip & Sketch.
  • Start významně změnilo ve Windows 11, včetně následujících klíčových omezení a odstranění:
    • Pojmenované skupiny a složky aplikací již nejsou podporovány a velikost rozvržení nelze momentálně měnit.
    • Připnuté aplikace a weby nebudou migrovat při upgradování z Windows 10.
    • Živé dlaždice již nejsou dostupné. Pro přehledný a dynamický obsah si zobrazte novou funkci Widgety.
  • Tabletový režim byl odebrán a pro pozice s připnutou a odepnutou klávesnicí byly přidány nové funkce a možnosti.
  • Hlavní panelfunkce se změnily, včetně:
    • Lidé se již neobjevují na hlavním panelu.
    • Některé ikony se na hlavním panelu systému (systray) pro upgradovaná zařízení nemusí zobrazit, včetně předchozích přizpůsobení.
    • Zarovnání na spodní části obrazovky je jediným povoleným umístěním.
    • Aplikace již nemohou přizpůsobovat oblasti hlavního panelu.
  • Časová osa byla odebrána. Některé podobné funkce jsou dostupné v prohlížeči Microsoft Edge.
  • Dotyková klávesnice již nebude dokovat a odpojovat rozvržení klávesnice na obrazovce o velikostech 18 palců a větších.
  • Peněženka byla odebrána.

Následující aplikace nebudou při upgradu odebrány, ale již nebudou nainstalovány na nových zařízeních nebo při čisté instalaci Windows 11. Budou dostupné ke stažení z obchodu Store:

Posted in: Windows 11

HW požadavky

Procesor:1gigahertzový (Ghz) nebo rychlejší procesor se 2 nebo více jádry kompatibilní se 64bitovou architekturou nebo zařízení System on a Chip (SoC)
RAM:4 gigabajty (GB)
Úložiště:64 GB nebo větší úložné zařízení
Firmware systému:Rozhraní UEFI, možnost zabezpečeného spouštění
TPM:TPM (Trusted Platform Module) verze 2.0
Grafická karta:Kompatibilní s DirectX 12 nebo novější s ovladačem WDDM 2.0
Obrazovka:Displej s vysokým rozlišením (720p), který má větší úhlopříčku než 9”, 8 bitů na barevný kanál

Některé funkce ve Windows 11 mají zvýšené požadavky přesahující ty uvedené v části minimálních požadavků. Níže získáte pár dalších podrobností týkajících se požadavků klíčových funkcí: 

  • Podpora 5G vyžaduje modem s funkcí 5G.
  • Auto HDR vyžaduje monitor s HDR.
  • Bit Locker to Go vyžaduje USB flash disk (dostupný ve Windows Pro a vyšších verzích).
  • Client Hyper-V vyžaduje procesor s funkcí druhé úrovně překladu adres (SLAT) (dostupné ve Windows Pro a vyšších verzích).
  • Cortana vyžaduje mikrofon a reproduktor a je momentálně dostupná ve Windows 11 pro Austrálii, Brazílii, Kanadu, Čínu, Francii, Německo, Indii, Itálii, Japonsko, Mexiko, Španělsko, Spojené království a Spojené státy.
  • DirectStorage vyžaduje 1 TB nebo větší disk NVMe SSD k ukládání a spouštění her, který využívá ovladač „Standard NVM Express Controller“, a grafický procesor s podporou DirectX 12 Ultimate.
  • Rozhraní DirectX 12 Ultimate je dostupné u podporovaných her a grafických čipů.
  • Presence vyžaduje snímač, který dokáže zjistit vzdálenost člověka od zařízení nebo úmysl komunikovat se zařízením.
  • Intelligent Video Conferencing vyžaduje videokameru, mikrofon a reproduktor (zvukový výstup).
  • Multiple Voice Assistant (MVA) vyžaduje mikrofon a reproduktor.
  • Přichycení rozvržení ve třech sloupcích vyžaduje obrazovku, která na šířku obsahuje 1920 efektivních pixelů nebo více.
  • Ztišení / zrušení ztišení z hlavního panelu vyžaduje videokameru, mikrofon a reproduktor (zvukový výstup). Aplikace musí být kompatibilní s funkcí, aby umožnila globální ztišení / zrušení ztišení.
  • Prostorový zvuk vyžaduje podporovaný hardware a software.
  • Teams vyžaduje videokameru, mikrofon a reproduktor (zvukový výstup).
  • Touch vyžaduje obrazovku nebo monitor, které podporují vícedotykové ovládání.
  • Dvojúrovňové ověřování vyžaduje použití PIN kódu, biometrického zařízení (snímač otisků prstů nebo infračervená kamera s osvětlením) nebo telefonu s podporou Wi-Fi nebo Bluetooth.
  • Hlasové zadávání vyžaduje počítač s mikrofonem.
  • Probuzení při hlasu vyžaduje moderní model s pohotovostním režimem a mikrofon.
  • Wi-Fi 6E vyžaduje nový hardware a ovladač WLAN IHV a přístupový bod / směrovač Wi-Fi 6E.
  • Windows Hello vyžaduje kameru konfigurovanou na blízké infračervené (IR) snímání nebo čtečku otisků prstů pro biometrické ověřování. Zařízení bez biometrických snímačů můžou používat Windows Hello s kódem PIN nebo s přenosným klíčem zabezpečení kompatibilním se systémy Microsoft.
  • Windows Projection vyžaduje grafický adaptér, který podporuje WDDM (Windows Display Driver Model) 2.0, a adaptér Wi-Fi, který podporuje Wi-Fi Direct.
  • (Aplikace) Xbox vyžaduje účet ve službě Xbox Live, který není dostupný ve všech oblastech. Viz Země a regiony Xbox Live pro nejaktuálnější informace o dostupnosti. Některé funkce v aplikaci Xbox budou vyžadovat aktivní předplatné Xbox Game Pass. Další informace o službě Pass.
Posted in: Windows 10, Windows 11

Instalace aplikací z MS Store pro všechny uživatele automaticky

Dnes to bude o tom, jak si stáhnout balíčky aplikací z MS Store a instalovat je, buď pro sebe s tím, že zůstane v definované cestě uložený instalační balíček, nebo po drobné úpravě pro každého, kdo se na PC přihlásí s výhodou, že aplikace se nainstaluje vždy, když ji uživatel nemá z libovolného důvodu. Zde uvedený postup platí pro Windows 10 a 11.
Pro další informace a celý postup je nyní potřeba otevřít článek, dnes není vše na titulce, jak často bývá. Prvním krokem je nalezení balíčku pomocí odkazu z webové verze MS Store, nebo PackageFamilyName na stránce: https://store.rg-adguard.net/, kde můžeme balíček rovnou stáhnout prohlížečem, nebo si na něj zkopírovat přímý odkaz. Tento online nástroj vyhledává přímé odkazy na jednotlivé balíčky v serverech Microsoftu a dokáže vypsat i balíčky závislostí. Prerekvizitní balíčky jako je MS .NET si v tomto režimu musíme hlídat sami, normálně to za nás dělá v procesu instalace MS Store. Nás bude zajímat hlavně nalezený link na balíček.

Generování přímých odkazů na MS Store balíčky

Nyní nastal čas se rozhodnout, zda chci balíček pro sebe instalovat, pokud mi chybí, nebo zda budu chtít nainstalovat balíček všem. Pokud budu chtít balíček pouze pro sebe, pak stačí vyžít následující PowerShell skript:

$install = Read-Host -Prompt „Pouze stáhnout? (A/N)“
if(($install -eq „N“) -or ($install -eq „n“))
{
$link = Read-Host -Prompt „Zadej odkaz z store.rg-adguard.net „
$n = Read-Host -Prompt „Zadej název aplikace, např: RootPro „
$nazev = „*“ + $n + „*“
$soubor = Read-Host -Prompt „Zadej název souboru na disku (např. CAD) „
$typ = Read-Host -Prompt „Zadej typ souboru (appx, appxbundle, nebo msix)“
Write-Host „Vyber složku pro uložení souboru“
$shell = New-Object -ComObject Shell.Application
$cesta = $shell.BrowseForFolder( 0, ‚Select a folder to proceed‘, 16, $shell.NameSpace( 17 ).Self.Path ).Self.Path
if ($typ -eq „appx“) {
$umisteni = $cesta + „\“ + $soubor + „.appx“
}elseif ($typ -eq „appxbundle“) {
$umisteni = $cesta + „\“ + $soubor + „.appxbundle“
}elseif ($typ -eq „msix“) {
$umisteni = $cesta + „\“ + $soubor + „.Msix“
}else
{
Write-Error -Message „Spust skript uznovu a zadej validní typ aplikace“
exit
}
if(Get-AppxPackage | where name -like $nazev)
{
exit
}
else
{
if(Test-Path -Path $umisteni -PathType Leaf)
{
if ($typ -eq „appxbundle“) {
Add-AppxProvisionedPackage -Online -PackagePath $umisteni
}
else
{
Add-AppxPackage -Path $umisteni
}
}
else
{
Invoke-WebRequest -Uri $link -OutFile $umisteni
Add-AppxPackage -Path $umisteni
}
}
}elseif(($install -eq „A“) -or ($install -eq „a“))
{
$link = Read-Host -Prompt „Zadej odkaz z store.rg-adguard.net „
$soubor = Read-Host -Prompt „Zadej název souboru na disku (např. CAD) „
$typ = Read-Host -Prompt „Zadej typ souboru (appx, appxbundle, nebo msix)“
Write-Host „Vyber složku pro uložení souboru“
$shell = New-Object -ComObject Shell.Application
$cesta = $shell.BrowseForFolder( 0, ‚Select a folder to proceed‘, 16, $shell.NameSpace( 17 ).Self.Path ).Self.Path
if ($typ -eq „appx“) {
$umisteni = $cesta + „\“ + $soubor + „.appx“
}elseif ($typ -eq „appxbundle“) {
$umisteni = $cesta + „\“ + $soubor + „.appxbundle“
}elseif ($typ -eq „msix“) {
$umisteni = $cesta + „\“ + $soubor + „.Msix“
}else
{
Write-Error -Message „Spust skript uznovu a zadej validní typ aplikace“
exit
}
Invoke-WebRequest -Uri $link -OutFile $umisteni
}
else {
Write-Error „Chybně zvolen režim, zkus to znovu“
exit
}
#konec skriptu

Dále je postup, jak zajistit instalaci aplikace ze Store pro všechny uživatele na PC

Pokud chci balíček pro všechny uživatele, potřebuji provést celkem 3 kroky, tedy jednoduchý PowerShell, cmd soubor, který jej bude spouštět a registraci do registrů.
PowerShell bude jednoduchý, mohlo by to vypadat nějak takto:

$link = # Zadej odkaz z store.rg-adguard.net
$n = # Zadej název aplikace, např: RootPro
$nazev = „*“ + $n + „*“
$složka = #Zadej umístění balíčku
$format = #Zadej formát balíčku
$cesta = $složka + „\“ + $n + „.“ + $format
if(Get-AppxPackage | where name -like $nazev)
{
exit
}
else
{
if(Test-Path -Path $cesta -PathType Leaf)
{
Add-AppxPackage -Path $cesta
}
else
{
Invoke-WebRequest -Uri $link -OutFile $cesta
Add-AppxPackage -Path $cesta
}
}
#konc skriptu

Dále pak je potřeba volat PowerShell s parametrem spuštění skriptu, který samozřejmě může obsahovat více balíčků. Volání zajistí soubor formát cmd, který bude vypadat například takto: @powershell.exe -NoProfile -ExecutionPolicy Bypass -File „%~dp0StoreAPP.ps1″StoreAPP.ps1 je v našem případě název skriptu, který je uvedený výše. Oba soubory, jak ps1 tak cmd je potřeba umístit do složky, ze které mohou číst a spouštět všichni uživatelé, tedy mimo náš uživatelský profil.
Nyní stačí pomocí registru nastavit spuštění s každým přihlášením libovolného uživatele pod jeho právy, což provedeme zápisem do větve: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Zápis pomocí příkazu ukazuje následující příklad:
reg add „HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run“ /v „APP“ /t REG_SZ /d „C:\ProgramData\APPinstall.cmd“ /f

Posted in: Windows 10, Windows 11, Windows 8 a 8.1

Změna adresáře profilů uživatele pro všechny nové uživatele

Občas je zapotřebí změnit disk, kde bude uložena složka Users, která je obvykle v cestě: C:\Users.
Tuto možnost máme pro všechny uživatele, které vytvoříme po provedení této konfigurace. Pro změnu tohoto adresáře slouží registrový klíč ProfilesDirectory, který se nachází v:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

Všichni uživatelé založení po nastavení cesty a restartu systému budou mít své adresáře v novém umístění. Toto nastavení je možné kombinovat s přesměrováním knihoven na síťový disk v rámci GPO nastavení v doméně.

Posted in: Windows 10, Windows 11, Windows 8 a 8.1, Základy PowerShellu

Vytvoření ISO souboru ze složky pomocí PowerShellu

Následující skript, který v článku uveden je převzat z Githubu: https://raw.githubusercontent.com/wikijm/PowerShell-AdminScripts/master/Miscellaneous/New-IsoFile.ps1
Skript je otestován a je v pořádku, na druhou stranu má jednu nevýhodu, kterou je, že nepracuje, pokud je PowerShell v režimu Constrained Language Mode, protože přímo využívá .NET příkazy.

Zdrojový kód skriptu

function New-IsoFile
{
<# .Synopsis Creates a new .iso file .Description The New-IsoFile cmdlet creates a new .iso file containing content from chosen folders .Example New-IsoFile „c:\tools“,“c:Downloads\utils“ This command creates a .iso file in $env:temp folder (default location) that contains c:\tools and c:\downloads\utils folders. The folders themselves are included at the root of the .iso image. .Example New-IsoFile -FromClipboard -Verbose Before running this command, select and copy (Ctrl-C) files/folders in Explorer first. .Example dir c:\WinPE | New-IsoFile -Path c:\temp\WinPE.iso -BootFile „${env:ProgramFiles(x86)}\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg\efisys.bin“ -Media DVDPLUSR -Title „WinPE“ This command creates a bootable .iso file containing the content from c:\WinPE folder, but the folder itself isn’t included. Boot file etfsboot.com can be found in Windows ADK. Refer to IMAPI_MEDIA_PHYSICAL_TYPE enumeration for possible media types: http://msdn.microsoft.com/en-us/library/windows/desktop/aa366217(v=vs.85).aspx .Notes NAME: New-IsoFile AUTHOR: Chris Wu LASTEDIT: 03/23/2016 14:46:50 #>

[CmdletBinding(DefaultParameterSetName=’Source‘)]Param(
[parameter(Position=1,Mandatory=$true,ValueFromPipeline=$true, ParameterSetName=’Source‘)]$Source,
[parameter(Position=2)][string]$Path = „$env:temp\$((Get-Date).ToString(‚yyyyMMdd-HHmmss.ffff‘)).iso“,
[ValidateScript({Test-Path -LiteralPath $_ -PathType Leaf})][string]$BootFile = $null,
[ValidateSet(‚CDR‘,’CDRW‘,’DVDRAM‘,’DVDPLUSR‘,’DVDPLUSRW‘,’DVDPLUSR_DUALLAYER‘,’DVDDASHR‘,’DVDDASHRW‘,’DVDDASHR_DUALLAYER‘,’DISK‘,’DVDPLUSRW_DUALLAYER‘,’BDR‘,’BDRE‘)][string] $Media = ‚DVDPLUSRW_DUALLAYER‘,
[string]$Title = (Get-Date).ToString(„yyyyMMdd-HHmmss.ffff“),
[switch]$Force,
[parameter(ParameterSetName=’Clipboard‘)][switch]$FromClipboard
)

Begin {
($cp = new-object System.CodeDom.Compiler.CompilerParameters).CompilerOptions = ‚/unsafe‘
if (!(‚ISOFile‘ -as [type])) {
Add-Type -CompilerParameters $cp -TypeDefinition @‘
public class ISOFile
{
public unsafe static void Create(string Path, object Stream, int BlockSize, int TotalBlocks)
{
int bytes = 0;
byte[] buf = new byte[BlockSize];
var ptr = (System.IntPtr)(&bytes);
var o = System.IO.File.OpenWrite(Path);
var i = Stream as System.Runtime.InteropServices.ComTypes.IStream;

if (o != null) {
while (TotalBlocks– > 0) {
i.Read(buf, BlockSize, ptr); o.Write(buf, 0, bytes);
}
o.Flush(); o.Close();
}
}
}
‚@
}

if ($BootFile) {
if(‚BDR‘,’BDRE‘ -contains $Media) { Write-Warning „Bootable image doesn’t seem to work with media type $Media“ }
($Stream = New-Object -ComObject ADODB.Stream -Property @{Type=1}).Open() # adFileTypeBinary
$Stream.LoadFromFile((Get-Item -LiteralPath $BootFile).Fullname)
($Boot = New-Object -ComObject IMAPI2FS.BootOptions).AssignBootImage($Stream)
}

$MediaType = @(‚UNKNOWN‘,’CDROM‘,’CDR‘,’CDRW‘,’DVDROM‘,’DVDRAM‘,’DVDPLUSR‘,’DVDPLUSRW‘,’DVDPLUSR_DUALLAYER‘,’DVDDASHR‘,’DVDDASHRW‘,’DVDDASHR_DUALLAYER‘,’DISK‘,’DVDPLUSRW_DUALLAYER‘,’HDDVDROM‘,’HDDVDR‘,’HDDVDRAM‘,’BDROM‘,’BDR‘,’BDRE‘)

Write-Verbose -Message „Selected media type is $Media with value $($MediaType.IndexOf($Media))“
($Image = New-Object -com IMAPI2FS.MsftFileSystemImage -Property @{VolumeName=$Title}).ChooseImageDefaultsForMediaType($MediaType.IndexOf($Media))

if (!($Target = New-Item -Path $Path -ItemType File -Force:$Force -ErrorAction SilentlyContinue)) { Write-Error -Message „Cannot create file $Path. Use -Force parameter to overwrite if the target file already exists.“; break }
}

Process {
if($FromClipboard) {
if($PSVersionTable.PSVersion.Major -lt 5) { Write-Error -Message ‚The -FromClipboard parameter is only supported on PowerShell v5 or higher‘; break }
$Source = Get-Clipboard -Format FileDropList
}

foreach($item in $Source) {
if($item -isnot [System.IO.FileInfo] -and $item -isnot [System.IO.DirectoryInfo]) {
$item = Get-Item -LiteralPath $item
}

if($item) {
Write-Verbose -Message „Adding item to the target image: $($item.FullName)“
try { $Image.Root.AddTree($item.FullName, $true) } catch { Write-Error -Message ($_.Exception.Message.Trim() + ‚ Try a different media type.‘) }
}
}
}

End {
if ($Boot) { $Image.BootImageOptions=$Boot }
$Result = $Image.CreateResultImage()
[ISOFile]::Create($Target.FullName,$Result.ImageStream,$Result.BlockSize,$Result.TotalBlocks)
Write-Verbose -Message „Target image ($($Target.FullName)) has been created“
$Target
}
}

Back to Top