Migrate Sims.Net Server
2023-10-12 17:35:36 Author: fyr.io(查看原文) 阅读量:9 收藏

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.

Ingredients

You will need the following software to proceed:

  • Windows Server 2019 (with GUI)
  • Microsoft SQL Server 2016
    • 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.

  1. 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 SP3. Yay, abandonware! 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):
    1. Primaries: Download SQL 2016 SP3 Express: https://www.microsoft.com/en-us/download/details.aspx?id=103447 
    2. 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 2016 Standard Edition with SP3 (note the “with”)
  2. Mount the .iso and run ‘setup.exe
    1. Select “Installation” > “New SQL Server stand-alone installation…
    2. If you 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 autopopulated, enter the product key then Click ‘Next >
    3. Accept the product terms and click ‘Next >
    4. It is strongly recommended that you select the ‘Use Microsoft Update to check for updates’ checkbox, then click ‘Next >’ to begin checking for, downloading and extracting any updates
    5. On the ‘Install Rules’ section, get everything to not fail and click ‘Next >
    6. On the Feature Selection window, select “Database Engine Services” – you can leave these features on the %SystemDrive% – then click ‘Next >
    7. Set a ‘Named Instance’ name to ‘Sims’ or something else descriptive for easy management later, then click ‘Next >
    8. In ‘Server Configuration’:
      1. Accounts: it’s generally recommended to create basic domain accounts for the “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.
        1. 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.
        2. Collation: Leave as default
          • The default is ‘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!
        3. Click ‘Next >’ once you’ve configured this section.
    9. Database Engine Configuration:
      1. Server configuration: Select “Mixed Mode” and insert a strong password
        1. 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”. Fuck SOLUS. Also, don’t use more than 25 characters because some password fields you need later will only accept a max of 25 characters. Yeah, fuck SOLUS3 again.
      2. Add any windows groups/accounts that you wish to be able to perform admin tasks on the database
      3. 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 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.
      4. TempDB:
        1. 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 eeking 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 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.
        2. Data Files:
          1. Number of files: Same as your number of logical/virtual processors, up to 8 max
          2. 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.
          3. Store these on a new drive (G:\ in my case) as mentioned above, not the %systemdrive% and not the data or logs drive.
        3. Log Files:
          1. Initial size & Autogrowth: 512MB/256MB
          2. Storage: Same as the Data Files – F:\
    10. 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’
  3. Once install is complete, install the SQL Server Management Tools which you can do from the “Installation” section of the “SQL Server Installation Center” installer you probably still have open, or you can download the up to date version here: https://aka.ms/ssmsfullsetup 
  4. 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.

  1. 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)
    1. 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
  2. Create a folder on the C:\ drive somewhere
  3. Copy the installer files into this folder: SIMSApplicationSetup.exe & SIMSSQLApplicationSetup.exe
    1. If you don’t have these, you can extract them from SOLUS3:
      1. Open SOLUS3 on the old server
      2. Upgrades > Update Library
      3. Select the latest “Full Release” that matches what’s running on the server and click ‘Extract
      4. Select a location to drop the files, then copy them to the new server
  4. Run SIMSSQLApplicationSetup.exe on the new server
    1. Click ‘Next >
    2. Select to install to the new SQL Server Binn folder, e.g. ‘C:\Program Files\Microsoft SQL Server\MSSQL11.SIMS\MSSQL\Binn’ and click ‘Next >’ then ‘Next >’ again
  5. On the old server, run DBAttach as admin
    1. Server Name: ‘<current sims server hostname>\<instance name>
    2. Username: sa
    3. Password: <sa password>
    4. Click Connect
    5. In the Detach a Database section, select the relevant sims database… Don’t click ‘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:
      1. Open Microsoft SQL Server Management Studio
      2. Log in
      3. Right click the relevant sims database and select Properties
      4. Click Files and copy the location of the database file (it’ll be something like ‘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)
      5. Close the properties, then right click the relevant sims database and select “Tasks” > “Take Offline” – might take a while.
        1. 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
      6. Right click the same database again once it’s offline, and select “bring online
      7. When this has finished, quickly go back to DBAttach and click ‘Detach’ – this again can take a while.
  6. Open the data directory you grabbed earlier containing the now-detached sims database
  7. Copy both the ‘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 later
  8. Run DBAttach on the new server as admin
    1. Server Name: ‘<new server hostname>\sims
    2. Username: sa
    3. Password: <sa password>
    4. Click Connect
    5. under ‘Attach a Detached Database’, add sims as the database name
    6. select the ... button and locate the database file you’ve copied over from the old server
    7. Click ‘Attach
    8. 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
  9. Edit the ‘SIMS.ini’ file in ’c:\windows’ and add ‘SIMSSetupsDirectory=S:\Setups’ to it
  10. Run ‘SIMSApplicationSetup.exe’ to install the Sims client
    1. Install with the defaults
  11. Create ‘connect.ini’ in ‘C:\Program Files (x86)\SIMS\SIMS .net’ and add:
    [SIMSConnection]
    Redirect=S:\
    ServerName=.\sims
    DatabaseName=sims
    1. 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.

The Sims.Net client should now log in, on the server at least! Test it and make sure accounts and data exist as expected.

DocStorage

  1. On the new server, .NET 3.5 is required
    1. Mount the OS .iso
    2. Open cmd/Powershell as admin
    3. Run dism /online /enable-feature /featurename:NetFx3 /all /source:d:\sources\sxs (changing /source argument to reflect the location of the install media)
  2. 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.
  3. Open cmd/powershell as admin
  4. cd’ to the location of the installer
  5. run ‘.\SIMSDocumentServerInstaller.exe /INSTALL’ (this is case sensitive)
  6. Click ‘Next >
  7. 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 >
  8. Select a document store and a backup location – This should be on the DOCSTORAGE drive you’ve created, or on the C:\ drive if preferred
    1. The backup folder can live inside the docstorage directory
  9. Communication Protocol: HTTP
  10. Port: 8080
  11. Click ‘Next >’ and ‘Next >’ again
  12. Once installed, log in to Sims as an admin
  13. Go to Tools > Setups > Document Management Server
  14. Remove any existing Document servers and click Add
  15. Enter a description and the FQDN of the Document Server
  16. Test the connection
  17. If you see a popup saying ‘Server OK!’, click ON then click Save
  18. Navigate to the DOCSTORAGE location on the filesystem
  19. Add a new folder, name it the hostname of the Document Server
  20. Add a new folder inside that folder, name it the SQL Instance name (Sims if you followed the setup guide here exactly)
  21. On the Old server, navigate to the Original DOCSTORAGE folder > Hostname folder > SQL Instance Name folder
  22. Copy the SIMS Directory from the old server to the new server, placing it inside the SQL Instance Name folder
    1. 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
      1. 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
  23. Test!

Sims.Net Clients

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.

Post-Install setups

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 Examination Organiser

  1. Open Examination Organiser
  2. Set the new folder structure if it complains it can’t find the right folders (ideally use the shared Sims$ drive)
  3. 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

  1. 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?)
  2. Extract all files
  3. Run SOLUS3DeploymentServerDatabase.exe
    1. Install the required prerequisites
    2. Input the SQL Server and sa account details (SQL server = <hostname>.<FQDN>/sims) – click Test Connection to verify the details are accurate
    3. 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.
    4. Install
  4. Run SOLUS3DeploymentService.exe
    1. Install any prerequisites
    2. 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
    3. Leave deployment port as the default (52965)
    4. 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
    5. The install location can be the default or change it to the storage drive if preferred
    6. Install!
  5. Run SOLUS3DeploymentServerUI.exe
    1. Install any prerequisites
    2. 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
    3. Specify if you want any icons to be generated on the desktop/etc for the application
    4. 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
    5. Install!

SOLUS3 Configuration

  1. Run SOLUS 3 Deployment Server UI from the start menu or the desktop
    1. Enter the Establishment Number and Postcode of the school, then click Verify
    2. Once the school Address is populated, click Register
    3. 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
  2. Once registered you’ll be taken to the Settings > SOLUS3 page to complete the SOLUS config:
    1. Service host: click the dots and move the server into the right column
    2. Update repository (I create a directory in the shared sims$ folder for this) and click Validate
    3. Click save
    4. Next, go to Environment > Targets > Servers and click Add
      1. Server name: Find and select the new server
      2. Instance name: SQL instance name here (‘sims’ if you followed this guide)
      3. Binn folder: paste the location of the Sims Binn folder here (‘C:\Program Files\Microsoft SQL Server\MSSQL13.SIMS\MSSQL\Binn’ if you followed this guide)
      4. Click save and enter admin credentials to save the config
    5. Do the same but for the ‘Databases’ tab and the ‘Services’ tab, adding the ‘Sims File Server’, pointing at the local location of the sims shared directory
    6. Navigate to Settings > SOLUS3 > SOLUS and define any missing fields
      1. Service host: Click the dots and select the new server
      2. Update repository: create a new folder in the Sims shared drive and share it with relevant permissions to allow end user accounts read access. Also, give ‘SYSTEM’ full access to the share and the directory
    7. Navigate to Upgrades > Update Library to see all your updates
    8. Try downloading the version of sims that matches the one running on clients
    9. Navigate to Environment > Configure Workstations, then along the bottom select ‘sims.ini
      1. In the shared directory, create a new folder (“ini files” for example) and then create a new sims.ini file.
      2. 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
      3. Select this file in SOLUS, leaving the two installation options as ‘use default
    10. In the same Configure Workstations window, select the ‘connect.ini’ tab along the bottom
      1. In the shared directory, create a new ‘connect.ini’ file
      2. Populate this file with the relevant data – if you have working clients, just grab a copy from one of them
      3. Select this file in SOLUS, ensuring that you ‘overwrite’ 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) credentials
    11. 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 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 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

  1. Open PDQ Deploy
  2. Create a new deployment and name it appropriately
  3. 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.
    1. Pull the SIMSApplicationSetup.exe file from the extracted files from SOLUS and place it in the PDQ repository
    2. Create a ‘File Copy‘ step in the Package
    3. Single File selected
    4. Source: Select the SIMSApplicationSetup.exe file in the PDQ Repository
    5. Target Folder: Anywhere, I will use C:\Temp\
    6. Overwrite Existing Files: Tick
    7. Ignore Overwrite Errors: Untick
  4. 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
    1. Pull the connect.ini file from the server or one of your working clients and copy it into the the PDQ repository
    2. Create a ‘File Copy‘ step in the Package
    3. Single File selected
    4. Source: Select the connect.ini file in the PDQ Repository
    5. Target Folder: C:\Program Files (x86)\Sims\Sims .net\
    6. Overwrite Existing Files: Ticked
    7. Ignore Overwrite Errors: Ticked
  5. Step 3: Copy SIMS.ini
    Yeah, but why? Same reason as the previous step!
    1. Pull the SIMS.ini file from the server or one of your working clients and copy it into the the PDQ repository
    2. Create a ‘File Copy‘ step in the Package
    3. Single File selected
    4. Source: Select the SIMS.ini file in the PDQ Repository
    5. Target Folder: C:\Windows\
    6. Overwrite Existing Files: Ticked
    7. Ignore Overwrite Errors: Ticked
  6. Step 4: Kill pulsar.exe
    Yeah, but why? If a target is running 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.
    1. Create a ‘Command‘ step in the package
    2. Paste the following into the Details tab text box: tasklist | find /i "pulsar.exe" && taskkill /im pulsar.exe /F
  7. 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.
    1. Create a ‘Powershell‘ step in the package
    2. 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)
  8. Step 6: Display install notification
    Yeah, but why? This simply informs the user that the install is happening so they hopefully don’t open Sims 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
    1. Create a ‘Message‘ step in the package
    2. 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.
    3. 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.
    4. Wait for user to click OK: Unticked

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.

Changes

Any noteworthy changes will be highlighted here if they happen!

None yet 🙂


文章来源: https://fyr.io/2023/10/12/migrate-sims-net-server/
如有侵权请联系:admin#unsafe.sh