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.

Thursday, 22 December 2011

Christmas Update

Christmas is finally here and with it comes a few days where we can continue the EISNet development.

Today I continued working on migrating Applications into the Manager. Although it should be said, "Applications" are no more. We will now be calling them "Packages", so within the Manager software, you'll use "Package Manager".

The code is being completely re-written with offers us some great opportunities to improve it. The GUI is also different. You'll have a list of Packages as you'd expect, but this list is searchable. This helps schools who have hundreds of packages skip straight to the one they want. It's wildcard based, so if you enter 'E', all packages beginning with E will be shown.


We hope that by integrating the packages into Manager, you'll have greater scope for deploying software in later versions.