Skip to content

Commit 9ca4890

Browse files
committed
Add Intel ME and Lenovo Super IO firmware installers
1 parent 6604214 commit 9ca4890

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

Install-Software.ps1

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ if ($env:ComputerName -eq "agx-z2e-win") {
4545
$GlobalHeight = 800;
4646
$GlobalWidth = 700;
4747
$SoftwareRepoPath = "V:\IT\Software"
48+
$ComputerSystem = Get-CimInstance -ClassName Win32_ComputerSystem
4849

4950
# TODO: hide non-work-related apps on domain computers
5051
$ChocoPrograms = [ordered]@{
@@ -242,6 +243,31 @@ function Install-LabVIEWRuntime2014SP1 {
242243
Install-FromUri -Name "LabVIEW Runtime 2014 SP1 32-bit" -Uri "https://download.ni.com/support/softlib/labview/labview_runtime/2014%20SP1/Windows/f11/${Filename}" -Filename "${Filename}" -UnzipFolderName "${Folder}" -UnzippedFilePath "setup.exe" -SHA256 "2c54ab5169dd0cc9f14a7b0057881207b6f76e065c7c78bb8c898ac9c5ca0831"
243244
}
244245

246+
function Install-LenovoSuperIOFirmware {
247+
[OutputType([int])]
248+
param()
249+
# Lenovo ThinkStation P330 Tiny
250+
if ($ComputerSystem.Model -eq "30CES0B200") {
251+
$InstallerPath = "${SoftwareRepoPath}\Lenovo\P330 Tiny\Firmware\Lenovo Super IO Firmware\m1uct18usa.exe"
252+
$ScriptDir = "${env:SystemDrive}\SWTOOLS\M1UCT18USA"
253+
$ScriptPath = "${ScriptDir}\Flash64.cmd"
254+
if (Test-Path "$InstallerPath") {
255+
Start-Process -NoNewWindow -Wait "$InstallerPath" -ArgumentList "/silent"
256+
if (! (Get-YesNo "Did you see the firmware being updated in addition to the flasher being installed?")) {
257+
Show-Output "Since the firmware was not yet updated, updating it now."
258+
Start-Process -NoNewWindow -Wait "cmd.exe" -ArgumentList "/c","cd ${ScriptDir} && ${ScriptPath}"
259+
}
260+
} else {
261+
Show-Output "The Lenovo Super IO firmware installer was not found. Is the network drive mounted?"
262+
return 1
263+
}
264+
} else {
265+
Show-Output -ForegroundColor Red "No Lenovo Super IO firmware has been configured for your computer model `"$ComputerSystem.Model`"."
266+
return 1
267+
}
268+
return 0
269+
}
270+
245271
function Install-MeerstetterTEC {
246272
<#
247273
.SYNOPSIS
@@ -254,6 +280,25 @@ function Install-MeerstetterTEC {
254280
Install-FromUri -Name "Meerstetter TEC software" -Uri "https://www.meerstetter.ch/customer-center/downloads/category/31-latest-software?download=331:tec-family-tec-controllers-software" -Filename "TEC_Software.msi"
255281
}
256282

283+
function Install-MEFirmware {
284+
[OutputType([int])]
285+
param()
286+
# Lenovo ThinkStation P330 Tiny
287+
if ($ComputerSystem.Model -eq "30CES0B200") {
288+
$FilePath = "${SoftwareRepoPath}\Lenovo\P330 Tiny\Firmware\Intel ME Firmware\12.0.90.2072_corporate.exe"
289+
if (Test-Path "$FilePath") {
290+
Start-Process -NoNewWindow -Wait "$FilePath" -ArgumentList "/silent"
291+
} else {
292+
Show-Output "The Intel ME firmware installer was not found. Is the network drive mounted?"
293+
return 1
294+
}
295+
} else {
296+
Show-Output -ForegroundColor Red "No Intel ME firmware has been configured for your computer model `"$ComputerSystem.Model`"."
297+
return 1
298+
}
299+
return 0
300+
}
301+
257302
function Install-NI4882 ([string]$Version = "23.5") {
258303
<#
259304
.SYNOPSIS
@@ -579,8 +624,10 @@ $OtherOperations = [ordered]@{
579624
"Git" = ${function:Install-Git}, "Git with custom arguments (SSH available from PATH etc.)";
580625
"IDS Peak" = ${function:Install-IDSPeak}, "Driver for IDS cameras and old Thorlabs cameras";
581626
"IDS Software Suite (µEye, NOTE!)" = ${function:Install-IDSSoftwareSuite}, "Driver for old IDS/Thorlabs cameras. NOTE! Use IDS Peak instad if your cameras are compatible with it.";
627+
"Intel ME firmware" = ${function:Install-MEFirmware}, "Intel Management Engine firmware";
582628
# "LabVIEW Runtime" = ${function:Install-LabVIEWRuntime}, "Required for running LabVIEW-based applications";
583629
"LabVIEW Runtime 2014 SP1 32-bit" = ${function:Install-LabVIEWRuntime2014SP1}, "Required for SSMbe (it requires this specific older version instead of the latest)";
630+
"Lenovo Super IO firmware" = ${function:Install-LenovoSuperIOFirmware}, "Firmware for the IO chip on Lenovo motherboards"
584631
"Meerstetter TEC Software" = ${function:Install-MeerstetterTEC}, "Driver for Meerstetter TEC controllers";
585632
"NI 488.2 (GPIB)" = ${function:Install-NI4882}, "National Instruments GPIB drivers. Includes NI-VISA.";
586633
"NI-VISA 14.0.1 Runtime" = ${function:Install-NI-VISA1401Runtime}, "Required for SSMbe (it requires this specific older version instead of the latest)";

0 commit comments

Comments
 (0)