Hard code your details into the MSI

Hi All,

I’m posting this in case someone else is in the same boat as me. I needed this god-awful software (which has no command line options) to have hardcoded details so I didn’t have to configure them at a later date.

Here’s a rundown of how you can do this too!

(Note the date as I am unlikely to ever update this, if method no longer works, I apologise for getting your hopes up)

Software Needed:

  • 7Zip
  • Some form of text editor
  • InstallShield 2022 (30-day trial)

Steps:

(I suggest putting your MSI into a new folder just to make everything contained)

  1. Open 7Zip and navigate to the folder containing your MSI file
  2. Highlight the msi and extract contents.
  3. Still within 7Zip navigate into the extracted msi folder
  4. Look for the “default.config” file, you’re going to want to open that in your favourite text editor/IDE
  5. inside the XML file insert your details into the “ServerKey” and “serverUri” fields, and save this file to the root folder, ready for insertion. (DO NOT RENAME IT)
  6. Open up InstallShield 2022
  7. Click ‘open’ and navigate to the original MSI (the one you unzipped)
  8. In the side menu navigate to Organization > Components
  9. You should see a long list of Components in the middle column, locate “XiboClient.exe.config” inside you will find “Files”
  10. With Files selected the 3rd panel will no display all of the files associated with this component.
  11. Right click on the panel and select “Add File…” From here find your edited config file, a new window will pop-up select “In a new CAB file” and tick "Stream CAB into the Windows Installer Package.
  12. Hit Run up the top and it will all get packaged back up and it will try to install on your system, I would suggest installing and confirming that it has worked by checking your %APPDATA% folder where Xibo stores the config file.

Yes, in hindsight. I read a support article that suggested Xibo staff can hardcode the details for you. But I don’t wait on anyone.

1 Like

Thanks for posting your method, I’m sure others will find it useful. I’ll make a note to look at adding some command line options to the installer and update here when that becomes available.

I went about it another way. I image our systems and have the system run this powershell script prior to first login but after the Xibo windows client is installed.

Be aware, there is no error catching and it must be run before the client runs the first time. When the client runs, it uses the defaults stored in C:\Program Files (x86)\Xibo Player\default.config.xml to create the config file.

The script also creates and gives full control to local windows users of the xibo library folder.

Hope this helps some of you.

# Modifies Xibo player defaults

# The XML entries requiring change:
# <ApplicationSettings>
#    <ServerKey>[your-server-key]</ServerKey>
#    <DisplayName>[Computer Name]</DisplayName>
#    <ServerUri>[Xibo Server]</ServerUri>
#    <SplashOverride>[Alternative splash image]</SplashOverride>
#    <LibraryPath>C:\XiboLibrary\</LibraryPath>
# </ApplicationSettings>

$xibodefaultconfigfile = "C:\Program Files (x86)\Xibo Player\default.config.xml"
$xibolibrarypath = "C:\XiboLibrary\"

# Check Xibo Library path exists
if (!(Test-Path($xibolibrarypath))) {
    # Create folder
    New-Item -ItemType Directory -Path $xibolibrarypath
}

# Set permissions for Xibo Library to allow local users full control

# Get the Access Control List (ACL) for the directory
$acl = Get-ACL -Path $xibolibrarypath

# Create a new rule to grant full control to the local Users group
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Users", "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")

# Add the rule to the ACL
$acl.AddAccessRule($rule)

# Set the modified ACL back to the directory
$acl | Set-Acl -Path $xibolibrarypath

# Download Splash image
$ImageURL = '[Splash URL download]'
$ImageDestinationFolder = "C:\Windows\Web\Screen"
$image = Join-Path -Path $ImageDestinationFolder -ChildPath "Xibo-Splash.png"
Start-BitsTransfer -Source $ImageURL -Destination "$image"

# Edit XML
[xml]$xmlDoc = Get-Content $xibodefaultconfigfile

$xmlDoc.ApplicationSettings.ServerKey = "[your-server-key]"
$xmlDoc.ApplicationSettings.DisplayName = $env:COMPUTERNAME
$xmlDoc.ApplicationSettings.ServerUri = "http://[Xibo Server]/"
$xmlDoc.ApplicationSettings.SplashOverride = "$image"
$xmlDoc.ApplicationSettings.LibraryPath = "$xibolibrarypath"

$xmlDoc.save($xibodefaultconfigfile)
1 Like

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.