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.
You will need the following software to proceed:
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.
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:
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.
.iso
and run ‘setup.exe
’
Installation
” > “New SQL Server stand-alone installation…
”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 autopopulated, enter the product key then Click ‘Next >
’Next >
’Use Microsoft Update to check for updates
’ checkbox, then click ‘Next >
’ to begin checking for, downloading and extracting any updatesInstall Rules
’ section, get everything to not fail and click ‘Next >
’Database Engine Services
” – you can leave these features on the %SystemDrive% – then click ‘Next >
’Named Instance
’ name to ‘Sims
’ or something else descriptive for easy management later, then click ‘Next >
’Server Configuration
’:
SQL Server Agent
” and “SQL Server Database Engine
” services, leaving “SQL Server Browser
” as ‘NT 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.Latin1_General_CI_AS
’. The ‘ci
’ 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 don’t suspect they hash the passwords, perhaps they encrypt them? I’m interested in trying this without the ‘ci
‘ to see if Sims breaks and passwords become case-sensitive. Or perhaps they just LOWER()
or UPPER()
them or something. If you know, let me know! Next >
’ once you’ve configured this section.Mixed Mode
” and insert a strong password
%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 the ‘Data root directory
’ on one (D:\
in my case), moving the ‘User database log directory
’ off onto another (E:\
in my case) – 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..vhdx
– a 100GB w/ 64KB allocation drive I can shrink (or grow? Yikes) later as required. Whilst it’s early days, I’ve yet to see this grow much. Currently sitting at about 10GB.G:\
in my case) as mentioned above, not the %systemdrive% and not the data or logs drive.F:\
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’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.
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)
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 directlySIMSApplicationSetup.exe
& SIMSSQLApplicationSetup.exe
Full Release
” that matches what’s running on the server and click ‘Extract
’SIMSSQLApplicationSetup.exe
on the new server
Next >
’C:\Program Files\Microsoft SQL Server\MSSQL11.SIMS\MSSQL\Binn
’ and click ‘Next >
’ then ‘Next >
’ againDBAttach
as admin
<current sims server hostname>\<instance name>
’sa
<sa password>
Detach
’, 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. Here’s how to do this:
D:\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)Tasks
” > “Take Offline
” – might take a while.
EXEC sp_who2
’ on the database via Microsoft SQL Server Management Studio to see what’s actively querying itbring online
“DBAttach
and click ‘Detach
’ – this again can take a while.sims.mdf
’ and ‘sims.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 laterDBAttach
on the new server as admin
<new server hostname>\sims
’sa
<sa password>
Attach a Detached Database
’, add sims
as the database name...
button and locate the database file you’ve copied over from the old serverAttach
’.mdf
and .ldf
files exist in the right directories, then you can go ahead and delete the copies you brought over from the old serverSIMS.ini
’ file in ’c:\windows
’ and add ‘SIMSSetupsDirectory=S:\Setups
’ to itSIMSApplicationSetup.exe
’ to install the Sims client
connect.ini
’ in ‘C:\Program Files (x86)\SIMS\SIMS .net
’ and add:[SIMSConnection]
Redirect=S:\
ServerName=.\sims
DatabaseName=sims
ConnectionType=Trusted
’ to the bottom of the file, too.The Sims.Net client should now log in, on the server at least! Test it and make sure accounts and data exist as expected.
.iso
dism /online /enable-feature /featurename:NetFx3 /all /source:d:\sources\sxs
(changing /source argument to reflect the location of the install media)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.cd
’ to the location of the installer.\SIMSDocumentServerInstaller.exe /INSTALL’
(this is case sensitive)Next >
’Next >
’HTTP
8080
Next >
’ and ‘Next >
’ againTools
> Setups
> Document Management Server
Server OK!
’, click ON then click SaveSims
if you followed the setup guide here exactly)SIMS
Directory from the old server to the new server, placing it inside the SQL Instance Name folder
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
To point your clients at the new database, you just need to update the connect.ini
file, located in the sims install directory on the workstations, to point at the new server. 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.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 traveler. 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.
Sims keeps some references to the server within the application itself, which will need to be updated. 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 been 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 and 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$
drive)Tools > School Setup > School Details
and set the EDI directories to reflect the new setup if requiredIf 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.
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
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!
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.
YhgH7Y2TCvtcdG53
– they publish this password publicly (with the right Google-Fu) so I assume I can too?)SOLUS3DeploymentServerDatabase.exe
<hostname>.<FQDN>/sims
) – click Test Connection to verify the details are accurateSOLUS3DeploymentService.exe
<hostname>.<FQDN>/sims
) – click Test Connection to verify the details are accurate52965
)Select...
to change it to the location of the required installer fileSOLUS3DeploymentServerUI.exe
<hostname>.<FQDN>/sims
) – click Test Connection to verify the details are accurateSOLUS 3 Deployment Server UI
from the start menu or the desktop
Establishment Number
and Postcode
of the school, then click Verify
Register
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 itSettings > SOLUS3
page to complete the SOLUS config:
sims$
folder for this) and click Validate
save
Environment
> Targets
> Servers
and click Add
sims
’ if you followed this guide)C:\Program Files\Microsoft SQL Server\MSSQL13.SIMS\MSSQL\Binn
’ if you followed this guide)Databases
’ tab and the ‘Services
’ tab, adding the ‘Sims File Server
’, pointing at the local location of the sims shared directorySettings
> SOLUS3
> SOLUS
and define any missing fields
SYSTEM
’ full access to the share and the directoryUpgrades
> Update Library
to see all your updatesEnvironment
> Configure Workstations
, then along the bottom select ‘sims.ini
’
ini files
” for example) and then create a new sims.ini
file.sims.ini
file on the old server to this new file, checking that the data in it is still accurateuse default
’connect.ini
’ tab along the bottom
connect.ini
’ fileoverwrite
’ and that the other options are accurate. I like to set the ConnectionType
to Trusted
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 (which are really just SQL) credentialsIf 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 deploy the 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 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.
SIMSApplicationSetup.exe
to the targetSIMSApplicationSetup.exe
file from the extracted files from SOLUS and place it in the PDQ repositoryFile Copy
‘ step in the PackageSIMSApplicationSetup.exe
file in the PDQ RepositoryC:\Temp\
connect.ini
connect.ini
file from the server or one of your working clients and copy it into the the PDQ repositoryFile Copy
‘ step in the Packageconnect.ini
file in the PDQ RepositoryC:\Program Files (x86)\Sims\Sims .net\
SIMS.ini
SIMS.ini
file from the server or one of your working clients and copy it into the the PDQ repositoryFile Copy
‘ step in the PackageSIMS.ini
file in the PDQ RepositoryC:\Windows\
pulsar.exe
pulsar.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 the Invalid Database
error, and just leave it. If we don’t kill pulsar.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, shooting pulsar.exe
in the head is enough.
Command
‘ step in the packagetasklist | find /i "pulsar.exe" && taskkill /im pulsar.exe /F
SIMSApplicationSetup.exe
via powershellPowershell
‘ step in the package& "C:\Temp\SIMSApplicationSetup.exe" /S {QuietMode} [SIMSDirectory]="\\<server FQDN>\Sims$" [SIMSDotNetDirectory]="C:|Program Files (x86)\SIMS\Sims .net\"
sims-server.internal.school.county.sch.uk
)Message
‘ step in the packageSims.Net is currently being upgraded. Please don't click OK on this message or open Sims.Net until this message disappears.
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. As mentioned at the top, if you notice any errors or have any recommendations, let me know.
Any noteworthy changes will be highlighted here if they happen!
None yet 🙂