You could do this in an even easier way by using Microsoft's new Msix repackager tool; a couple clicks, and you have a corporate-ready installer.
-----Original Message-----
From: Eigeldinger Simon
Sent: Thursday, October 04, 2018 10:29 AM
To: 'Blind sysadmins list'
Subject: [Blind-sysadmins] NVDA Updater Scripts for a corporate network
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