To install any software silently
Researching silent options is just a onetime effort for you and saves you lot of time. This script is useful for sys admins who prepare desktops, laptops or deploy servers.
.csv file contains data in comma separated values format and looks like this…
Installer,Switch
Firefox Setup 72.0.2.msi,/qn
AnyDesk.exe,–install “C:\Anydesk” –start-with-win –silent –create-shortcuts –create-desktop-icon
7z1900-x64.msi,/qn
Chef-client-15.7.32-1×64.msi,/qn
Npp.7.8.3.Installer.exe,/S
ChromeSetup.exe,/silent /Install
I have attached sample .csv and script file for your reference.
If you see above list of software, they all have different silent options, but even the script works like a charm.
####################################################################################
# Author: Charan Baisetty #
# Purpose : To silently install any software on windows #
# Description: Place csv and software files in a share, do research for your apps #
# silent options and add them to csv file. #
# Video for this script : www.youtube.com/c/netxopsvideos # ####################################################################################
$path = "\\server\softwares\"
$softwares = import-csv "\\server\softwares\pkgs.csv" -Delimiter "," -Header 'Installer','Switch' | Select-Object Installer,Switch
foreach($software in $softwares){
$softexec = $software.Installer
$softexec = $softexec.ToString()
$pkgs = Get-ChildItem $path$softexec | Where-Object {$_.Name -eq $softexec}
foreach($pkg in $pkgs){
$ext = [System.IO.Path]::GetExtension($pkg)
$ext = $ext.ToLower()
$switch = $software.Switch
$switch = $switch.Tostring()
if($ext -eq ".msi"){
mkdir c:\Temp\Softwares -Force
Copy-Item "$path$softexec" -Recurse c:\Temp\Softwares -Force
Write-host "Installing $softexec silently, please wait...." -foregroundColor Yellow
Start-Process "c:\Temp\Softwares\$softexec" -ArgumentList "$switch" -wait
Remove-item "c:\temp\softwares\$softexec" -Recurse -Force
Write-host "Installation of $softexec completed" -foregroundColor Green
}
else{
mkdir c:\Temp\Softwares -Force
Copy-Item "$path$softexec" -Recurse c:\Temp\Softwares -Force
Write-host "Installing $softexec silently, please wait...." -foregroundColor Yellow
Start-Process "c:\Temp\Softwares\$softexec" -ArgumentList "$switch" -wait -NoNewWindow
Remove-item "c:\temp\softwares\$softexec" -Recurse -Force
Write-host "Installation of $softexec completed" -foregroundColor Green
}
}
}