Migrate Sims.Net Server
Posted on
Sims.Net is a very common and, in my opinion, a very badly written Management Information System used in the UK's lower education sector - primary and secondary schools. It's commonly used not because it's good, but because it was one of the few options many years ago and a huge number of schools just haven't bothered to move to something else. And I don't blame them, it's got a lot of history and data going back decades in that database. It's not an easy thing to migrate off of.
ESS, the (current) caretakers of Sims.Net, have recently changed their licensing model to seemingly prevent third parties from hosting Sims.Net data on behalf of a school. I admit, I don't know the details, but that's the message as I understand it.
It looks like due to this, and the EOL of Server 2012R2, many school techs and sysadmins across the UK will be scrambling to get Sims.Net installed on an on-prem server.
Unfortunately, documentation is sparse. It's a shame, but it costs a whole lot of cash to pay for third parties to do this for you. Right?
In the spirit of publishing guides for stuff organisations seemingly don't want guides published for I've written up a guide on installing or migrating Sims.Net (and the horrible, horrible SOLUS3) server/database, because I struggled to find any well written and up to date guides and had to figure it out myself recently.
So if you're looking to install or migrate Sims.Net, hop in and come for a ride. It's easier than you think! Until you get to SOLUS3. We won't be migrating that. But I'll go through how to install it fresh!
This is a fairly rough stream-of-consciousness guide based on internal documentation I use to migrate Sims - suggestions, advice and corrections are welcome. I will continue to refine this over time, noting any significant changes at the bottom of the article.
Ingredients
You will need the following software to proceed, as per the SIMS Minimum Hardware and Technical Roadmap documentation:
- Windows Server 2019 (with GUI)
- Microsoft SQL Server 2019
- Express: This is free. Useful for primaries or small secondaries. The only reason to move to Standard will be if your database is bigger than 10GB
- Standard: You need to pay for this. The only feature we need it for is if your Sims.Net database is bigger than 10GB in size.
- Sims.Net installer files (you can get these from your current SOLUS3 install by extracting the update that matches your currently running version of Sims)
- SOLUS3 installer files (linked below)
Note: This guide was written and tested on 7.210, the 2023 spring release, however I can't imagine it's any different for any other Sims.Net 7 release.
Installing Windows Server 2019
Set up a fresh Windows Server 2019, ideally in a VM, to be dedicated to the task of hosting Sims.Net. Given the common configuration of networks in schools I am assuming you're also joining this server to a Windows domain.
You will need to use the GUI, for SOLUS3, unfortunately. If anyone has got this working without the GUI, let me know.
Why 2019? Well, officially, it's the latest version of Windows Server that Sims.Net officially supports. Whilst I'm certain it'll run perfectly well on 2022, if you try it and need ESS help, the first thing they may say is “wrong OS, bye!” so we're playing it safe here.
Try to keep Sims.Net and SOLUS on a server dedicated to the task and not sharing roles with other stuff, except the very few sims data extractors that absolutely must be installed on the same server as the Sims database. (Many of these data extractors are bullshitting when they tell you they require this, by the way, but that's a tale for another post.)
You'll need a good amount of storage and RAM available, but requirements vary depending on workload.
According to Teh Intarwebs, the general recommendation is to use a fixed amount of RAM with MS SQL. You should allocate RAM by getting the database size, plus ram for the OS, plus growth. So if your Database is 20GB and you expect it to grow by, say, 4GB over the next few years, throw 32GB of ram in there. That'll give you 20GB for the database, plus 4GB for DB growth, plus 8GB for the OS and any work it, or applications on it, has to do. If you're doing this in a VM you can, of course, raise this much more easily later if and when needed.
Now... this may be overkill, but... create at least two but ideally five storage drives. If you can only create two, keep the OS and docstorage on one and the database stuff on the second. This guide will go through the creation of five of these drives as and when they're needed.
I will be using the following throughout this guide:
- C:\ - System - Windows and program files
- D:\ - Data - Database
- E:\ - Logs - SQL Logfiles
- F:\ - DocStorage - file storage
- G:\ - TempDB - SQL TempDB
Installing Microsoft SQL
Disclaimer: I am not a Database Admin, it's a form of advanced magic that my brain is not capable of retaining! So, if I haven't followed best practices here let me know and I'll research and correct.
- Download SQL Server
2016 SP3. The latest version of Sims that this guide was built with (Spring 2023, 7.210) only officially supports up to 2016 SP3EDIT 2023-10: Turns out this isn't accurate, the document I was using was out of date. SQL Server 2019 is supported (as per latest guidance, PDF warning) and in fact I recommend it as it will allow you to encrypt the SQL connections the Sims.Net client makes by default. SQL 2022 is still not supported, however it will be from the Spring/Autumn 2024 release. Whether you use Express (free) or Standard (which you need to pay for) depends on your usage requirements. Primarily for our use case, the major decider is how big the database will be. Typically (but verify this by checking your existing system requirements yourselves):- Primaries: Download SQL 2019 Express: https://www.microsoft.com/en-gb/download/confirmation.aspx?id=101064
- Secondaries: You may be able to get away with Express if your database is below - and not expected to exceed - 10GB in size. Otherwise, buy and download SQL Server 2019 Standard Edition
- Run the Express installer, or if using Standard, mount the
.iso
and runsetup.exe
- Express (verified with 2019):
- On the popup, select
Custom
- Select
Install
to download and run the installer files
- On the popup, select
- Select
Installation
>New SQL Server stand-alone installation...
- If you are using the Standard installer but only need express, with its associated limits (good enough for a primary in most cases) select the Express edition in the Specify a free edition dropdown, however if you need Standard or Enterprise, select the Enter the product key radio button and, if it's not auto-populated, enter the product key then Click
Next >
- Accept the product terms and click
Next >
- On Standard, it is strongly recommended that you select the
Use Microsoft Update to check for updates
checkbox, then clickNext >
to begin checking for, downloading and extracting any updates - On the
Install Rules
section, get everything to not fail and clickNext >
- On the Feature Selection window, select
Database Engine Services
and if it's selected automatically, untickMachine Learning Services and Language Extensions
- you can leave these features on the %SystemDrive% - then clickNext >
- Set a
Named Instance
name toSims
or something else descriptive for easy management later, then clickNext >
- In
Server Configuration
:- Accounts: it's generally recommended to create basic domain accounts for the
SQL Server Agent
andSQL Server Database Engine
services, leavingSQL Server Browser
asNT Authority\Local Service
, however the defaults do work fine in our use case.Grant Perform Volume Maintenance Task
should be unticked for a server hosting only Sims. It makes database creation faster but can result in data disclosure.- Collation: Leave as default
- The default is
Latin1_General_CI_AS
. Theci
bit indicating case-insensitiveness. I haven't dug into this but I'm wondering if this is this why Sims.Net passwords aren't case sensitive. I suspect they don't hash the passwords, perhaps they encrypt them? I'm interested in trying this without theci
to see if Sims breaks and passwords become case-sensitive. Or perhaps they justLOWER()
orUPPER()
them or something. If you know, let me know!
- The default is
- Click
Next >
once you've configured this section.
- Accounts: it's generally recommended to create basic domain accounts for the
- Database Engine Configuration:
- Server configuration: Select
Mixed Mode
and insert a strong password- Don't use a space in the password. SOLUS3 will happily use a password with a space... until you come to migrate the database and all of a sudden it won't like it any more in the password field in
Settings
>SOLUS3
>SOLUS
. Also, don't use more than 25 characters because some (but not all!) password fields you need later will only accept a max of 25 characters. And they don't tell you this. Yeah, welcome to SOLUS3.
- Don't use a space in the password. SOLUS3 will happily use a password with a space... until you come to migrate the database and all of a sudden it won't like it any more in the password field in
- Add any windows groups/accounts that you wish to be able to perform admin tasks on the database
- Data Directories: Although you can if you have no choice, you should not store any data on the
%SystemDrive%
(C:\
generally), you should instead store data on separate drives if possible. If you're using a VM like most of us are for this, create two new.vhdx
files with a 64KB allocation size and put theData root directory
andBackup Directory
on one (D:\
in my case, labelledData
and about 120GB in size), moving theUser database log directory
off onto another (E:\
in my case, labelledLogs
, 50GB in size) - if you are lucky enough to have the capacity you can store these extra.vhdx
files on different physical disks, or if you're not using a VM for the Sims server you could allocate separate drives. - TempDB:
- There is no general consensus on whether to store these files on separate disks, with data or with logs, as each situation is unique, but in the interest of squeezing out as much performance from the horribly slow Sims.Net as possible I'm opting to store them on what is now my fourth
.vhdx
- a 50GB w/ 64KB allocation drive I can shrink (or grow? Yikes) later as required, labelledTempDB
. Whilst it's early days, I've yet to see this grow much. Currently sitting at about 10GB. - Data Files:
- Number of files: Same as your number of logical/virtual processors, up to 8 max
- Initial Size & Autogrowth: This depends on the workload, but generally you want to increase these numbers from the defaults - each time the file has to grow it introduces some overhead so you don't want it to be too small, and at the same time you don't want to use up loads of space on disk that isn't being used. I'm using 1024MB for the initial size and 512MB autogrowth.
- Store these on a new drive (
G:\
in my case) as mentioned above, not the %systemdrive% and not the data or logs drive.
- Log Files:
- Initial size & Autogrowth: 512MB/256MB
- Storage: Same as the Data Files -
G:\
- There is no general consensus on whether to store these files on separate disks, with data or with logs, as each situation is unique, but in the interest of squeezing out as much performance from the horribly slow Sims.Net as possible I'm opting to store them on what is now my fourth
- Click
Next >
and if all the tests pass you should be able to review the install - if you're happy with the provided summary, click Install
- Server configuration: Select
- Express (verified with 2019):
- Once install is complete, install the SQL Server Management Tools which you can do from the
Installation
section of theSQL Server Installation Center
installer you probably still have open, or you can download the up to date version here: https://aka.ms/ssmsfullsetup - Reboot
Sims Migration & Installation
It's worth taking some time before the planned migration to audit any and all data extractor tools that pull data from Sims and sync it with another provider or database. These will all need to be touched or outright migrated, too. 9/10 times the support for the provider will do this for you, but they're generally pretty easy to move in my experience - Some, however, are not. A guide for another time, perhaps.
The migration process quickly takes Sims offline for everyone so schedule some downtime before you proceed to step 5 below. You can get up to that point beforehand however.
- Create a folder in the Storage drive called
Sims Shared Files
and share it (Sims$
), sharing with the appropriate ACL groups in place - whilst most staff probably won't need access, some will (cover, attendance, data manager, etc)- I suggest making three groups in AD,
ACL_Sims_Read
,ACL_Sims_Write
,ACL_Sims_Full
and giving these read, modify and full access as appropriate to the share and the folder. You can then easily give people the relevant access (read or write - Full should be reserved for sysadmins) later without making changes to the folder and files directly
- I suggest making three groups in AD,
- Create a folder on the
C:\
drive somewhere, like the desktop - it can all be deleted once we're done - Copy the installer files into this folder:
SIMSApplicationSetup.exe
&SIMSSQLApplicationSetup.exe
- If you don't have these, you can extract them from SOLUS3:
- Open
SOLUS3
on the old server Upgrades
>Update Library
- Select the latest
Full Release
that matches what's running on the server and clickExtract
- Select a location to drop the files, then copy them to the new server
- Open
- If you don't have these, you can extract them from SOLUS3:
- Run
SIMSSQLApplicationSetup.exe
on the new server- Click
Next >
- Select
Browse
to change the install location to the new SQL Server Binn folder, e.g.C:\Program Files\Microsoft SQL Server\MSSQL151.SIMS\MSSQL\Binn
and clickNext >
thenNext >
again
- Click
- On the old server, run
DBAttach
as admin- Server Name:
<current sims server hostname>\<instance name>
- Username:
sa
- Password:
<sa password>
- Click
Connect
- In the
Detach a Database
section, select the relevant Sims database... Don't clickDetach
, just hold there for a moment... I've had issues with things using the database which prevents DBAttach from working - whilst I haven't figured out a nice way to work around this, I do have a dirty way of resolving it - take the database offline, then bring it online again. If you try to detach the database here and nothing happens for 10 minutes+, here's how to encourage it in a way that will probably make DBAs shudder:- Open
Microsoft SQL Server Management Studio
- Log in
- Right click the relevant Sims database and select
Properties
- Click
Files
and copy the location of the database file (it'll be something likeD:\Administration\Server Applications\MS SQL Server 2012\MSSQL11.SIMS2012\MSSQL\DATA
) - keep this for later (check that the.ldf
file and the.mdf
file are in the same folder, if they are different take note of both locations) - Close the properties, then right click the relevant Sims database and select
Tasks
>Take Offline
- might take a while.- If this doesn't work within 5 minutes, you'll likely need to stop any sync tools running on the server/database. You can execute
EXEC sp_who2
on the database via Microsoft SQL Server Management Studio to see what's actively querying it
- If this doesn't work within 5 minutes, you'll likely need to stop any sync tools running on the server/database. You can execute
- Right click the same database again once it's offline, and select
bring online
- When this has finished, quickly go back to
DBAttach
and clickDetach
- this again can take a while.
- Open
- Server Name:
- Open the data directory you grabbed earlier containing the now-detached sims database
- Copy both the
sims.mdf
andsims.ldf
files to the new server, feel free to put them in the root of the data drive or something, these copies will be deleted later - Run
DBAttach
on the new server as admin- Server Name:
<new server hostname>\sims
- Username:
sa
- Password:
<sa password>
- Click
Connect
- Under
Attach a Detached Database
, addSims
as the database name - Select the
...
button and locate the database file you've copied over from the old server - Click
Attach
- If you get an error here about missing files, odds are your database files are named differently (for example,
sims.mdf
&sims_log.ldf
) - just rename them so they're both the same, the only difference being the file extension (.mdf
and.ldf
)
- If you get an error here about missing files, odds are your database files are named differently (for example,
- Once this is done, check the DB
.mdf
and.ldf
files exist in the right directories, then you can go ahead and delete the copies you brought over from the old server
- Server Name:
- Edit the
SIMS.ini
file inc:\windows
and addSIMSSetupsDirectory=S:\Setups
to it - Run
SIMSApplicationSetup.exe
to install the Sims client- Install with the defaults
- Create
connect.ini
inC:\Program Files (x86)\SIMS\SIMS .net
and add:[SIMSConnection]
ServerName=.\sims
DatabaseName=sims- Optionally, if you log in to Sims with windows accounts instead of Sims/SQL ones, which I advise, add
ConnectionType=Trusted
to the bottom of the file, too.
- Optionally, if you log in to Sims with windows accounts instead of Sims/SQL ones, which I advise, add
The Sims.Net client should now log in, on the server at least! Test it and make sure accounts and data exist as expected. If, however, you find that you cannot log in via Sims.Net itself (sometimes the database import/export goes a bit wrong, or you've not been given any account details from the previous provider) you can easily reset the built in sysman account by following this guide.
ESS recommend setting the database Compatibility level
to SQL Server 2012 (110)
. I haven't tested the difference in much depth, but a cursory anecdotal glance at this resulted in no discernable difference in performance. If you wish to do this:
- On the new server, open
SQL Management Studio
- Expand
Databases
in the Object Explorer - Right click on the Sims database and select
Properties
- Select the
Options
page - Change the
Compatibility level
dropdown toSQL Server 2012 (110)
- Click
OK
DocStorage
- On the new server, .NET 3.5 is required
- Mount the OS
.iso
- Open cmd/Powershell as admin
- Run
dism /online /enable-feature /featurename:NetFx3 /all /source:d:\sources\sxs
(changing the/source
argument to reflect the location of the install media)
- Mount the OS
- Copy
SIMSDocumentServerInstaller.exe
from the old server (likely in.\sims\setups\
to the new server - the version you have will likely be old,but as far as I can tell it's been the same version since at least 2009?! Version 1.580.12.0 is the newest I've seen - if you know different, let me know.the newest I have seen is1.580.99.1
. - Open cmd/powershell as admin
cd
to the location of the installer- Run
.\SIMSDocumentServerInstaller.exe /INSTALL
(this is case sensitive) - Click
Next >
- Select an appropriate install location - installing to the c:\ drive is fine as this is just the application not the actual storage location - then click
Next >
- Select a document store and a backup location - This should be on a separate DOCSTORAGE drive you've created (
F:\
, default allocation size, labelledDocStorage
), or on the C:\ drive if preferred- The backup folder can live inside the docstorage directory
- Communication Protocol:
HTTP
- Port:
8080
- Click
Next >
andNext >
again - Once installed, log in to Sims as an admin
- Go to
Tools
>Setups
>Document Management Server
- Remove any existing Document servers and click
Add
- Enter a description and the FQDN of the Document Server
- Test the connection
- If you see a popup saying
Server OK!
, clickOK
then click Save - Navigate to the DOCSTORAGE location on the filesystem
- Add a new folder, name it the hostname of the Document Server
- Add a new folder inside that folder, name it the SQL Instance name (
Sims
if you followed the setup guide here exactly) - On the old server, navigate to the original DOCSTORAGE folder and go through the following directories:
<hostname>
><SQL instance name>
- Copy the
SIMS
Directory from the old server to the new server, placing it inside the<SQL instance name>
folder- This might take a while - you can proceed with the SOLUS3 migration below if you wish, just try to not interrupt network or reboot prior to the data transfer completing
Here's a robocopy command you can run to move the data a bit faster than explorer can manage it. Google the parameters used to make sure you're happy with them, and adjust source/destinations as required:robocopy "\\oldSimsServer.fqdn\e$\sims shared drive\docstorage\oldserver\oldinstance" "\\newserver\e$\sims shared drive\docstorage\newserver\newinstance" /mt:16 /MIR /copy:DT /ZB /FFT /R:10 /W:5 /dcopy:D
- This might take a while - you can proceed with the SOLUS3 migration below if you wish, just try to not interrupt network or reboot prior to the data transfer completing
- Test from the Sims client on the server
Sims.Net Clients
Getting the client to work on network devices is generally fairly easy, but sometimes you can hit errors when you try logging in from a client workstation. The most common error I've come across is SIMS Connection failed for Login <username>, reason: 0
which is incredibly vague but essentially means “I can't see the database!” - why, that depends, but typically it's some kind of network or connectivity issue.
Check the following on the server to increase your chances of clients working right away. Note that sometimes you won't need to do all of these and some may be already set up.
- Log on to the new Sims server
- Open
SQL Server 2019 Configuration Manager
- Select
SQL Server Services
on the left - Find the
SQL Server Browser
service - If the
Start Mode
isDisabled
or the service is not running, right click it and go toProperties
- Set the
Startup type
toAutomatic
- Start the service by right clicking
SQL Server Browser
and selectingStart
- Expand
SQL Server Network Configuration
>Protocols for <InstanceName>
on the left - Double-click on
TCP/IP
- In the
Protocol
tab, changeEnabled
toYes
Apply
&OK
- Select
SQL Server Services
on the left - Restart the
SQL Server (<InstanceName>)
service by right clicking on it and selectingRestart
- Expand
SQL Server Network Configuration
>Protocols for <InstanceName>
on the left - Double-click on
TCP/IP
- In the
IP Addresses
tab, scroll down the bottom and make a note of theTCP Dynamic Ports
value then close this window - Allow the port you've obtained from the
SQL Server 2019 Configuration Manager
step in the server firewall - don't forget to open any other required SQL ports (like 1433/tcp)
To point your clients at the new database location, you just need to update the connect.ini
file the clients use. I opt to store the required configuration in the connect.ini
file located in the Sims.Net install directory on the local machine instead of redirecting to a connect.ini
file on a network location.
The important lines to update are the ServerName
value, which should be the server name FQDN followed by the instance name (eg: SIMS-SERVER.internal.school.county.sch.uk\Sims
), and if needed update the DatabaseName
value to match the name of the database itself (eg: sims
).
The official recommendation is to use SOLUS3 to deploy these files as well as client updates. However, as we all know, SOLUS3 sucks. So let's not bother using it (for clients). I instead set up a group policy object that writes both the connect.ini
file and the sims.ini
file to the applicable user devices. Just update the connect.ini
file centrally, then force a gpupdate across your devices that have Sims.Net installed already. I also deploy these files as part of the PDQ Deploy deployment, which we'll cover later.
Hopefully Sims.Net is working for your users now. You can rest for a moment, weary traveller. The maintenance period can be over now. People can start using Sims again. Aside from a few things you should get to fairly quickly, outlined in the next section, SOLUS3 server will be needed, and you need to think about deploying updates, but these can wait at least a little while. Unless you have an update you need to roll out right away, of course.
Post-Install setups
Despite working now, some areas of Sims will eventually crop up with new errors, especially in secondaries.
Sims keeps some references to the server within the application itself rather than centrally on the database (why?!) which will need to be updated manually. You'll also note that as part of this migration, we haven't copied any of the files from the old Sims shared drive. There's a good reason for this - every Sims shared drive I've seen has either been completely unused, or full of stuff that, it turns out, isn't actually needed. I've only ever seen it mapped to all staff as a network drive write all staff having write access and as a result is used as a bit of a dumping ground.
There are also some directories that some of your users are probably used to using that may no longer exist in the new shared drive. This guide should get you 98% of the way to a fully functional Sims migration without expensive third party contractors... but it's these little obscure use cases that will catch you out! If you identify any additional areas where things are hardcoded or directories are needed, let me know and I'll get them added to this section.
Here are the ones I know about:
Sims Examination Organiser
- Open Examination Organiser
- Set the new folder structure if it complains it can't find the right folders (ideally use the shared
Sims$
drive) - Go to
Tools
>School Setup
>School Details
and set the EDI directories to reflect the new setup if required
Cover
If you publish your cover timetable to HTML, you'll need to update the destination that these files save to if they used to save to the old Sims server.
You can do this through: Tools
> Cover
> Global Settings
- section 3.
Sims Attendance Letters
If these are suddenly missing for your attendance team they will need to be located on the old server and copied across to the new one. Typically, these are found in:
S:\Sims\Attend
Running Sims on a workstation after an update and it keeps trying to install a bunch of stuff!
Odds are you have installer files in the location indicated by the SIMSSetupsDirectory=
line in C:\Windows\Sims.ini
. You don't need any of them. Delete them, move them, keep them elsewhere.
The only additional file you might want to install alongside SimsApplicationInstaller.exe
is SimsManualInstaller.exe
, which just extracts the manuals (the .pdf file user guides) to the workstation. But I haven't bothered with it!
SOLUS3 - unfortunately, it does make some stuff easier
Yes, we hate it, but it is convenient to have for getting update files and updating the server itself. At least, in order to do it more smoothly than a manual upgrade. If you're not lucky enough to have an application deployment tool like PDQ Deploy you will have a better time installing SOLUS3 in order to keep your clients up to date, too.
Whilst it is in theory possible to migrate SOLUS3 from an old server to a new one, I have only been able to successfully do this once. Each of the failed attempts failed for a different reason which often defied logic. So I just don't bother and install it fresh.
Install SOLUS3
- Download the installer from dl.sims.co.uk (the password for 3.12.72, the version linked to, is currently
YhgH7Y2TCvtcdG53
- they publish this password publicly (with the right Google-Fu) so I assume I can too?) - Extract all files
- Run
SOLUS3DeploymentServerDatabase.exe
- Install the required prerequisites
- Input the SQL Server and sa account details (SQL server =
<hostname>.<FQDN>/sims
) - clickTest Connection
to verify the details are accurate - The next window offers to set up a new SQL account just for Solus - this is a good idea, so generate a new account here. Record the details in your password manager.
- Install
- Run
SOLUS3DeploymentService.exe
- Install any prerequisites
- Input the SQL Server and sa account details, NOT the solus3 user created previously (SQL server =
<hostname>.<FQDN>/sims
) - click Test Connection to verify the details are accurate - Leave deployment port as the default (
52965
) - If you extracted all files at the start of this SOLUS3 installation process, the Setup File Path for .NET Framework should be accurate. If not, hit
Select...
to change it to the location of the required installer file - The install location can be the default or change it to the storage drive if preferred
- Install!
- Run
SOLUS3DeploymentServerUI.exe
- Install any prerequisites
- Input the SQL Server and sa account details, This CAN be the solus3 database user created previously but I have experienced some flakiness with this on occasion and now have reverted to just using the sa account here (SQL server =
<hostname>.<FQDN>/sims
) - click Test Connection to verify the details are accurate - Specify if you want any icons to be generated on the desktop/etc for the application
- The install location can be the default or change it to the storage drive if preferred - ideally put it in the same place as the previous install if you're also installing it on the same machine
- Install!
SOLUS3 Configuration
- Run
SOLUS 3 Deployment Server UI
from the start menu or the desktop- Enter the
Establishment Number
andPostcode
of the school, then clickVerify
- Once the school Address is populated, click
Register
- You'll be asked for a
Registration Password
- This would have been set on the previous install so you may need to get this from your current support provider or ESS directly if you don't have it
- Enter the
- Once registered you'll be taken to the
Settings > SOLUS3
page to complete the SOLUS config:- Service host: click the dots and move the server into the right column
- Update repository (I create a directory, '
Solus3Setups
' in the sharedsims$
folder for this and share it as 'Solus3Setups$
' - You will need to give 'SYSTEM
' write access to the share) and clickValidate
- Click
save
- Next, go to
Environment
>Targets
>Servers
and clickAdd
- Server name: Find and select the new server
- Instance name: SQL instance name here (
sims
if you followed this guide) - Binn folder: paste the location of the Sims Binn folder here (
C:\Program Files\Microsoft SQL Server\MSSQL15.SIMS\MSSQL\Binn
if you followed this guide) - Click save and enter admin credentials to save the config
- Do the same but for the
Databases
tab and theServices
tab, adding theSims File Server
, pointing at the local location of the Sims shared directory (E:\Sims
for example)- You might want to do the DMS (DocumentManagementServer) too, in which case you should make a new Sims account with
Returns Manager
andSystem Manager
permissions
- You might want to do the DMS (DocumentManagementServer) too, in which case you should make a new Sims account with
- Navigate to
Settings
>SOLUS3
>SOLUS
and define any missing fields - Navigate to
Upgrades
>Update Library
to see all your updates - Try downloading the version of Sims that matches the one running on clients
- Navigate to
Environment
>Configure Workstations
, then along the bottom selectsims.ini
- In the shared directory, create a new folder (
ini files
for example) and then create a newsims.ini
file. - Copy the config from the old
sims.ini
file on the old server to this new file, checking that the data in it is still accurate - Select this file in SOLUS, leaving the two installation options as
use default
- In the shared directory, create a new folder (
- In the same Configure Workstations window, select the
connect.ini
tab along the bottom- In the shared directory, create a new
connect.ini
file - Populate this file with the relevant data - if you have working clients, just grab a copy from one of them
- Select this file in SOLUS, ensuring that you
overwrite
and that the other options are accurate. I like to set theConnectionType
toTrusted
because by default, SQL authentication isn't as secure as Windows and this gives clients the option of logging in with their Windows session instead of relying on remembering/recording separate Sims credentials- To set up an account to log in with the Windows credentials instead of needing to supply a username password combo, just change the username in System Manager to be
<domain>\<username>
(eg:internal.school\jsmith
) and the interface will update
- To set up an account to log in with the Windows credentials instead of needing to supply a username password combo, just change the username in System Manager to be
- In the shared directory, create a new
- Turn on Solus by clicking the 'Off' toggle in the top right into the 'On' position. Add a couple test endpoints to begin deploying SOLUS agent and the current version of Sims
If at this point it works, you should be golden. If you need to deploy the SOLUS3 agent out to your workstations, do this now, however if you want to avoid the slowness of SOLUS3 and deploy the Sims.Net client via PDQ Deploy...
Deploy Sims.Net Client via PDQ Deploy
Say “No!” to SOLUS3 for client updates and use PDQ Deploy instead. I use this, and it cuts down our large-school-wide Sims upgrades from 3+ hours (with inevitable client issues) to being complete in less than 30 minutes.
I am using a licensed version of PDQ Deploy which makes this easier (multiple steps in a deployment! Retry queue! Yay!) but you could replicate it with the free version easily - just cut down on the steps to one job for deploying the file (which you do ahead of time) and a second to actually execute the powershell that runs the upgrade. You might need to get creative with how you do this on the free version. Once I can get at a license-free copy of PDQ I'll figure out the best path to achieving this.
There are some odd looking steps here - as we go I'll explain the reasoning for each.
Setting up the PDQ Package
- Open PDQ Deploy
- Create a new deployment and name it appropriately
- Step 1: Copying
SIMSApplicationSetup.exe
to the target
Yeah, but why? Due to the way we need to execute this file to initiate the install, we copy it to the target first.- Pull the
SIMSApplicationSetup.exe
file from the extracted files from SOLUS and place it in the PDQ repository - Create a
File Copy
step in the Package - Single File selected
- Source: Select the
SIMSApplicationSetup.exe
file in the PDQ Repository - Target Folder: Anywhere, I will use
C:\Temp\
- Overwrite Existing Files: Tick
- Ignore Overwrite Errors: Untick
- Pull the
- Step 2: Copy
connect.ini
Yeah, but why? SOLUS3 deploys this usually, but we're not using that! You can also deploy the connect.ini file via Group Policy but this covers the “new device build” use case- Pull the
connect.ini
file from the server or one of your working clients and copy it into the the PDQ repository - Create a
File Copy
step in the Package - Single File selected
- Source: Select the
connect.ini
file in the PDQ Repository - Target Folder:
C:\Program Files (x86)\Sims\Sims .net\
- Overwrite Existing Files: Ticked
- Ignore Overwrite Errors: Ticked
- Pull the
- Step 3: Copy
SIMS.ini
Yeah, but why? Same reason as the previous step!- Pull the
SIMS.ini
file from the server or one of your working clients and copy it into the the PDQ repository - Create a
File Copy
step in the Package - Single File selected
- Source: Select the
SIMS.ini
file in the PDQ Repository - Target Folder:
C:\Windows\
- Overwrite Existing Files: Ticked
- Ignore Overwrite Errors: Ticked
- Pull the
- Step 4: Kill
pulsar.exe
Yeah, but why? If a target is runningpulsar.exe
- the main sims executable - sims will think it has updated but some files will be locked, so we kill it just before executing the upgrade. I see lots of people try and log in, see theInvalid Database
error, and just leave it. If we don't killpulsar.exe
the upgrade will report as successful but will never truly succeed for that target. You may want to add additional.exe
's here as you find them (please tell me about that) but for 99% of cases, shootingpulsar.exe
in the head is enough.- Create a
Command
step in the package - Paste the following into the Details tab text box:
tasklist | find /i "pulsar.exe" && taskkill /im pulsar.exe /F
Yeah, but why? We don't just runtaskkill /im puslar.exe /f
on its own because ifpulsar.exe
isn't running when we try totaskkill
it is considered a failure and will seterrorlevel
to1
, which PDQ will interpret as a fail. By executing the command in this way - passing piped output fromtasklist
- we never hiterrorlevel
1
whether the task exists to be killed or not, becausetasklist
doesn't set an exit code, so PDQ is happy either way and will just continue on its merry way with the next step!
- Create a
- Step 5: execute
SIMSApplicationSetup.exe
via powershell
Yeah, but why? When I execute the install directly via the PDQ agent, about 15-20% of installs fail - no data gets written to the drive at all. I have no idea why this happens right now, but making powershell execute the same command results in 100% success rate (so far). It also has another advantage - typically PDQ will wait for a step to complete before moving on. If you launch the installer via powershell, the step according to PDQ is “run this powershell command” - once it's done that, PDQ will proceed to the next step, even though the installer has only just launched and probably hasn't started actually upgrading any files. The result of this small change is that you power through your PDQ Deploy queue way faster than if you had to wait for the installer to finish each time. Clients get their update faster and can get back to their jobs with way less friction and waiting around.- Create a
Powershell
step in the package - Paste the following into the Details tab text box onto a single line - note the ampersand (
&
) at the start:& "C:\Temp\SIMSApplicationSetup.exe" /S {QuietMode} [SIMSDirectory]="\\<server FQDN>\Sims$" [SIMSDotNetDirectory]="C:\Program Files (x86)\SIMS\Sims .net\"
- Make sure you change
<server FQDN>
in the above command to the hostname and domain of the server (eg:sims-server.internal.school.county.sch.uk
)
- Make sure you change
- Create a
- Step 6: Display install notification
Yeah, but why? This simply informs the user that the install is happening so they hopefully don't open the Sims application and break the upgrade. Staff may see Sims close (as part of a previous step) and try to re-open it, breaking the upgrade. You could display this message before executing the installer file rather than after if you prefer.- Create a
Message
step in the package - Type in a suitable message to display to users, something like:
Sims.Net is currently being upgraded. Please don't click OK on this message, or open Sims.Net, until this message disappears.
- Show for: 240 seconds
Yeah, but why? The install will (should?) never take this long, but I'm accounting for edge cases and older hardware. A fresh install of Sims will take longer than an upgrade, as an upgrade only writes changed files and skips files that are the same. - Wait for user to click OK: Unticked
- Create a
Deploy this to a client or two and verify that it works.
When it comes to rolling out a version upgrade, you just need to extract the files from SOLUS3 and overwrite the SIMSApplicationSetup.exe
file in the PDQ repository, then push out the update to all your client devices. Easy.
Patches are a bit different - they are typically just self extracting executables which replace a few files in the Sims directory. These can be easily deployed with the File Copy package step in PDQ. Just throw together another package or add it as a step to the existing upgrade package as required.
Hope this helps speed your deployments up!