From b1fd3cc90dd74fed211dbf8a0a836053ad075d08 Mon Sep 17 00:00:00 2001 From: Ana Maria Martinez Gomez Date: Fri, 17 Jan 2025 13:05:09 +0100 Subject: [PATCH 1/2] Add idapro.vm Add idapro.vm, that installs IDA Pro 9 using an IDA Pro installer `ida-pro_9*.exe` (and optionally a license file) in the Desktop. Make also some changes to idafree.vm to keep both packages consistent. There are some conflicts between idafree.vm and idapro.vm, as both use the same tool name, which enable us to have a single shortcut (in the Tools directory and the taskbar) and right-click menu option. As long as idapro.vm is installed after idafree.vm (which should be the case using the installer that uses alphabetical order), the installation is as I would expect it: - IDA Pro 9 is used in shortcut in the Tools directory and the taskbar (without taskbar duplication) - The right-click menu option uses IDA launcher to find the highest version of IDA available. I have kept IDA Pro 9 Desktop shortcut as I find it useful to drag binaries to it. We need to exclude this new package from testing, as we can't provide an IDA installer. --- packages/idafree.vm/idafree.vm.nuspec | 6 +- .../idafree.vm/tools/chocolateyinstall.ps1 | 15 ++-- .../idafree.vm/tools/chocolateyuninstall.ps1 | 8 +- packages/idapro.vm/idapro.vm.nuspec | 14 ++++ .../idapro.vm/tools/chocolateyinstall.ps1 | 77 +++++++++++++++++++ .../idapro.vm/tools/chocolateyuninstall.ps1 | 16 ++++ scripts/test/test_install.ps1 | 2 +- 7 files changed, 119 insertions(+), 19 deletions(-) create mode 100644 packages/idapro.vm/idapro.vm.nuspec create mode 100644 packages/idapro.vm/tools/chocolateyinstall.ps1 create mode 100644 packages/idapro.vm/tools/chocolateyuninstall.ps1 diff --git a/packages/idafree.vm/idafree.vm.nuspec b/packages/idafree.vm/idafree.vm.nuspec index e3819884d..7f041f81e 100644 --- a/packages/idafree.vm/idafree.vm.nuspec +++ b/packages/idafree.vm/idafree.vm.nuspec @@ -2,9 +2,9 @@ idafree.vm - 8.4.0.20241124 - hex-rays - Free version of IDA, a powerful Interactive DisAssembler and debugger + 8.4.0.20250116 + Hex-Rays + Free version of IDA Pro, a powerful Interactive DisAssembler and debugger. diff --git a/packages/idafree.vm/tools/chocolateyinstall.ps1 b/packages/idafree.vm/tools/chocolateyinstall.ps1 index bc9c76e8c..eb263b45b 100644 --- a/packages/idafree.vm/tools/chocolateyinstall.ps1 +++ b/packages/idafree.vm/tools/chocolateyinstall.ps1 @@ -2,7 +2,7 @@ $ErrorActionPreference = 'Stop' Import-Module vm.common -Force -DisableNameChecking try { - $toolName = 'idafree' + $toolName = 'ida' $category = 'Disassemblers' $packageArgs = @{ @@ -22,9 +22,7 @@ try { # Delete Desktop shortcut $desktopShortcut = Join-Path ${Env:Public} "Desktop\IDA Freeware 8.4.lnk" - if (Test-Path $desktopShortcut) { - Remove-Item $desktopShortcut -Force -ea 0 - } + if (Test-Path $desktopShortcut) { Remove-Item $desktopShortcut -Force -ea 0 } # Download ida_launcher.exe to assist with taskbar and right click option and store it in %RAW_TOOLS_DIR% # ida_launcher.exe is a custom binary that searches for the latest ida64.exe and executes it @@ -32,17 +30,14 @@ try { $launcherSource = 'https://raw.githubusercontent.com/mandiant/VM-Packages/119ba385de053b01b0d1732d60ad1b1152496dc2/ida_launcher/ida_launcher.exe' $launcherPath = Join-Path ${Env:RAW_TOOLS_DIR} "$launcherName.exe" $launcherChecksum = "a98241e476150d053d67d149c1b54816c8306db51e0987613ec25a0f8ad22006" - Write-Host "[+] Downloading '$launcherSource'" Get-ChocolateyWebFile -PackageName $launcherName -FileFullPath $launcherPath -Url $launcherSource -Checksum $launcherChecksum -ChecksumType "sha256" - VM-Assert-Path $launcherPath - $menuIcon = Join-Path $toolDir "ida.ico" -Resolve - - VM-Install-Shortcut -toolName "ida" -category $category -executablePath $launcherPath -IconLocation $menuIcon + $icon = Join-Path $toolDir "$toolName.ico" -Resolve + VM-Install-Shortcut -toolName $toolName -category $category -executablePath $launcherPath -IconLocation $icon # ida64.exe supports both 32 bit and 64 bit in IDA >= 8.2 - VM-Add-To-Right-Click-Menu $launcherName 'Open with IDA' "`"$launcherPath`" `"%1`"" "$menuIcon" + VM-Add-To-Right-Click-Menu $launcherName 'Open with IDA' "`"$launcherPath`" `"%1`"" "$icon" } catch { VM-Write-Log-Exception $_ } diff --git a/packages/idafree.vm/tools/chocolateyuninstall.ps1 b/packages/idafree.vm/tools/chocolateyuninstall.ps1 index 2fd1f1569..cc6243659 100644 --- a/packages/idafree.vm/tools/chocolateyuninstall.ps1 +++ b/packages/idafree.vm/tools/chocolateyuninstall.ps1 @@ -1,13 +1,11 @@ $ErrorActionPreference = 'Continue' Import-Module vm.common -Force -DisableNameChecking -$toolName = 'idafree' +$toolName = 'ida' $category = 'Disassemblers' -VM-Remove-Tool-Shortcut $toolName $category - # Remove binary from PATH Uninstall-BinFile -Name $toolName -# Manually silently uninstall -VM-Uninstall-With-Uninstaller "IDA Freeware*?8.4" $category "EXE" "--mode unattended" +# Silently uninstall +VM-Uninstall-With-Uninstaller "IDA Freeware*" $category "EXE" "--mode unattended" | Out-Null diff --git a/packages/idapro.vm/idapro.vm.nuspec b/packages/idapro.vm/idapro.vm.nuspec new file mode 100644 index 000000000..e98c3efec --- /dev/null +++ b/packages/idapro.vm/idapro.vm.nuspec @@ -0,0 +1,14 @@ + + + + idapro.vm + 0.0.0.20250116 + Hex-Rays + IDA Pro 9 is an interactive DisAssembler and debugger. The installation requires an IDA Pro installer `ida-pro_9*.exe` (and optionally a license file) in the Desktop. Get your installer from https://hex-rays.com/ida-pro. + + + + + + + diff --git a/packages/idapro.vm/tools/chocolateyinstall.ps1 b/packages/idapro.vm/tools/chocolateyinstall.ps1 new file mode 100644 index 000000000..5f3939c89 --- /dev/null +++ b/packages/idapro.vm/tools/chocolateyinstall.ps1 @@ -0,0 +1,77 @@ +$ErrorActionPreference = 'Stop' +Import-Module vm.common -Force -DisableNameChecking + +try { + $toolName = 'ida' + $category = 'Disassemblers' + + $installerPaths = Get-ChildItem "${Env:USERPROFILE}\Desktop\ida-pro_9*.exe" + if ($installerPaths.count -eq 0) { + throw "An IDA Pro installer 'ida-pro_9*.exe' in the Desktop is required. Get your installer from https://hex-rays.com/ida-pro" + } + elseif ($installerPaths.count -gt 1) { + # Only one installer supported (prospective change) + throw "Several IDA Pro installers found in Desktop, only 1 installer is supported." + } + $installerPath = $installerPaths | Select-Object -first 1 + VM-Write-Log "INFO" "Installing IDA Pro: $installerPath" + + # Run installer + $packageArgs = @{ + packageName = $env:ChocolateyPackageName + file = $installerPath + fileType = 'exe' + # unclear what the required argument `--install_python` expects + silentArgs = '--mode unattended --install_python flare' + } + Install-ChocolateyInstallPackage @packageArgs | Out-Null + + # Wait for IDA to be installed + Start-Sleep -Seconds 10 + $executablePath = Get-ChildItem "${Env:ProgramFiles}\IDA Professional 9*\ida.exe" + VM-Assert-Path $executablePath + + Install-BinFile -Name $toolname -Path $executablePath + + # Delete "IDA Teams Visual Client" Desktop shortcut + # Do not delete "IDA Professional 9.0", as it is useful to drag binaries to it + $desktopShortcut = Get-ChildItem "${Env:Public}\Desktop\IDA Teams Visual Client*" + if (Test-Path $desktopShortcut) { Remove-Item $desktopShortcut -Force -ea 0 } + + # Add ida to the Tools directory, use directly (instead of ida_launcher.exe) to avoid taskbar duplication + VM-Install-Shortcut -toolName $toolName -category $category -executablePath $executablePath + + # Download ida_launcher.exe and store it in %RAW_TOOLS_DIR% + # ida_launcher.exe is a custom binary that searches for the latest ida64.exe and executes it + $launcherName = 'ida_launcher' + $launcherSource = 'https://raw.githubusercontent.com/mandiant/VM-Packages/119ba385de053b01b0d1732d60ad1b1152496dc2/ida_launcher/ida_launcher.exe' + $launcherPath = Join-Path ${Env:RAW_TOOLS_DIR} "$launcherName.exe" + $launcherChecksum = "a98241e476150d053d67d149c1b54816c8306db51e0987613ec25a0f8ad22006" + Get-ChocolateyWebFile -PackageName $launcherName -FileFullPath $launcherPath -Url $launcherSource -Checksum $launcherChecksum -ChecksumType "sha256" + VM-Assert-Path $launcherPath + + # Use ida_launcher.exe in the right click option "Open with IDA" + $icon = Get-ChildItem "${Env:ProgramFiles}\IDA*\$toolName.ico" | Select-Object -last 1 + VM-Add-To-Right-Click-Menu $launcherName 'Open with IDA' "`"$launcherPath`" `"%1`"" "$icon" + + + # Copy license file to IDA user directory if present in Desktop + $licensePaths = Get-ChildItem "${Env:USERPROFILE}\Desktop\idapro_9*.hexlic" + if ($licensePaths.count -eq 0) { + VM-Write-Log "WARN" "No IDA Pro license file 'idapro_9*.hexlic' found in Desktop." + VM-Write-Log "WARN" "Get your license file from https://hex-rays.com/ida-pro and copy it to IDA user directory before launching IDA Pro." + } + else { + # Create IDA user directory + $idaDir = "${Env:APPDATA}\Hex-Rays\IDA Pro" + New-Item $idaDir -ItemType "directory" -Force | Out-Null + + # Copy license file(s) + ForEach ($licensePath in $licensePaths) { + VM-Write-Log "INFO" "Copying license file to IDA user directory: $licensePath" + Copy-Item $licensePath $idaDir + } + } +} catch { + VM-Write-Log-Exception $_ +} diff --git a/packages/idapro.vm/tools/chocolateyuninstall.ps1 b/packages/idapro.vm/tools/chocolateyuninstall.ps1 new file mode 100644 index 000000000..772621fce --- /dev/null +++ b/packages/idapro.vm/tools/chocolateyuninstall.ps1 @@ -0,0 +1,16 @@ +$ErrorActionPreference = 'Continue' +Import-Module vm.common -Force -DisableNameChecking + +$toolName = 'ida' +$category = 'Disassemblers' + +# Remove binary from PATH +Uninstall-BinFile -Name $toolName + +# Replace tool shortcut's target by ida_launcher.exe +$launcherPath = Join-Path ${Env:RAW_TOOLS_DIR} "ida_launcher.exe" +$icon = Get-ChildItem "${Env:ProgramFiles}\IDA*\$toolName.ico" | Select-Object -first 1 +VM-Install-Shortcut -toolName $toolName -category $category -executablePath $launcherPath -IconLocation $icon + +# Silently uninstall +VM-Uninstall-With-Uninstaller "IDA Pro*" $category "EXE" "--mode unattended" | Out-Null diff --git a/scripts/test/test_install.ps1 b/scripts/test/test_install.ps1 index a77bade4c..90c7fd886 100644 --- a/scripts/test/test_install.ps1 +++ b/scripts/test/test_install.ps1 @@ -49,7 +49,7 @@ foreach ($package in $packages) { } -$exclude_tests = @("installer.vm") +$exclude_tests = @("installer.vm", "idapro.vm") $failures = New-Object Collections.Generic.List[string] $failed = 0 From 44058e5addb8f292c3262d9909011c7542023125 Mon Sep 17 00:00:00 2001 From: Ana Maria Martinez Gomez Date: Fri, 17 Jan 2025 18:50:43 +0100 Subject: [PATCH 2/2] Refresh Desktop Refresh Desktop in the packages whose shortcut is used in FLARE-VM LayoutModification.xml. --- packages/common.vm/common.vm.nuspec | 2 +- .../common.vm/tools/vm.common/vm.common.psm1 | 3 +++ packages/cyberchef.vm/cyberchef.vm.nuspec | 2 +- .../cyberchef.vm/tools/chocolateyinstall.ps1 | 3 +++ .../explorersuite.vm/explorersuite.vm.nuspec | 2 +- .../tools/chocolateyinstall.ps1 | 3 +++ .../tools/chocolateyuninstall.ps1 | 3 +++ packages/fakenet-ng.vm/fakenet-ng.vm.nuspec | 2 +- .../fakenet-ng.vm/tools/chocolateyinstall.ps1 | 3 +++ .../tools/chocolateyuninstall.ps1 | 23 +++++++++---------- .../googlechrome.vm/googlechrome.vm.nuspec | 2 +- .../tools/chocolateyinstall.ps1 | 3 +-- .../idafree.vm/tools/chocolateyinstall.ps1 | 3 +++ .../idapro.vm/tools/chocolateyinstall.ps1 | 3 +++ .../notepadplusplus.vm.nuspec | 2 +- .../tools/chocolateyinstall.ps1 | 3 +++ .../sysinternals.vm/sysinternals.vm.nuspec | 2 +- .../tools/chocolateyinstall.ps1 | 3 +++ .../tools/chocolateyuninstall.ps1 | 3 +++ .../tools/chocolateyinstall.ps1 | 3 +++ .../tools/chocolateyuninstall.ps1 | 3 +++ .../visualstudio.vm/visualstudio.vm.nuspec | 2 +- .../tools/chocolateyinstall.ps1 | 3 +++ .../windows-terminal.vm.nuspec | 2 +- 24 files changed, 60 insertions(+), 23 deletions(-) diff --git a/packages/common.vm/common.vm.nuspec b/packages/common.vm/common.vm.nuspec index e0e3d6733..949dc3d5e 100755 --- a/packages/common.vm/common.vm.nuspec +++ b/packages/common.vm/common.vm.nuspec @@ -2,7 +2,7 @@ common.vm - 0.0.0.20241216 + 0.0.0.20250117 Common libraries for VM-packages Mandiant diff --git a/packages/common.vm/tools/vm.common/vm.common.psm1 b/packages/common.vm/tools/vm.common/vm.common.psm1 index e18ee80ab..e6872374b 100755 --- a/packages/common.vm/tools/vm.common/vm.common.psm1 +++ b/packages/common.vm/tools/vm.common/vm.common.psm1 @@ -614,6 +614,9 @@ function VM-Uninstall { # Uninstall binary Uninstall-BinFile -Name $toolName + + # Refresh Desktop, needed for example if shortcut is used in FLARE-VM LayoutModification.xml + VM-Refresh-Desktop } function VM-Remove-Tool-Shortcut { diff --git a/packages/cyberchef.vm/cyberchef.vm.nuspec b/packages/cyberchef.vm/cyberchef.vm.nuspec index d1962fa0b..63bc33b38 100644 --- a/packages/cyberchef.vm/cyberchef.vm.nuspec +++ b/packages/cyberchef.vm/cyberchef.vm.nuspec @@ -2,7 +2,7 @@ cyberchef.vm - 10.19.4.20241209 + 10.19.4.20250117 GCHQ The Cyber Swiss Army Knife - a web app for encryption, encoding, compression, data analysis, and more. diff --git a/packages/cyberchef.vm/tools/chocolateyinstall.ps1 b/packages/cyberchef.vm/tools/chocolateyinstall.ps1 index bb8945a04..576afdf43 100644 --- a/packages/cyberchef.vm/tools/chocolateyinstall.ps1 +++ b/packages/cyberchef.vm/tools/chocolateyinstall.ps1 @@ -25,6 +25,9 @@ try { $cyberchefPath = Get-Item "$toolDir\CyberChef*.html" $iconLocation = VM-Create-Ico (Join-Path $toolDir "images\cyberchef-128x128.png") VM-Install-Shortcut -toolName $toolName -category $category -executablePath $chromePath -arguments "-home $cyberchefPath" -iconLocation $iconLocation + + # Refresh Desktop as shortcut is used in FLARE-VM LayoutModification.xml + VM-Refresh-Desktop } catch { VM-Write-Log-Exception $_ } diff --git a/packages/explorersuite.vm/explorersuite.vm.nuspec b/packages/explorersuite.vm/explorersuite.vm.nuspec index 6a995f3ec..d637a28a1 100644 --- a/packages/explorersuite.vm/explorersuite.vm.nuspec +++ b/packages/explorersuite.vm/explorersuite.vm.nuspec @@ -2,7 +2,7 @@ explorersuite.vm - 0.0.0.20240717 + 0.0.0.20250117 Erik Pistelli A suite of tools including CFF Explorer and a process viewer. diff --git a/packages/explorersuite.vm/tools/chocolateyinstall.ps1 b/packages/explorersuite.vm/tools/chocolateyinstall.ps1 index 83cd8d308..b08bd04ad 100644 --- a/packages/explorersuite.vm/tools/chocolateyinstall.ps1 +++ b/packages/explorersuite.vm/tools/chocolateyinstall.ps1 @@ -34,6 +34,9 @@ try { Remove-Item -Path "HKLM:\SOFTWARE\Classes\*file\shell\Open with CFF Explorer" -Recurse VM-Add-To-Right-Click-Menu 'Open with CFF Explorer' 'Open with CFF Explorer' "`"$cffExecutablePath`" %1" $cffExecutablePath + + # Refresh Desktop as CFF Explorer shortcut is used in FLARE-VM LayoutModification.xml + VM-Refresh-Desktop } catch { VM-Write-Log-Exception $_ } diff --git a/packages/explorersuite.vm/tools/chocolateyuninstall.ps1 b/packages/explorersuite.vm/tools/chocolateyuninstall.ps1 index b2632c58a..592c3a628 100644 --- a/packages/explorersuite.vm/tools/chocolateyuninstall.ps1 +++ b/packages/explorersuite.vm/tools/chocolateyuninstall.ps1 @@ -10,3 +10,6 @@ foreach ($subtoolName in $subtoolNames) { VM-Remove-From-Right-Click-Menu 'Open with CFF Explorer' VM-Uninstall-With-Uninstaller "Explorer Suite IV" $category "EXE" "/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-" + +# Refresh Desktop as CFF Explorer shortcut is used in FLARE-VM LayoutModification.xml +VM-Refresh-Desktop diff --git a/packages/fakenet-ng.vm/fakenet-ng.vm.nuspec b/packages/fakenet-ng.vm/fakenet-ng.vm.nuspec index 0354336a3..c8e368d78 100755 --- a/packages/fakenet-ng.vm/fakenet-ng.vm.nuspec +++ b/packages/fakenet-ng.vm/fakenet-ng.vm.nuspec @@ -2,7 +2,7 @@ fakenet-ng.vm - 3.3.0.20241219 + 3.3.0.20250117 FakeNet-NG is a dynamic network analysis tool. Mandiant diff --git a/packages/fakenet-ng.vm/tools/chocolateyinstall.ps1 b/packages/fakenet-ng.vm/tools/chocolateyinstall.ps1 index 4aca8473d..b725673ee 100755 --- a/packages/fakenet-ng.vm/tools/chocolateyinstall.ps1 +++ b/packages/fakenet-ng.vm/tools/chocolateyinstall.ps1 @@ -44,6 +44,9 @@ try { $desktopShortcut = Join-Path ${Env:UserProfile} "Desktop\fakenet_logs.lnk" Install-ChocolateyShortcut -shortcutFilePath $desktopShortcut -targetPath $toolDir VM-Assert-Path $desktopShortcut + + # Refresh Desktop as shortcut is used in FLARE-VM LayoutModification.xml + VM-Refresh-Desktop } catch { VM-Write-Log-Exception $_ } diff --git a/packages/fakenet-ng.vm/tools/chocolateyuninstall.ps1 b/packages/fakenet-ng.vm/tools/chocolateyuninstall.ps1 index 6b542ca28..49ebb3396 100755 --- a/packages/fakenet-ng.vm/tools/chocolateyuninstall.ps1 +++ b/packages/fakenet-ng.vm/tools/chocolateyuninstall.ps1 @@ -1,15 +1,14 @@ $ErrorActionPreference = 'Continue' Import-Module vm.common -Force -DisableNameChecking -try { - $toolName = 'fakenet' - $category = 'Networking' - - VM-Uninstall $toolName $category - - # Remove Desktop shortcut to FakeNet tool directory - $desktopShortcut = Join-Path ${Env:UserProfile} "Desktop\fakenet_logs.lnk" - Remove-Item $desktopShortcut -Force -ea 0 -} catch { - VM-Write-Log-Exception $_ -} +$toolName = 'fakenet' +$category = 'Networking' + +VM-Uninstall $toolName $category + +# Remove Desktop shortcut to FakeNet tool directory +$desktopShortcut = Join-Path ${Env:UserProfile} "Desktop\fakenet_logs.lnk" +Remove-Item $desktopShortcut -Force -ea 0 + +# Refresh Desktop as shortcut is used in FLARE-VM LayoutModification.xml +VM-Refresh-Desktop diff --git a/packages/googlechrome.vm/googlechrome.vm.nuspec b/packages/googlechrome.vm/googlechrome.vm.nuspec index 53fe5066d..f8be932a1 100644 --- a/packages/googlechrome.vm/googlechrome.vm.nuspec +++ b/packages/googlechrome.vm/googlechrome.vm.nuspec @@ -2,7 +2,7 @@ googlechrome.vm - 0.0.0.20241212 + 0.0.0.20250117 Google LLC. Chrome is a popular web browser. diff --git a/packages/googlechrome.vm/tools/chocolateyinstall.ps1 b/packages/googlechrome.vm/tools/chocolateyinstall.ps1 index 21e956361..1bc4bfe04 100644 --- a/packages/googlechrome.vm/tools/chocolateyinstall.ps1 +++ b/packages/googlechrome.vm/tools/chocolateyinstall.ps1 @@ -72,5 +72,4 @@ SetDefaultBrowser "chrome" # Do not show the "Open with" popup Set-ItemProperty -path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -name "NoNewAppAlert" -value 1 -type "DWord" -# Restart Explorer.exe for registry change to take effect -Stop-Process -Name explorer -Force +VM-Refresh-Desktop # For registry change to take effect diff --git a/packages/idafree.vm/tools/chocolateyinstall.ps1 b/packages/idafree.vm/tools/chocolateyinstall.ps1 index eb263b45b..ec958cb3e 100644 --- a/packages/idafree.vm/tools/chocolateyinstall.ps1 +++ b/packages/idafree.vm/tools/chocolateyinstall.ps1 @@ -38,6 +38,9 @@ try { # ida64.exe supports both 32 bit and 64 bit in IDA >= 8.2 VM-Add-To-Right-Click-Menu $launcherName 'Open with IDA' "`"$launcherPath`" `"%1`"" "$icon" + + # Refresh Desktop as shortcut is used in FLARE-VM LayoutModification.xml + VM-Refresh-Desktop } catch { VM-Write-Log-Exception $_ } diff --git a/packages/idapro.vm/tools/chocolateyinstall.ps1 b/packages/idapro.vm/tools/chocolateyinstall.ps1 index 5f3939c89..06e951f0f 100644 --- a/packages/idapro.vm/tools/chocolateyinstall.ps1 +++ b/packages/idapro.vm/tools/chocolateyinstall.ps1 @@ -72,6 +72,9 @@ try { Copy-Item $licensePath $idaDir } } + + # Refresh Desktop as shortcut is used in FLARE-VM LayoutModification.xml + VM-Refresh-Desktop } catch { VM-Write-Log-Exception $_ } diff --git a/packages/notepadplusplus.vm/notepadplusplus.vm.nuspec b/packages/notepadplusplus.vm/notepadplusplus.vm.nuspec index 383141f29..e1d41743d 100644 --- a/packages/notepadplusplus.vm/notepadplusplus.vm.nuspec +++ b/packages/notepadplusplus.vm/notepadplusplus.vm.nuspec @@ -2,7 +2,7 @@ notepadplusplus.vm - 8.7.4 + 8.7.4.2025017 Wrapper for Notepad++ Don Ho diff --git a/packages/notepadplusplus.vm/tools/chocolateyinstall.ps1 b/packages/notepadplusplus.vm/tools/chocolateyinstall.ps1 index 4cb0a6906..2f4f6d639 100644 --- a/packages/notepadplusplus.vm/tools/chocolateyinstall.ps1 +++ b/packages/notepadplusplus.vm/tools/chocolateyinstall.ps1 @@ -46,6 +46,9 @@ try { $executablePath = Join-Path ${Env:ProgramFiles} "Notepad++\${toolName}.exe" -Resolve VM-Install-Shortcut $toolName $category $executablePath + + # Refresh Desktop as shortcut is used in FLARE-VM LayoutModification.xml + VM-Refresh-Desktop } catch { VM-Write-Log-Exception $_ } diff --git a/packages/sysinternals.vm/sysinternals.vm.nuspec b/packages/sysinternals.vm/sysinternals.vm.nuspec index 5e660c08b..f0c3f914b 100644 --- a/packages/sysinternals.vm/sysinternals.vm.nuspec +++ b/packages/sysinternals.vm/sysinternals.vm.nuspec @@ -2,7 +2,7 @@ sysinternals.vm - 0.0.0.20241122 + 0.0.0.20250117 Mark Russinovich, Bryce Cogswell Sysinternals suite. diff --git a/packages/sysinternals.vm/tools/chocolateyinstall.ps1 b/packages/sysinternals.vm/tools/chocolateyinstall.ps1 index 9cb4312c1..fa85b20e7 100644 --- a/packages/sysinternals.vm/tools/chocolateyinstall.ps1 +++ b/packages/sysinternals.vm/tools/chocolateyinstall.ps1 @@ -78,6 +78,9 @@ try { New-Item -Path $registryKey -Force | Out-Null New-ItemProperty -Path $registryKey -Name EulaAccepted -Value 1 -Force | Out-Null } + + # Refresh Desktop as the shortcuts are used in FLARE-VM LayoutModification.xml + VM-Refresh-Desktop } catch { VM-Write-Log-Exception $_ } diff --git a/packages/sysinternals.vm/tools/chocolateyuninstall.ps1 b/packages/sysinternals.vm/tools/chocolateyuninstall.ps1 index 9a3da6528..6da5bbb64 100644 --- a/packages/sysinternals.vm/tools/chocolateyuninstall.ps1 +++ b/packages/sysinternals.vm/tools/chocolateyuninstall.ps1 @@ -18,3 +18,6 @@ ForEach ($category in $shortcuts.GetEnumerator()) { $toolDir = Join-Path ${Env:RAW_TOOLS_DIR} $toolName Remove-Item $toolDir -Recurse -Force -ea 0 | Out-Null + +# Refresh Desktop as the shortcuts are used in FLARE-VM LayoutModification.xml +VM-Refresh-Desktop diff --git a/packages/visualstudio.vm/tools/chocolateyinstall.ps1 b/packages/visualstudio.vm/tools/chocolateyinstall.ps1 index 2056a7bbb..314a20563 100755 --- a/packages/visualstudio.vm/tools/chocolateyinstall.ps1 +++ b/packages/visualstudio.vm/tools/chocolateyinstall.ps1 @@ -16,6 +16,9 @@ try { $shortcut = Join-Path $shortcutDir "$toolName.lnk" Install-ChocolateyShortcut -shortcutFilePath $shortcut -targetPath $executablePath VM-Assert-Path $shortcut + + # Refresh Desktop as shortcut is used in FLARE-VM LayoutModification.xml + VM-Refresh-Desktop } catch { VM-Write-Log-Exception $_ } diff --git a/packages/visualstudio.vm/tools/chocolateyuninstall.ps1 b/packages/visualstudio.vm/tools/chocolateyuninstall.ps1 index 57f5e0579..e400b8258 100755 --- a/packages/visualstudio.vm/tools/chocolateyuninstall.ps1 +++ b/packages/visualstudio.vm/tools/chocolateyuninstall.ps1 @@ -6,4 +6,7 @@ $category = 'Productivity Tools' VM-Remove-Tool-Shortcut $toolName $category +# Refresh Desktop as shortcut is used in FLARE-VM LayoutModification.xml +VM-Refresh-Desktop + choco uninstall visualstudio2022community --removedependencies diff --git a/packages/visualstudio.vm/visualstudio.vm.nuspec b/packages/visualstudio.vm/visualstudio.vm.nuspec index a625b44d1..cd98266bc 100755 --- a/packages/visualstudio.vm/visualstudio.vm.nuspec +++ b/packages/visualstudio.vm/visualstudio.vm.nuspec @@ -2,7 +2,7 @@ visualstudio.vm - 17.6.1.20240217 + 17.6.1.20250117 IDE. Microsoft diff --git a/packages/windows-terminal.vm/tools/chocolateyinstall.ps1 b/packages/windows-terminal.vm/tools/chocolateyinstall.ps1 index e25bab90e..a77db25d2 100644 --- a/packages/windows-terminal.vm/tools/chocolateyinstall.ps1 +++ b/packages/windows-terminal.vm/tools/chocolateyinstall.ps1 @@ -54,6 +54,9 @@ try { $label = "Open Terminal here" $icon = "$executablePath" VM-Add-To-Right-Click-Menu -menuKey $toolName -menuLabel $label -command $command -menuIcon $icon -type "directory" -background + + # Refresh Desktop as shortcut is used in FLARE-VM LayoutModification.xml + VM-Refresh-Desktop } catch { VM-Write-Log-Exception $_ } diff --git a/packages/windows-terminal.vm/windows-terminal.vm.nuspec b/packages/windows-terminal.vm/windows-terminal.vm.nuspec index 8390997cf..a5315e11c 100644 --- a/packages/windows-terminal.vm/windows-terminal.vm.nuspec +++ b/packages/windows-terminal.vm/windows-terminal.vm.nuspec @@ -2,7 +2,7 @@ windows-terminal.vm - 1.21.3231 + 1.21.3231.20250117 Microsoft Windows Terminal is a new, modern, feature-rich, productive terminal application for command-line users.