#check if powershell is in admin mode or attempt to swith to admin mode if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs; exit } #If condition to check for Regsitry key exists if(Test-Path 'HKLM:\SYSTEM\HDD'){ #create variables to store disk info and counter $var1 = @(Get-PhysicalDisk | Select FriendlyName, MediaType) $var2 = 0 #count number of rows of disk data $var1a = $var1.getenumerator() while ($var1a.MoveNext()) { # Create Registry values Set-ItemProperty HKLM:\SYSTEM\HDD -Name $var2 -Value $var1a.current -Type multistring $var2 = $var2+1 } } else { New-Item -Path HKLM:\SYSTEM\HDD $var1 = @(Get-PhysicalDisk | Select FriendlyName, MediaType) $var2 = 0 $var1a = $var1.getenumerator() while ($var1a.MoveNext()) { Set-ItemProperty HKLM:\SYSTEM\HDD -Name $var2 -Value $var1a.current -Type multistring $var2 = $var2+1 } }