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
       
        }     
   
   
    }
}

Leave a Reply

Your email address will not be published. Required fields are marked *