In one of my past articles I presented Tablacus Explorer as an replacement for explorer.exe in Citrix Virtual Apps und Desktops (formerly XenApp) as a published application. With automation more and more being mandatory in IT projects, I needed a way to install Tablacus Explorer evergreen with PowerShell each and every time I deploy it to Windows Clients, RDSH, Citrix virtual apps or desktops or in MDT Task sequences. Once again I used one of Trond Eric Haavarstein example scripts and altered it to fit my needs. Here are the results.
# Tablacus Explorer modifications made by Marco Hofmann 2019 (https://www.meinekleinefarm.net/download-and-install-latest-tablacus-explorer) <# PowerShell Wrapper for MDT, Standalone and Chocolatey Installation - (C)2015 xenappblog.com Example 1: Start-Process "XenDesktopServerSetup.exe" -ArgumentList $unattendedArgs -Wait -Passthru Example 2 Powershell: Start-Process powershell.exe -ExecutionPolicy bypass -file $Destination Example 3 EXE (Always use ' '): $UnattendedArgs='/qn' (Start-Process "$PackageName.$InstallerType" $UnattendedArgs -Wait -Passthru).ExitCode Example 4 MSI (Always use " "): $UnattendedArgs = "/i $PackageName.$InstallerType ALLUSERS=1 /qn /liewa $LogApp" (Start-Process msiexec.exe -ArgumentList $UnattendedArgs -Wait -Passthru).ExitCode #> Clear-Host Write-Verbose "Setting Arguments" -Verbose $StartDTM = (Get-Date) # Tablacus specific commands # Ensures that Invoke-WebRequest uses TLS 1.2 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 $te = Invoke-WebRequest 'https://api.github.com/repos/tablacus/tablacusexplorer/releases/latest' | ConvertFrom-Json $url = "https://tablacus.github.io/TablacusExplorerAddons/te/te.zip" $Vendor = "Misc" $Product = "TablacusExplorer" $PackageName = "te" $Version = $te.tag_name $InstallerType = "zip" $Source = "$PackageName" + "." + "$InstallerType" $LogPS = "${env:SystemRoot}" + "\Temp\$Vendor $Product $Version PS Wrapper.log" $LogApp = "${env:SystemRoot}" + "\Temp\$PackageName.log" $Destination = "${env:programfiles}" + "\$Product\" #$UnattendedArgs = '/VERYSILENT /SUPPRESSMESSAGEBOXES /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS /NORESTART' #$UnattendedArgs = '/SP- /VERYSILENT /SUPPRESSMSGBOXES /CLOSEAPPLICATIONS /NORESTART' $ProgressPreference = 'SilentlyContinue' Start-Transcript $LogPS if ( -Not (Test-Path -Path $Version ) ) { New-Item -ItemType directory -Path $Version } Set-Location $Version Write-Verbose "Downloading $Vendor $Product $Version" -Verbose If (!(Test-Path -Path $Source)) { [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 Invoke-WebRequest -Uri $url -OutFile $Source } Else { Write-Verbose "File exists. Skipping Download." -Verbose } Write-Verbose "Starting Installation of $Vendor $Product $Version" -Verbose if (Get-Process 'te64.exe' -ea SilentlyContinue) {Stop-Process -processname te64.exe} Expand-Archive -Path $Source -DestinationPath $Destination Write-Verbose "Customization" -Verbose Write-Verbose "Stop logging" -Verbose $EndDTM = (Get-Date) Write-Verbose "Elapsed Time: $(($EndDTM-$StartDTM).TotalSeconds) Seconds" -Verbose Write-Verbose "Elapsed Time: $(($EndDTM-$StartDTM).TotalMinutes) Minutes" -Verbose Stop-Transcript
The latest version of this script can always be found over at my GitHub repository, check it out:
https://github.com/xenadmin/applications
Is there any way to publish the app so every time it launces its Vanilla? I am finding that it just remembers everything the user opened in tabs and if the user re-opens the explorer, we want it to default back to a specific starting point. (that we publish) I have tried disabling the Remember Addon however this did not seem to help.
Any thoughts?