That's why the installer that exists should completely go away, and it should either use MSI directly or, more modernly, MSIX.
-----Original Message-----
From: Bram Duvigneau
Hi all,
I promised to show you how I made the NVDA Updater i use here to get our chaotic NVDA installations in order. Should work. I tried that on a small scale at the moment.
Prerequisites
You need: * NVDA installer from the NV Access website. * NSIS installer from https://sf.net/projects/nsis/ * then you need psexec from the sysinternals tools from Microsoft: https://docs.microsoft.com/en-us/sysinternals/
The following scripts are well commented out and so that shouldn't be a problem for someone who has a little bit a knowledge of some batch commands and some general commands and NSIS files. Please edit them that they fit your directory structure.
The files
makeupdate.bat: this file creates the silent installer out of the not so silent nvda installer.
--- Begin ---
@echo off
rem clearing the screen
cls
rem deleting old temporary dirs and files
rmdir /q /s nvda del nvdainstaller.exe
rem installing a portable copy to a temp dir
"%cd%\nvda_.exe" --create-portable-silent --portable-path "%cd%\nvda"
rem because nvda silent portable isn't all that silent we need to restart the local installed copy
"C:\Program Files (x86)\NVDA\nvda_slave.exe" launchNVDA -r
rem now delete the old uninstaller because its not needed and its useless.
cd nvda del uninstall.exe cd ..
rem generating the realy silent installer
"c:\nsis\makensis.exe" "%cd%\nvdainstaller.nsi"
rem deleting old temporary dirs and files
rmdir /q /s nvda
--- End ---
nvdainstaller.nsi: the NSIS script for the really silent installer. Also needs updating to your needs and company names and versions.
--- Begin ---
;Include Modern UI !include "MUI2.nsh"
;Name and file Name "NVDA Stadt Hohenems 2018.3.2" OutFile "nvdainstaller.exe"
;Default installation folder InstallDir "c:\nvda"
;request admin privileges RequestExecutionLevel admin
;Version Information
VIProductVersion "2018.3.2.0" VIAddVersionKey "ProductName" "NVDA Stadt Hohenems" VIAddVersionKey "Comments" "NVDA Stadt Hohenems" VIAddVersionKey "CompanyName" "NVAccess and Stadt Hohenems" VIAddVersionKey "FileDescription" "NVDA Stadt Hohenems" VIAddVersionKey "FileVersion" "2018.3.2.0"
;Installer Sections
Section Install
; Output path SetOutPath "$INSTDIR"
;Files File /r "c:\daten\nvdaupdate\nvda\*"
; Shortcuts CreateShortcut "c:\users\public\desktop\NVDA.lnk" "c:\nvda\nvda_slave.exe" "launchNVDA -r -c \\emsapp101\NVDA"
;Create uninstaller WriteUninstaller "$INSTDIR\Uninstall.exe"
;Write the uninstall keys for Windows WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NVDAEms" "DisplayName" "NVDA Stadt Hohenems 2018.3.2" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NVDAEms" "UninstallString" '"$INSTDIR\Uninstall.exe /S"' WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NVDAEms" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NVDAEms" "NoRepair" 1
SectionEnd
;Uninstaller Section
Section "Uninstall"
Delete "$INSTDIR\Uninstall.exe" Delete "c:\users\public\desktop\NVDA.lnk" RMDir /r "$INSTDIR"
; Remove registry keys DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NVDAEms"
SectionEnd
;Pages !insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_INSTFILES
;Languages !insertmacro MUI_LANGUAGE "English"
--- End ---
So. Now we have the installer. Then we copy that stuff on a share where people have access to. we have a software distribution share. We copy nvdainstaller.exe and installnvda.bat there.
installnvda.bat: this script installs nvda on the computer and uninstalls the old one:
--- Begin ---
@echo off
rem clearing the screen
cls
rem uninstalling old nvda installed normally and previous installations
"C:\Program Files (x86)\NVDA\uninstall.exe" /S c:\nvda\uninstall.exe /S
rem let's delete the manually created desktop icon
del c:\users\public\desktop\nvda.lnk
rem copy the nvda installer to a temp directory.
xcopy /y \\emsfi101\softwaredistribution$\nvda\nvdainstaller.exe c:\temp\
rem install it silently.
c:\temp\nvdainstaller.exe /S
rem clean up the mess
del c:\temp\nvdainstaller.exe
--- End ---
Now we just need something to launch that silent and remote installation thing from our computer:
updatenvda.bat: the script that launches all that chaos. Willl sit on our admin computer:
--- Begin ---
@echo off
rem clearing the screen
cls
rem installing nvda using psexec on the remote machines. pcs.txt contains the list of machines
psexec -h -u "mydomain\myadminuser" -p mypassword @c:\nvdaupdate\pcs.txt "\\emsfi101\softwaredistribution$\nvda\installnvda.bat"
rem making a pause to view the output
pause
--- End ---
You can also log the output to a file when executing the updatenvda.bat script like that:
updatenvda.bat >> updatenvda.log
Should work.
pcs.txt is the list of pcs on which nvda should be installed:
--- Begin ---
mypc01 mypc02 mypc03 mypc04
--- End ---
Hope you find these scripts useful. Please read those scripts carefully and edit as needed.
Greetings, Simon _______________________________________________ Blind-sysadmins mailing list -- blind-sysadmins@lists.hodgsonfamily.org To unsubscribe send an email to blind-sysadmins-leave@lists.hodgsonfamily.org
_______________________________________________ Blind-sysadmins mailing list -- blind-sysadmins@lists.hodgsonfamily.org To unsubscribe send an email to blind-sysadmins-leave@lists.hodgsonfamily.org