Wednesday 14 March 2012

Storyphones Network Installation XP [Unofficial Guide]

StoryPhones is a product sold across the UK by a company known as Ameeca.  The product consists of:

1 x Storyphone Docking Station
6 x Coloured Headsets (Purple, Blue, Green, Yellow, Orange and Red)
1 x Headset Controlling Unit
The Storyphones Software
1 x USB-A to USB-B Cable
1 x "Kettle" Lead  with Plug
1 x AC Power Adapter

Standalone Installation is very simple, however to install for "proper" network use, we need to improvise a bit and put on that geek hat.

For clarification on what I mean by "proper" I mean that the Software Settings are consistent across every machine, this includes the Proxy Settings, Specific Login Credentials & the Path to the shared resources.

By default the software will look in the AppsData folder on your logged in user for all the songs and books.

So this means that when  you buy a song and download it, that song is only available to that user, on that machine. (or everywhere for that user if you are using roaming profiles).

Not really networked is it..

What you want is that when someone buys something using a forced generic account it just needs to be downloaded once and shared to all machines for all users, immediately.

Lets stop with this potentially pointless rant now and just get down to it.

1. Have a test client machine. (This has only been done on an XP network, but in theory it would work on anything higher) and login with an Admin account

2. Install the software on this machine.  Make sure you choose that the options apply to all users and not just the logged in user.  Keep everything default, especially the installation path.

3. Open the Software.  Register your account.

-- Once registered, what the software doesn't tell you is that you need to activate your account by going to the link provided to you in the email they send to you after you register.  This is a step which is quite significant as you think the software is broken otherwise as the Shop button is greyed out.

4. Go to the settings area and steal the path out of the "Path to Files" field.  By Default its something like:

C:\Documents and Settings\*LoggedInUser*\Application Data\StoryPhones\

5. Copy and Paste All the files in this area and drag them to a shared area where all your users have access to.  (like an application share or something)  Lets say for example purposes all users have access to a P:\ drive.  So i'm going to create a folder here called Storyphones and drag all the contents of the

C:\documents and Settings\*LoggedInUser*\Application Data\Storyphones\ 
to
P:\Storyphones

The data will be three folders and a certficate:
  • Files
  • Logs
  • Skins
  • App.spc
Once copied, type in the new shared path in the software settings under "Path to Files". (Replacing the C:\ location)

6. Double Check the Software has proxy details.

7. Check to see if you can access the shop with your username/email and password  (If the shop button is greyed out, make sure you activate your account by going to your email inbox and clicking the link, then reload the software).

8. Generally check to see if its all working.  Your songs should all be there and visible, shop works and the software no longer asks you if you want to login with no user, register or ask for another user.

9. Once happy with it, close it all down and on the client go to C:\Program Files\Ameeca   and find the Storyphones folder.

10. Now this is where I haven't had time to really look into this, but there is a dll in there somewhere which is responsible for all your settings (proxy, shared area location and shop credentials). It doesn't store it in the registry, it doesn't store it in the apps data, it is somewhere in here.  Personally, I just copied the entire Storyphones Folder.

11. Paste this folder in a scripts folder or somewhere equivilent on your server. 

12.  You now deploy the Msi that comes with the CD as normal.  This installs it properly with all its registry keys and things. 

13. You now need to write a script that will run on startup and replace the entire contents of the default C:\Program Files\Ameeca  with the copy you have on your server (part 10-11).  Just a typical batch script will do, unless you like VBs or Powershell. 

An example would be to put a file within the copied "Storyphones" folder named "configured.txt".  Then use a batch script to check if that file exists on the client machine, if not then it clearly isn't the updated folder therefore we import the new one.

Full Example

We have the "perfect" storyphones folder copied to a location on our server, lets call this location \\server\scripts\StoryPhoneSettings\

So now we have the folder "Storyphones" within this location.

Now within that folder, we create a txt document called "Configured.txt".

We create our batch file.

-We first look at the client to see if storyphones has even installed (part 12)

IF NOT EXIST "C:\Program Files\Ameeca" GOTO _END

:_END

-- If there isn't a Ameeca folder in Program files, then storyphones isn't installed yet, end the script.

-When it is installed we look within the default storyphones folder for "configured.txt" on the client machine.

IF NOT EXIST "C:\Program Files\Ameeca" GOTO _END
IF EXIST "C:\Program Files\Ameeca\Storyphones\configured.txt" GOTO _END
:_END

--If it is already there, this script has already imported the new storyphones folder from the server, this is for AFTER this script has done its job, since we don't want it to repeat this task every single time people start up.

-Now if the configured file is not there, the default (unchanged) settings are present, which need to be replaced.

IF NOT EXIST "C:\Program Files\Ameeca" GOTO _END
IF EXIST "C:\Program Files\Ameeca\Storyphones\configured.txt" GOTO _END

ERASE "C:\Program Files\Ameeca\Storyphones" /f /s/ q

XCOPY "\\Server\scripts\StoryPhoneSettings"  "C:\Program Files\Ameeca" /c /q /e /r /y

:_END

----------------------TROUBLESHOOT---------------------

Note:  Thank you to one technician that highlighted that ERASE doesn't always work, an alternative path would be:

RMDIR "C:\Program Files\Ameeca\Storyphones" /s /q

-------------------------END---------------------------

--Since the default folder already exists and we want to replace it, lets remove it entirely and replace it with the one from the server.  We Erase the entire "Storyphones" file and now replace it with the "perfect" one we have on the server in our scripts folder.  We now have our script.

IF NOT EXIST "C:\Program Files\Ameeca" GOTO _END
IF EXIST "C:\Program Files\Ameeca\Storyphones\configured.txt" GOTO _END

ERASE "C:\Program Files\Ameeca\Storyphones" /f /s/ q

XCOPY "\\Server\scripts\StoryPhoneSettings" "C:\Program Files\Ameeca" /c /q /e /r /y

:_END

This script runs and will be complete within 10 seconds, so there isn't really too much of a delay on startup and obviously once its done, it won't re-run.

We save this script somewhere on the server users have read & execute access to (netlogon or a designated scripts area) and call it StoryphonesSettingsImport.bat or whatever you want.

14. Now using Group Policy, we open up GPO manager, find our Software policy and in Computer Configuration -> Windows Settings -> Scripts(startup/shutdown) we put in our script.

15. Gpupdate the server and the clients and when they restart the script will run, importing the "perfect" storyphone settings to the network.  Storyphones is now fully networked and essentially plug and play now. They can designate any computer in class, in your IT suites even on domain netbooks and laptops to use and configure storyphones.

This is my unofficial method of making storyphones fully networkable.  Before doing this you must ensure Ameeca have issued you with a site license. This method has been tested in two of my schools and both are running fine now. In fact when a machine broke they were still able to use storyphones on another machine immediately by simply plugging the cable in. 

I am unware on any official way Storyphones may have on networking it, but all guides I found from their website didn't seem to mention any form of admin/network install.

If I was Ameeca I would probably be looking into creating a network managing client that can sit on a server to manage this software remotely.  Deploying the software is straight forward, deploying the settings for it is just not quite there yet. 

This guide has been tested on version 1.5 and 1.6. 

I hope this helps a few people.

FAQ

Q. The globe/storyboard shop logo in the software is greyed out and cannot be clicked.  I've registered and followed the guide but it remains grey, what's wrong?

A. You've registered but not activated your account.  You need to go your email inbox for the email you registered with and click the Activation link.


Q. What is the default password for the teacher area?

A. The default password is "password", unless you have logged in with a account, then the password is whatever you specified.


Q. I can access the storyboard shop but can't access the support website, why?

A. Different credentials are needed for the storyphone support pages, you need to contact them.


Q. My firewall is blocking the storyphone shop, which website is it trying to get to?

A. The Website Storyboard is located is: http://www.listeningforlearning.org/appsite/login/index.ashx and uses your standard ports 80 and 443.  You also will need the ability to download .mp3 files.


Q. I've clicked on the songs and books I want to download, but when I leave the shop they dissappear, where are they?

A. You need to click the download button, when you buy a book/song, it puts itself in the right hand list, this is a "pending for download" list, you must click the big button below to actually download them.


Disclaimer: Any views or opinions presented in this guide are solely those of the author and do not necessarily represent those of the company Ameeca or any of its affiliates. This guide is not supported, sponsered or endorsed by any company in relation to Ameeca. The auther takes no responsibility for damages which are potentially caused by this using this guide, it is unofficial and will remain so unless otherwise stated.





Monday 12 March 2012

MDT - Missing Intel Network Card Drivers

[SOLVED] MDT Error Driver Missing on DELL Computers, Intel Networking Card.
A Connection to the deployment share (\\Server\DeploymentShare$) could not be made. The following networking device did not have a driver installed. PCI\VEN_8086 ... ..
Now MDT, as we all [should] know, runs within the WinPE environment which means the drivers we download from places like Dell, Samsung, Intel, RM, HP etc.. will not need to just be for their desired operating system but also compatible with the WinPE environment.

So lets think, you've done everything right, you've extracted the drivers on your network somewhere and through the deployment workbench you've imported them to the nicely laid out file structure I hope you have. You've now also updated the deployment share and (because you had the time) you even regenerated the litetouch boot images and re-imported those into WDS.

You've done everything right, then you get the error you see above.

What this means is that some drivers (most probably your Intel HDD or Networking) are not compatible with WinPE. Unfortunately, Intel say that some chipsets/network card drivers are not yet compatible with these drivers and you are told to wait for them to be updated.

Well if you were clever enough to choose Dell Kit, Dell have already done this for you. Enter the following link:

Dell WinPE Driver Compatibility Pack

Direct Link:

http://www.dell.com/support/drivers/us/en/04/DriverDetails/DriverFileFormats?c=us&l=en&s=bsd&cs=04&DriverId=R298040

I'm not going to be completely bias to Dell, but so far they are the only manufacturer to put all the problem drivers in one 33MB download. Not only that they have also given a full compatibility list of which machines are affected by this.

Dell have this system known as KACE and rumour has it they are looking into integrating MDT as their main deployment method, therefore every piece of kit they will sell for the "business to enterprise" level consumer will most likely be checked to see if the components are MDT compliant. This is just an FYI if your main method of deployment is MDT and you are going through procurement.

Give it a go, I have yet to see it fail when I encounter the above error.

If you find that another manufacturer has done the same, please comment below and i'll add the links here. I'm sure there are people out there finding this saying "This is my exact problem, but I have a Samsung" or something like that.

Thanks for reading, Hope this helps,

ITMagician

[EDIT 01-06-2013]

The above links no longer point to a relevant file in Dells site, however by performing a search from the support site you can still obtain the WinPE Driver pack by searching for WinPE, the search currently returns the following WinPE 4.0 Driver pack A01 and has been updated to support WinPE 4.0 and Windows 8 operating systems, the page contains a full list of systems it will work with.

Friday 2 March 2012

Network Font Installation

Do you constantly get requested by users to install fonts? Or would you like to give users the ability to install their own fonts?

Save the code below as a vbs file, and add it the the computer startup. All you or your users have to do then is put any fonts you/they want installing, into the shared server folder (\\server\share\fonts in the example).

It's built as a subroutine, so you can easily add it to an existing script or run it on its own.

If you ever want to add a new font, just copy it to the server; next time the machines reboot they'll install it. I've made the shared folder available to end users so they can add their own, obviously they need to be aware not to copy hundreds at a time, otherwise other users are not going to be too please next time they start their PCs.


Code:
Sub InstallFonts
   on error resume next
   Const FONTS = &H14
   dim oFSO,oShell,oFolder1,oFolder2,sRoot
   sRoot=\\server\share\fonts\
   set oShell = CreateObject("Shell.Application")
   set oFSO=createobject("scripting.filesystemobject")
   set oFolder1 = oShell.Namespace(FONTS)
   set oFolder2=ofso.getfolder(sRoot)  
   for each oFile in oFolder2.files
   sName=lcase(oFile.name)
      if right(sName,4)=".ttf" then
         if not ofso.fileexists(oFolder1.self.path & "\" & sName) then
            oFolder1.copyhere sRoot & sName
         end if    
      end if  
next  
on error goto 0
End Sub
InstallFonts