Replace the use of wmic (deprecated) with a powershell call

This commit is contained in:
cmdr2 2025-01-04 13:25:53 +05:30
parent 49488ded01
commit 74b25bdcb1
3 changed files with 15 additions and 13 deletions

View File

@ -4,7 +4,7 @@ echo "Opening Stable Diffusion UI - Developer Console.." & echo.
cd /d %~dp0
set PATH=C:\Windows\System32;%PATH%
set PATH=C:\Windows\System32;C:\Windows\System32\WindowsPowerShell\v1.0;%PATH%
@rem set legacy and new installer's PATH, if they exist
if exist "installer" set PATH=%cd%\installer;%cd%\installer\Library\bin;%cd%\installer\Scripts;%cd%\installer\Library\usr\bin;%PATH%
@ -26,6 +26,7 @@ call conda --version
echo.
echo COMSPEC=%COMSPEC%
echo.
powershell -Command "(Get-WmiObject Win32_VideoController | Select-Object Name, AdapterRAM, DriverDate, DriverVersion)"
@rem activate the legacy environment (if present) and set PYTHONPATH
if exist "installer_files\env" (

View File

@ -3,7 +3,7 @@
cd /d %~dp0
echo Install dir: %~dp0
set PATH=C:\Windows\System32;C:\Windows\System32\wbem;%PATH%
set PATH=C:\Windows\System32;C:\Windows\System32\WindowsPowerShell\v1.0;%PATH%
set PYTHONHOME=
if exist "on_sd_start.bat" (
@ -39,7 +39,7 @@ call where conda
call conda --version
echo .
echo COMSPEC=%COMSPEC%
wmic path win32_VideoController get name,AdapterRAM,DriverDate,DriverVersion
powershell -Command "(Get-WmiObject Win32_VideoController | Select-Object Name, AdapterRAM, DriverDate, DriverVersion)"
@rem Download the rest of the installer and UI
call scripts\on_env_start.bat

View File

@ -405,18 +405,19 @@ def has_discrete_graphics_card():
if system == "Windows":
try:
env = dict(os.environ)
env["PATH"] += (
os.pathsep
+ "C:/Windows/System32".replace("/", os.path.sep)
+ os.pathsep
+ "C:/Windows/System32/wbem".replace("/", os.path.sep)
)
output = subprocess.check_output(
["wmic", "path", "win32_videocontroller", "get", "name"], stderr=subprocess.STDOUT, env=env
)
env["PATH"] += os.pathsep + "C:/Windows/System32/WindowsPowerShell/v1.0".replace("/", os.path.sep)
# PowerShell command to get the names of graphics cards
command = [
"powershell",
"-Command",
"(Get-WmiObject Win32_VideoController).Name",
]
# Run the command and decode the output
output = subprocess.check_output(command, universal_newlines=True, stderr=subprocess.STDOUT, env=env)
# Filter for discrete graphics cards (NVIDIA, AMD, etc.)
discrete_gpus = ["NVIDIA", "AMD", "ATI"]
return any(gpu in output.decode() for gpu in discrete_gpus)
return any(gpu in output for gpu in discrete_gpus)
except subprocess.CalledProcessError:
return False