Friday, 14 December 2012

EISNet v1.7.4 on the horizon

Shortly we will be rolling out EISNet v1.7.4 to customers on the v1.7 platform. This is an important upgrade with many bug fixes and improvements all of which are listed below;


Fixed In Version : 1.7.4 ‎(7)
276 Bug Package Status after Client crash during installation
277 Bug Package Failures reported incorrectly.
278 Improvement Client package deployment efficiency
279 Improvement Importing users: SQL data validation errors
280 Bug Computers in rooms showing with wrong icons
281 Bug Manager: Importing Classnames not working correctly
282 Bug Client: Importing from SIMS. Year groups with trailing space

Fixed In Version : 1.7.3 ‎(10)
166 Bug [Manager] Import Users: Effective date doesn't show current date
174 Improvement New database health check feature
210 Bug Class Chooser: Show log off button
253 Bug [Client] Installing packages not ordered
254 Bug [Client] Trigger reboot after reinstall of package
255 Improvement [Manager] Deleting a room would not work if computers exist in it.
256 Improvement [Manager] Clean DB command line option added
257 Bug [Manager] Renaming a room would not update Computer ADS Path in DB
258 Bug [Manager] Shared Favourites share shows with Quotes
259 Improvement [Manager] Enabling a short cut shows Start menu folders logically unsorted

Fixed In Version : 1.7.2 ‎(1)
163 Bug Importing users from SIMS: Effective Date is missing

Fixed In Version : 1.7.1 ‎(12)
134 Bug Feature Request: Apply Package Changes globally
147 Bug GUI Glitch: Moving User Alerts
154 Bug GUI Glitch: 'Enable package' for users dialog
155 Bug Profiles: Crash if site only uses XP
156 Bug Importing users: Login names are blanked
157 Bug Client MSI: Permissions for logs being set in wrong folder
158 Bug Profiles: GUI glitch
159 Bug Create Intake: Permissions issue
161 Bug Package Manager: Default path and validation check
162 Bug Login Script: Class Chooser not triggering
164 Bug Client: Device MAC Addresses not storing in database
165 Bug Deployment: Remotely invoking package deployment hold entire process

Wednesday, 19 September 2012

EiS Secure Census

The project formerly known as IDK has been signed off and released as EiS Secure Census. As a component of Secure Census is based around the TrueCrypt source, the source code for IDK Encryption will be made available from this blog shortly inline with the TrueCrypt licence agreement.

Friday, 22 June 2012

Post conference news

EiSNet v1.7 was officially launched at our IT12 exhibition and its safe to say, it was a resounding success!

Feedback was extremely positive and a number of excellent ideas for future enhancements have been made, noted and don't tell anyone, but some have been implemented already!

Since the event we've done some intense deployment testing and packaging up so our build processes now has a fully deployable EISNet v1.7 network.

The source code is now locked which means no more additions, changes or improvements.

Our first school to have EISNet v1.7 is having it installed in early August.

13 months of hard work, head scratching and laughter is now at an end. Until the next project that is.

Saturday, 26 May 2012

Device Status removal

In February we announced a new feature called Device Status. This would allow you to see if the device is on, or offline. Whilst extremely useful, it has proven to be highly unreliable and has been removed from  the first release. It is a disappointing change but we cannot allow the new version to be released with something we know to be buggy. Hopefully it will appear in a later release.

EISNet v1.7 official launch

EISNet v1.7 will be launched on June 14th 2012 at our IT12 Exhibition and Conference.

Mike and myself will be demonstrating the new version at the exhibition which is free! but whilst you'll there, why not book yourself into the conference where I'll be doing a talk on Windows 2008 GPO Extensions.

More details here (http://www.eiskent.co.uk/default.cfm?navid=7)

Couldn't resist one final improvement

Whilst finalising the demonstrations for IT12, I spotted a possible improvement and could not resist adding it in.

When a package is deployed, the end users will now automatically have the new icons appear on the desktop (or the start menu) once the installation is complete.

In addition, if you enable a package for a user or group, you can now force a workstation to update the user who may be logged on so that the icon automatically appears. This also means if you deploy a printer, update their wallpaper or map a drive for them, it will appear, on the fly.

Users no longer need to be logged off for the changes to be applied.

Wednesday, 9 May 2012

Change log

The following is a list of the final change log for EISNet v1.7



  • Support SQL (means more than 128 devices now supported)
  • Streamlined modern interface
  • Support for roaming profiles
  • Improved ClassChooser tool
  • Archivist, Supervisor, Applications and Manager now wrapped into one Management Studio
  • Re-written Package management and deployment
  • Support for direct importing of users from SIMS
  • Both users and computers can now be searched from with-in EISNet Management Studio
  • Numerous bug fixes and improvements
  • Inheritance now fully support for Printer deployment and drive mappings
  • Global package deployment
  • Advanced Support tools now built in
  • Remote login rooms and workstations
  • Much improved package status monitoring
  • Advanced Shortcut management
  • Web based (live) help
  • Improved group membership management
  • Shared folder management now built in
  • Improved MyPage
  • Major overhaul of speed and performance
  • Ability to lock the management tool
  • Alerts and history now logged
  • Packages can now be imported and exported
  • Packages can now be redeployed to a device
  • Registry fragments can now be imported and exported
  • Support for internet shortcuts
  • Combined support for any package type regardless of whether it is CMD, BAT, MSI or EXE
  • Packages can now have their own individual icons for use in Management Studio
  • MSI files now support command line switches
  • Packages now support description and version fields for easier management
  • Remote execution including support for running under user or system context
  • Remote execution now support in-line batch execution
  • Stations can now be renamed either remotely from within Management Studio or on the device itself
  • Wake on LAN now supported (Hardware dependant)
  • Packages will automatically redeploy once a device is rebuilt. 
  • Supervisor now integrated into Management Studio and shown based on group membership
  • Management Studio can now run on multiple machines at the same time
  • Upgrade engine now included for future releases


Thursday, 29 March 2012

Woohoo! It's done!

Today marks the end of the main coding of EISNet v1.7. This means, other than major bugs between now and release, the code is now finalised.

The core targets for the v1.7 version have been achieved, and we now move into document writing and packaging.

Here is the final layout for the main window.



Friday, 16 March 2012

Approaching the end

The end of the development of v1.7 is very close. Closer than you think. Today I spent some time reviewing all the windows, giving them icons, checking fonts and positions etc. As any programmer knows, this is normally the last job before it goes out the door. Although I do have further bugs to fix, finalising the forms is almost like typing 'The end' to a novelist.

The product has had changes made which have then been removed a few months later. It's had new features added, and likewise, old and unused features removed. It's been all sorts of colours and patterns. Its also crashed a few times. But these are all in the natural timeline of a big development.

This is currently EISNet Management Studio and is likely to be exactly the same when you used it.

Main Window

Package Manager

The next step is to fix the few remaining application bugs. Once these are fixed and confirmed, we move into deployment testing. This is where we build a new EISNet network from scratch direct to v1.7. We emulate the same scenario we would have at a customer site. This is likely to raise a number of packaging issues which will be addressed.  This testing is scheduled to start in late June.

Then, in early July, we start doing upgrade testing. This is where we use an image of an EISNet v1.6 network and run the upgrade, once again emulating a real scenario.

Shortly after that, we then hit the packaging phase of the product where everything we have learn from the two previous tests is encapsulated into deployment services.

In late-July, we then start a short field test. If the field test shows no major issues, we will then start fresh builds in schools from August. Schools currently running v1.6 will then be optionally upgrades in the months that follow (we are unable to plan for any EISNet development or installations during the first few weeks in September due to the start of term)

In between April and June, it is full steam ahead for document writing, installation guides, management guides, help content, like web content and training EIS staff.

Exciting times ahead!

The final test

As I mentioned previously, we had a scheduled 'final test sprint' on Wednesday. The purpose of these test days is to break the product in every possible way. We achieved our goal.

There were 4 testers each equipped with a Server, and a station. They all ran their own tests in their own time and went on to find 65 bugs.

As of today, we are left with just 8.


A new logo

It is surprisingly difficult to create an icon for a product. Well, it's easy to find an icon, from the web, or another application, but to create one from scratch that embraces the philosophy of the product in hand is very hard indeed. Michael has been the artist in this area since I came on board. My icon creating skills are next to zero, so to have someone who is proficient in Adobe Photoshop is very handy. Michael has created the icons for EISNet v1.7 through the use of our own icon library, merging and adapting them where needed.

Throughout the entire project, I have been nagging him to get the actual EISNet Management Studio icon done. There have been many attempts and just as many failures (I am very hard to please). However, yesterday he gave me a surprise. He showed me the User Manager icon we use on our Administration Networks and suggested we use that. In theory, both tools do a similar job, but unfortunately where we have Joint Admin and Curriculum networks, it will become hard to determine which is which. So he then changed the colour scheme and the new EISNet Management Studio icon was born.

Tuesday, 13 March 2012

Minor tweaks and updates

Hyperlinks

Sometimes you need to deploy a link to a website to users. Previously, in EISNet v1.6 and below, you could do this by creating a shortcut to iexplore.exe and pass it the website as the parameter. Whilst this works, it didn't necessarily give you the correct icon. Instead, it was the Internet Explorer 'e' logo.

64bit shortcuts

EISNet v1.7 now supports the use of links as shortcuts. This means, if you create a shortcut to a URL - regardless if it starts HTTP:// or simply bbc.co.uk, you will see the correct icon and more importantly, you can do this without the use of using iexplore.exe.

The final change for the new version has been to fix a rather annoying issue with 64bit operating systems. Well, it's not so much a problem with 64bit systems themselves, its the creating of shortcuts. Traditionally, the problem with this is that a 64bit Operating System has two Program Files folders. One is called just that - "Program Files" and the other is called "Program Files (x86)".  All 64bit software will get installed to Program Files and all 32bit software will be installed to the (x86) location. This presents a problem for network managers who have a mixture of 32bit and 64bit hardware across the site.

If, for example, you install a product that is 32bit (like Paint.Net for example) on a 32bit operating system, it will be installed to C:\Program Files. The same package however will install to C:\Program Files (x86) on a 64bit platform. Creating a shortcut to this can be problematic.

EISNet v1.7 now handles this with a little bit more intelligence. The shortcut you create will now ignore the Program Files location and decide which to use based on the operating system and product type. It works out which version is installed and creates the correct shortcut for you. Therefore, when you create the shortcut in Manager, you can enter either the 32 or 64bit version of the program files folder, and the correct one will be used when the user logs in.

Final testing

Tomorrow marks the final push for bugs as we complete our last bug sprint. A group of us will be pushing the software hard to squeeze as many bugs out of it as we can before final release. These bugs will then be fixed over the course of the coming weeks.

I will update during the day with our progress.

Saturday, 3 March 2012

The final stretch

The home stretch

Exciting news. We are now moving into the final phase of development. All core modules have now been reviewed, modified, re-written or improved.

The last of these modules is LoginScript. This tool is used to customize the desktop appearance and set user customisation. It also handles the shortcut deployment where needed. Next to Manager, this has the biggest code set in the EISNet modules. Over the past week we have gone through it's 8,000 lines of code and removed code no longer needed and where possible, streamlined and improved the code. I'm happy to report the code is now at a little under 1,100 lines of code since the cleanup. That's a massive improvement.

As you know, we have moved away from a modular approach for EISNet and instead are now using a single tool. As a result we felt the term 'Manager' was no longer appropriate as it did not incorporate the Supervisor, Archivist and Package Manager tools in the name.

Therefore, I'm please to announce the new name for what was 'Manager'.

In EISNet v1.7, you'll be using EISNet Management Studio.

So whats next for the development?

Whilst all the modules have been adapted into v1.7, now comes a largely tougher, but altogether more pleasing area of development. Final testing begins now with the focus being on usability and reliability. We now need to remove all the bugs we've introduced over the past year of development. In a couple of weeks we have dedicated testing day, similar to the day we did last year. The plan is to have 5 or 6 people all trying hard to break the code at the same time. All the bugs will be logged and fixed as required.

All feature and new coding must be completed by April. That is our deadline. After then, only major bug fixes are allowed. We then we move into manuals / documentation, training and packaging. In this time we will also be doing field testing in a few schools.

The planned release of Summer is still achieveable, although I have to admit, I would prefer automatic upgrades from v1.6 to 1.7 to be tested a little more before we do our first upgrade.

In the coming months I hope to do a review based on the past year with screenshots of progress along the way and insight into the development.

I have to be honest, when I took on this project, I did not expect it to take this long. I think I under estimated the size of the product, or - if i'm honest, the complete mess the code was in. Still, from v1.7, EISNet has a solid foundation which has the scope for much more improvement over the next few years.

Developing the impossible


Renaming devices

Most network management solutions such as EISNet do not support the renaming of a device. The problem is that whilst the device name may be changed, the database which manages the network will not know the new name.

EISNet v1.7 now has functionality built in to detect a name change on a workstation. This means, you can login to a workstation as an Administrator, rename it and on when it reboots, EISNet Client will detect this, and update the database accordingly.

In addition, we have now introduced a brand new feature in Manager which allows you to select a device and rename it remotely, from within Manager itself. The device will then optionally reboot.

Redeploying packages after a rebuild

From time to time it is necessary to rebuild (reinstall Windows) on a device. Sometimes this is due to problems, other times, the device might be replaced. In EISNet, it was not possible to rebuild a work station and automatically redeploy the packages to the device. Previously you would rebuild the work station, then use Manager to reassign the packages.

In EISNet v1.7, this is no longer the case. EISNet Client is now intelligent enough to know when the device has been rebuilt. When this happens, Client will automatically re-install packages.


Friday, 17 February 2012

New features

Wake-On-Lan

Today we finalised Wake On Lan which is a feature that allows you to remotely turn on computers from within Manager. This tool is complimentary to SmartLan. For those who do not know, SmartLan is an EIS product designed to remotely turn on computers and shut them down again at pre-defined schedules. It is designed specifically for schools. Whilst there are a number of tools on the market to do just this, few are free (unlike SmartLan which is available free to all EIS customers) and none offer the functionality to define holiday periods where the devices are not turned on automatically. SmartLan does just this. You specify school holiday dates and SmartLan is intelligent enough to know, the computers should not be turned on during that period.

Manager does not need Smart-Lan to wake up devices. It is built in and can do simple remote wake ups. If you want a more advanced scheduler for Wake-On-Lan, you should consider Smart-Lan.

Remote Execute

Remote execute has been given a complete over-haul.

Previously remote execute was flaky at best and often didn't work. A large part of this was lack of feedback to Manager on the result of the execution which has now been addressed.

The new Remote Execute tool now remembers the history of what has been run, so if you find yourself constantly using the same command, you no longer have to type it in every time. In addition, you can now choose whether to execute the process as the System account, or as the user logged in. Both are useful, but at the same time, both have limitations.

Running a process as the System account gives over-all control of the machine with Administrator rights. However, there are some areas the system account cannot access. This includes the User registry hives. So you cannot launch a command to add something to the users registry (HKEY_USERS). You can only add registry items to the local machine's hive (HKEY_LOCAL_MACHINE). The system account cannot interact with the user, or display messages. So you could not launch Microsoft Word as the system account and expect the user to see the process.

Running a process as the user gives the same access rights as the user who is currently logged in. This means, any restrictions applied to that user will also be applied to the process you launch. It does however mean you can add registry items to the Users registry hive, but not the local machines. You can interact with the desktop, so if you launch Microsoft Word as the user, it will be shown to the user.

In addition to the 'Simple' Remote execute function, we have also added a brand new Advanced Mode. This is aimed at advanced users and network managers.

This tool allows you to create batches of commands and save them for future use. All processes will be launched in sequence. Therefore you can change the order of processing.

This allows for quite complex remote execution. For example, you might want to change the IP address of the device, then register the IP with the DNS server and then finally reboot the device.

You might also like to copy over a batch file using xcopy, then launch the batch file immediately.

Whilst this is a new feature, we are looking to improve this in all areas depending on feed back.

User and Device views

Over the period of development, we noticed it would be useful if a an item in the users tree is selected, it automatically shows all users below that level. So for example, if you select the foundation intake, you see all users in the foundation level regardless of which intake they belong to. Likewise, if you select 'Users' you'll see every user within EISNet.

The principle is the same for computers. If you select 'Computers', you'll see every computer in EISNet, regardless of which room it belongs to. This helps if you want to deploy a package to a large group of devices.
 Device status

The final update for today is the addition of Device status. When you select a room, the computer list loads as normal. Over the next few seconds, Manager is secretly trying to communicate with each device. If the device is found, it will show as Online. If the device cannot be contacted, it will be shown as offline. Whilst this is a good indication on whether the device is on or not, it only does so based on communication with the EISNet client service. Therefore, if the client service is stopped, the device will show as offline. We will, by the time of release, also change the icon to show a Blue monitor for on, and black for off.

This is a very new feature and will need refining. Currently it re-scans for each device every ten seconds, so should be fairly accurate as to whether the machine is on.

The benefit of this, is where you want to work with the device using Manager, like sending a message, rebooting, remote executing or deploying packages - you can instantly see if the client is ready to accept these type of commands.



Thursday, 9 February 2012

Progress and release date amendment


Since my last post, there have been some significant progress in the Development of EISNet v1.7.

Supervisor is now built within the Manager tool. This means, any user who tries to access Manager, is given access based on their respective rights. Normal users are instantly rejected. Users who belong to the Supervisors security group are allowed access to a cut down version of Manager. They are allowed to review user properties and change passwords. They will also have access to pupils home folders. Supervisors cannot access any computer based resource at this time, although we plan to implement a feature where a teacher can manage their own room of computers depending on where they are logged in.

I've spend the past few days completely re-writing the communication between Manager and Client. Previously, all Manager/Client connectivity was usable but highly limited. This is now more robust and I have introduced two way communication which means Managers sends the commands, Client responds to acknowledge the command, and then updates Manager when the command is complete. This is shown in the Alerts Panel in Manager and allows you to keep track on what your Clients are doing.

We have also implemented 'Remote Login' - a feature missing for such a long time. It is not as streamlined as we hoped as the computers have to reboot once the Auto Login command is sent rather than immediately login, but we cannot find low level API's from Microsoft (we assume this is available to high level Microsoft partners). This has however, opened the possibility of a cyber-cafe style feature for EISNet in a later release.

You can now remotely logoff a user. Previously only Shutdown and Reboot was available.

EISNet Client has now been converted to EISNet v1.7, along with its sister application ' EISNet Agent'. Client  has had the performance and code improvements made to match the other tools. Although Manager in itself will not be changed too much, it is a better tool as a result.

Finally - I do have to announce the slight delay in the EISNet v1.7 release. I had previously stated it would be available in April. However, due to other issues out of my control, it looks like the product will now be released  in the Summer 2012. Although I hope to have all the coding complete by April, we need time to do final in-house and field testing, documentation and training.

I think it's important to get the product right before we release it (unlike some other vendors of course).

Tuesday, 7 February 2012

Side Projects - TrueCrypt

Without a doubt EISNet is the biggest coding project we maintain but we also have a number of smaller side projects on the go at the same time.

While Kevin has been working on v1.7, I have been busy with one of these many side projects. As some of you may be aware, EiS provide a tool for encrypting the census data generated by SIMS. This tool is powered by TrueCrypt under the bonnet and unfortunately it's starting to show its age.

The version of TrueCrypt used was very deliberately chosen, it was the last version to support the use of mapping an encrypted container to the drive letter B: (which is about the only drive letter we can guarantee to be free 99.9% of computers). However, this version does not support Windows 7 very well and has no support for 64-bit. We approached the TrueCrypt Foundation to discuss the possibility of them enabling B: drive support in the most recent version or the possibility of using their driver with our own app, unfortunately without much success.

As TrueCrypt is open source we decided to have a look at the code to see if we could make the changes ourselves. Very quickly we had fixed the problem and B: drive support was enabled but nothing is ever simple. In order to use their code, we had to remove all traces of the name TrueCrypt except for a disclaimer stating it is based on their code. The next hurdle was that to use kernel mode drivers on a 64-bit OS they must been digitally signed so we had to purchase a valid driver signing certificate.

After jumping through all these hoops we now we have our own product which can offer full disk and file container based encryption, with full 64-bit OS support. 

That's a lot of work just to enable support for a B: drive!


Monday, 23 January 2012

A statistical update


When you take over someone else's code and have the intention of improving it, it is typical to see the code size deflate and then inflate again.

The last time I posted about the statistics and analysis of the code, I showed how Manager had shrunk heavily compared with the earlier version (v1.6). At the time, we had the tough job of going through all the code refining and improving it where it could be. Naturally, we found wasted code that was then stripped out. This brought the code back to a basic, but highly optimized level.

Once we start implementing new features, or simply improving the old, the code starts to grow again.
Therefore, I thought I'd post the code statistics based on where we are now compared to September 2011.

EISNet v1.7 (September 2011)

Code Lines: 10,761 (62.75%)
Comment Lines: 1,706 (9.95%)
Blank Lines: 4,681 (27.30%)
Modules: 5
Classes: 1
Forms: 28

EISNet v1.7 (January 2012)

Code Lines: 13,443 (61.24%)
Comment Lines: 2,510 (11.43%)
Blank Lines: 6,000 (27.33%)
Modules: 5
Classes: 1
Forms: 26
User Controls: 2

It is important to note that as of the January version, the source code includes Package Manager (previously known as Applications) and Archivist tools.

If you include into Septembers Manager source, the old Applications and Archivist modules, the total lines of code would be 36,587. This is now down to 13,443 and is all in one application. That's 36.7% of the original size.

Wednesday, 18 January 2012

Finishing Package Manager

Package Manager is virtually feature complete, although I stress that this is pretty much like for like when compared to the previous version known as 'Applications'.

We have now added the ability to import LNK files - a feature that did already exist, but the code has been re-written. More importantly, you can now import a REG file directly. This means if you have a Registry Fragment file with 100's of settings, you can now import the whole lot with one click. This will hopefully make creating packages a lot more easier.

We have added two new fields into the Package Manager. Each package can now have a version number stored separately and also a description. These will help maintain a good Package repository, but will also be used in future EISNet releases.

As another change to Packages, the definition between an MSI package and a command line package has been completely removed. Each package contains a Package file, regardless of it's type. EISNet is now more intelligent on how it handles each one.

The final addition is the Arguments field. This has been added so each package can have specific arguments attached to it when it launches. This may include arguments for MSI files also. So if you want a silent MSI install, you specify /Q or /QB. This was previously only possible by setting the package as a command line, and then use the MSIExec.exe tool to launch the installation.

Below is a screenshot of the Package Properties window which has changed since my last post.

Package properties

Friday, 6 January 2012

Introducing Package Manager

Welcome to 2012 and a happy new year!

This year is looking to be extremely exciting for EISNet and this post is to give you an update on the progress over the past few weeks.

Almost all of the work recently has been purely on what you may know as 'Applications'. This separate tool allows you to create software packages and shortcuts that are then assigned to computers and users from within Manager. Our goal since taking on this project is to reduce the number of separate tools and merge everything into EISNet Manager.

For EISNet v1.7, the term 'Applications' is no more. We will be using a more relevant term called 'Packages' and as a result, Manager now has a tool integrated called 'Package Manager'.

Although the functionality has not greatly changed, the interface has. In addition, the code behind it has been completely re-written to a modern standard, which allows us multiple options in the future.

EISNet Package Manager

The window is made up of 3 panes. The left side contains the list of available packages. When you select a package, the two panels on the right hand side show you the Shortcuts and Registry settings for the selected package.

Creating and editing a package

Creating a new package has not changed. You can however now assign an icon for the package, to make it prettier in the respective package lists. We also plan to make the chosen icon appear on the clients when installing.

Editing a shortcut

Renaming a start menu folder
Each package can have many shortcuts attached to them. Commonly this will be the shortcuts seen by the end users in the start menu and desktop. You can now edit the shortcut location directly when editing a shortcut. You can also create, edit and delete the start menu folders directly and all on the fly.

Exporting a package

A new feature we have decided to implement is the ability to import and export packages from EISNet. This really is as simple as it sounds. You select one (or more) packages and select 'Export' from the context menu. Each package is then exported into a compressed EIP file. This single file can then be imported elsewhere, which will prove useful for roaming technicians in schools. Each exported file contains all required files, shortcuts and registry settings.

I'm sure you'll agree the changes made are an exciting update. We are all working hard to get this released on time.