In order to get around the issues with deployment using an MSP file, You can use a startup script to call the exe directly and utilize the xml config for additional parameters/ logging.
To start, create a share folder and put the Lync 2013 files in it. Make sure you give "domain computers" rights to read and write to this folder (write if you want logging) and give it both NTFS and Share permissions.
If you want logging (and you do), create a folder for the logs in the Install folder. I named mine InstallLogFiles
(yup, very creative).
In the installation folder, there is the lync.www
folder with the config.xml
file. Edit the file and include the following:
<Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" />
<Logging Type="standard" Path="\\SERVER\SHARE\InstallLogFiles" Template="%computername%-Install_Log.txt" />
<!-- <USERNAME Value="Customer" /> -->
<!-- <COMPANYNAME Value="MyCompany" /> -->
<!-- <INSTALLLOCATION Value="%programfiles%\Microsoft Office" /> -->
<!-- <LIS CACHEACTION="CacheOnly" /> -->
<LIS SOURCELIST="\\SERVER\SHARE" />
<DistributionPoint Location="\\SERVER\SHARE" />
<!-- <OptionState Id="OptionID" State="absent" Children="force" /> -->
<Setting Id="SETUP_REBOOT" Value="never" />
<!-- <Command Path="%windir%\system32\msiexec.exe" Args="/i \\server\share\my.msi" QuietArg="/q" ChainPosition="after" Execute="install" /> -->
You can change the other values as needed, but the lines with the \SERVER\SHARE\ should point to your installation folder.
Next, you will need a startup script to run on the workstations to call the installation. The following code and be edited as needed and saved as a .bat file. The file should then be added to a Group Policy as a startup script. To make deployment easier, you can scope the policy to only be readable by an AD group. You can then add the computers who should get the install to the AD group.
Code:
setlocal
REM *********************************************************************
REM Environment customization begins here. Modify variables below.
REM *********************************************************************
REM Get ProductName from the Office product's core Setup.xml file, and then add "office15." as a prefix.
set ProductName=Office15.LYNC
REM Set DeployServer to a network-accessible location containing the Office source files.
set DeployServer=\\SERVER\SHARE
REM Set ConfigFile to the configuration file to be used for deployment (required)
set ConfigFile=\\SERVER\SHARE\lync.WW\config.xml
REM Set LogLocation to a central directory to collect log files.
set LogLocation=\\SERVER\SHARE\InstallLogFiles
REM *********************************************************************
REM Deployment code begins here. Do not modify anything below this line.
REM *********************************************************************
REM Skip install if OS is not Win 7 or above
IF NOT "%ProgramFiles(x86)%"=="" (goto Office2013) else (goto XP)
:Office2013
REM Check to see if Office 2013 is installed, if so Exit
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Office15.PROPLUS
echo %date% %time% Checking if Office 2013 is installed code is %errorlevel%.>> %LogLocation%\%computername%.txt
if %errorlevel%==1 (goto ARP64) else (goto End)
REM Operating system is X64. Check if Lync is already installed in emulated Wow6432 uninstall key
:ARP64
reg query HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432NODE\Microsoft\Windows\CurrentVersion\Uninstall\%ProductName%
echo %date% %time% Checking if Lync is installed code is %errorlevel%.>> %LogLocation%\%computername%.txt
if %errorlevel%==1 (goto Office) else (goto End)
REM Check to see if Office 2013 is installed, if so Exit
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Office15.PROPLUS
echo %date% %time% Checking if Office 2013 is installed code is %errorlevel%.>> %LogLocation%\%computername%.txt
if %errorlevel%==1 (goto Office) else (goto End)
REM If 1 returned, the product was not found. Run setup here.
:Office
echo %date% %time% Deployment triggered on %computername%.>> %LogLocation%\%computername%.txt
start /wait %DeployServer%\setup.exe /config %ConfigFile%
echo %date% %time% Setup ended with error code %errorlevel%. >> %LogLocation%\%computername%.txt
exit
:XP
echo %date% %time% Machine is Windows XP - Exiting >> %LogLocation%\%computername%.txt
exit
REM If 0 or other was returned, the product was found or another error occurred. Do nothing.
:End
exit
Endlocal
The code above will check to see if the machine is XP, if it is exit/log.
Checks to see if Office 2013 is already installed, if so exit/log.
Checks to see if Lync 2013 Standalone is already install, if so exit.
If it's not, it kicks off the install and logs it's steps. The actual Software installation log will also exist and both are set to use the %computername%
variable to help trace issues.
I have deployed Lync to hundreds of machines this way, without issue.