Add storage status sections
This commit is contained in:
parent
526f6e26eb
commit
30e43b9814
4 changed files with 77 additions and 4 deletions
|
|
@ -138,10 +138,10 @@ BASE_MENUS = {
|
||||||
),
|
),
|
||||||
'System Summary': (
|
'System Summary': (
|
||||||
MenuEntry('Operating System', 'auto_show_os_name'),
|
MenuEntry('Operating System', 'auto_show_os_name'),
|
||||||
MenuEntry('Windows Activation', 'auto_show_activation'),
|
MenuEntry('Windows Activation', 'auto_show_os_activation'),
|
||||||
MenuEntry('Secure Boot', 'auto_show_secure_boot_status'),
|
MenuEntry('Secure Boot', 'auto_show_secure_boot_status'),
|
||||||
MenuEntry('Installed RAM', 'auto_show_installed_ram'),
|
MenuEntry('Installed RAM', 'auto_show_installed_ram'),
|
||||||
MenuEntry('Storage Volumes', no_op),
|
MenuEntry('Storage Status', 'auto_show_storage_status'),
|
||||||
MenuEntry('Virus Protection', no_op),
|
MenuEntry('Virus Protection', no_op),
|
||||||
MenuEntry('Partitions 4K Aligned', no_op),
|
MenuEntry('Partitions 4K Aligned', no_op),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
3
scripts/get_raw_disks.ps1
Normal file
3
scripts/get_raw_disks.ps1
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Wizard Kit: Get RAW disks
|
||||||
|
|
||||||
|
Get-Disk | Where-Object {$_.PartitionStyle -eq "RAW"} | Select FriendlyName,Size,PartitionStyle | ConvertTo-JSON
|
||||||
|
|
@ -23,8 +23,15 @@ from wk.cfg.windows_builds import (
|
||||||
OUTDATED_BUILD_NUMBERS,
|
OUTDATED_BUILD_NUMBERS,
|
||||||
WINDOWS_BUILDS,
|
WINDOWS_BUILDS,
|
||||||
)
|
)
|
||||||
from wk.exe import run_program
|
from wk.exe import get_json_from_command, run_program
|
||||||
from wk.std import GenericError, GenericWarning, bytes_to_string, sleep
|
from wk.kit.tools import find_kit_dir
|
||||||
|
from wk.std import (
|
||||||
|
GenericError,
|
||||||
|
GenericWarning,
|
||||||
|
bytes_to_string,
|
||||||
|
color_string,
|
||||||
|
sleep,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# STATIC VARIABLES
|
# STATIC VARIABLES
|
||||||
|
|
@ -204,6 +211,50 @@ def get_os_name(as_list=False, check=True):
|
||||||
return [display_name] if as_list else display_name
|
return [display_name] if as_list else display_name
|
||||||
|
|
||||||
|
|
||||||
|
def get_raw_disks():
|
||||||
|
"""Get all disks without a partiton table, returns list."""
|
||||||
|
script_path = find_kit_dir('Scripts').joinpath('get_raw_disks.ps1')
|
||||||
|
cmd = ['PowerShell', '-ExecutionPolicy', 'Bypass', '-File', script_path]
|
||||||
|
json_data = get_json_from_command(cmd)
|
||||||
|
raw_disks = []
|
||||||
|
|
||||||
|
# Fix JSON if only one disk was detected
|
||||||
|
if isinstance(json_data, dict):
|
||||||
|
json_data = [json_data]
|
||||||
|
|
||||||
|
# Parse JSON
|
||||||
|
for disk in json_data:
|
||||||
|
size_str = bytes_to_string(int(disk["Size"]), use_binary=False)
|
||||||
|
raw_disks.append(f'{disk["FriendlyName"]} ({size_str})')
|
||||||
|
|
||||||
|
# Done
|
||||||
|
return raw_disks
|
||||||
|
|
||||||
|
|
||||||
|
def get_volume_usage(use_colors=False):
|
||||||
|
"""Get space usage info for all fixed volumes, returns list."""
|
||||||
|
report = []
|
||||||
|
for disk in psutil.disk_partitions():
|
||||||
|
if 'fixed' not in disk.opts:
|
||||||
|
continue
|
||||||
|
total, _, free, percent = psutil.disk_usage(disk.device)
|
||||||
|
color = None
|
||||||
|
if percent > 85:
|
||||||
|
color = 'RED'
|
||||||
|
elif percent > 75:
|
||||||
|
color = 'YELLOW'
|
||||||
|
display_str = (
|
||||||
|
f'{free/total:>5.2f}% Free'
|
||||||
|
f' ({bytes_to_string(free, 2):>10} / {bytes_to_string(total, 2):>10})'
|
||||||
|
)
|
||||||
|
if use_colors:
|
||||||
|
display_str = color_string(display_str, color)
|
||||||
|
report.append(f'{disk.device} {display_str}')
|
||||||
|
|
||||||
|
# Done
|
||||||
|
return report
|
||||||
|
|
||||||
|
|
||||||
def show_alert_box(message, title=None):
|
def show_alert_box(message, title=None):
|
||||||
"""Show Windows alert box with message."""
|
"""Show Windows alert box with message."""
|
||||||
title = title if title else f'{KIT_NAME_FULL} Warning'
|
title = title if title else f'{KIT_NAME_FULL} Warning'
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,8 @@ if platform.system() == 'Windows':
|
||||||
get_installed_ram,
|
get_installed_ram,
|
||||||
get_os_activation,
|
get_os_activation,
|
||||||
get_os_name,
|
get_os_name,
|
||||||
|
get_raw_disks,
|
||||||
|
get_volume_usage,
|
||||||
is_secure_boot_enabled,
|
is_secure_boot_enabled,
|
||||||
reg_read_value,
|
reg_read_value,
|
||||||
reg_set_value,
|
reg_set_value,
|
||||||
|
|
@ -72,6 +74,8 @@ else:
|
||||||
get_installed_ram = no_op
|
get_installed_ram = no_op
|
||||||
get_os_activation = no_op
|
get_os_activation = no_op
|
||||||
get_os_name = no_op
|
get_os_name = no_op
|
||||||
|
get_raw_disks = no_op
|
||||||
|
get_volume_usage = no_op
|
||||||
is_secure_boot_enabled = no_op
|
is_secure_boot_enabled = no_op
|
||||||
reg_read_value = no_op
|
reg_read_value = no_op
|
||||||
reg_set_value = no_op
|
reg_set_value = no_op
|
||||||
|
|
@ -590,6 +594,11 @@ def auto_show_secure_boot_status():
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def auto_show_storage_status():
|
||||||
|
"""Display storage status."""
|
||||||
|
TRY_PRINT.run('Storage Status...', get_storage_status)
|
||||||
|
|
||||||
|
|
||||||
def auto_windows_temp_fix():
|
def auto_windows_temp_fix():
|
||||||
"""Restore default ACLs for Windows\\Temp."""
|
"""Restore default ACLs for Windows\\Temp."""
|
||||||
TRY_PRINT.run(r'Windows\Temp fix...', fix_windows_temp)
|
TRY_PRINT.run(r'Windows\Temp fix...', fix_windows_temp)
|
||||||
|
|
@ -924,6 +933,16 @@ def get_firefox_default_profile(profiles_ini):
|
||||||
return default_profile
|
return default_profile
|
||||||
|
|
||||||
|
|
||||||
|
def get_storage_status():
|
||||||
|
"""Get storage status for fixed disks, returns list."""
|
||||||
|
report = get_volume_usage(use_colors=True)
|
||||||
|
for disk in get_raw_disks():
|
||||||
|
report.append(color_string(f'Uninitialized Disk: {disk}', 'RED'))
|
||||||
|
|
||||||
|
# Done
|
||||||
|
return report
|
||||||
|
|
||||||
|
|
||||||
# Tool Functions
|
# Tool Functions
|
||||||
def export_aida64_report():
|
def export_aida64_report():
|
||||||
"""Export AIDA64 report."""
|
"""Export AIDA64 report."""
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue