Welcome to EdListen:
Never Stop Learning

Map Drives App

With Chromebooks, tablets, iPads and BYOD becoming so popular I have been changing the way I manage workflow in my network.  One of the top things I have done is change all the student-use Windows machines from logging in each student to using a single profile.   This works well since most students are using Google Apps for their office productivity, however there are a few places like our CAD lab that uploading the files to Google Drive is just not practical.

The solution I found/modified was a simple script originally written by Vaughn Miller that asked for a username and password and could map drives after the computer was turned on.   I modified the script to include a user home folder mapping.    The script is basically a VBS script with an html front end.   The file type is .hta, which when doubl-clicked opens up an internet explorer window.





  1. Open Notepad
  2. Copy the below code into it
  3. Save as filename.hta

 <!-- HTA script to allow machines that are not joined to a domain to access   
    Windows file shares with domain credentials. It will atomatically prepend the   
    domain to the username and then map several drives. If a drive is already   
    mapped, it is disconnected and then mapped for the current user.  
       http://www.vaughnemiller.com/2012/08/16/hta-script-for-mapping-network-drives/  
       https://github.com/vmiller/ConnectDrives  
      
    Version 1.0.2 Written by Vaughn Miller 7/20/2012   
       Version 1.0.3 Modified by Bjorn Behrendt 1/30/14 ~ http://www.edlisten.com  
           ~ Removed looped mapped drive.  Was unneeded for my own situation but probably should get put back in  
           ~ Added home folder mapping. This will map to a folder that matches to the username  
           ~ Now removes all current mapped drives, even if they are not defined in this script. This solves a multiple connections error if there is a current mapped drive.  
             
              
    ---------------------------------------------------------------------------------->  
   
   
 <HTML>  
 <HEAD>  
 <TITLE>Connect Network Drives</title>  
 <HTA:APPLICATION  
    ApplicationName="MapDrives.HTA"  
    SingleInstance="Yes"  
    WindowsState="Normal"  
    Scroll="No"  
       ICON="computer.ico"  
    Navigable="Yes"  
    MaximizeButton="No"  
    SysMenu="Yes"  
    Caption="Yes"  
 ></HEAD>  
   
 <SCRIPT LANGUAGE="VBScript">  
   
 ' *** Define Drive Mappings ***  
 dim arrDrives(1,2)  
 intMaxdrives = 1  
   
 arrDrives(0,0) = "K:"  
 arrDrives(0,1) = "\\server\TShare"  
 arrDrives(0,2) = "TShare"  
   
 arrDrives(1,0) = "W:"  
 arrDrives(1,1) = "\\server\homefolders\"  
 arrDrives(1,2) = "Username" 'Not used in version 1.0.3  
   
 ' *** End Drive Map Definitions ***  
   
 strDOMAIN = "YourDomainName\" 'Domain to prepend to the username  
 msgSuccess = "The following drives have mapped correctly" & vbCrLf & "K: = CadShare" & vbCrLf & "W: = " & strUsr2 & "'s CAD Folder"  
 msgError = "An error occurred while mapping: " & Err2 & vbCrLf & vbCrLf & "Please check your password" & vbCrLf & "If that does not work please restart the computer." & vbCrLf & "If it still does not work after a restart, have your teacher submit a help desk ticket."  
   
   
   
 Sub Window_Onload  
  '# Size Window  
  sHorizontal = 440  
  sVertical = 220  
  Window.resizeTo sHorizontal, sVertical  
  '# Get Monitor Details  
  Set objWMIService = GetObject _  
   ("winmgmts:root\cimv2")  
  intHorizontal = sHorizontal *2  
  intVertical = sVertical *2  
  Set colItems = objWMIService.ExecQuery( _  
   "Select ScreenWidth, ScreenHeight from" _  
   & " Win32_DesktopMonitor", , 48)  
  For Each objItem In colItems  
   sWidth= objItem.ScreenWidth  
   sHeight = objItem.ScreenHeight  
   If sWidth > sHorizontal _  
    then intHorizontal = sWidth  
   If sHeight > sVertical _  
    then intVertical = sHeight  
  Next  
  Set objWMIService = Nothing  
  '# Center window on the screen  
  intLeft = (intHorizontal - sHorizontal) /2  
  intTop = (intVertical - sVertical) /2  
  Window.moveTo intLeft, intTop  
  '# default window content  
  window.location.href="#Top"  
 End Sub  
   
   
 Sub RunScript  
   on Error Resume Next  
   
   minUSRnamelength = 2  
   minPASSwrdlength = 3  
   
   strUsr = UsrnameArea.Value  
   strPas = PasswordArea.Value  
   strUsr2 = strUsr  
   
   Set objNetwork = CreateObject("WScript.Network")  
   Set oShell = CreateObject("Shell.Application")  
     
   
   If Len(strUsr) >= minUSRnamelength then  
    strUsr = strDOMAIN & UCase(strUsr) '<--- adds the domain before the username  
   
    if Len(strPas) >= minPASSwrdlength Then  
      Call ClearDrives ' Delete existing mappings if they exist  
        
            '***** Begin Drive mapping *****  
        
       Err.Clear  
                Err2.Clear  
       objNetwork.MapNetworkDrive arrDrives(0,0), arrDrives(0,1), False, strUsr, strPas  
       If Err.Number = 0 Then  
         oShell.NameSpace(arrDrives(0,0)).Self.Name = arrDrives(0,2)  
                 else  
                     Err2 = arrDrives(0,2) & ", " & Err2   
       End If   
                  
                Err.Clear  
                netLocation = arrDrives(1,1) & strUsr2  
       objNetwork.MapNetworkDrive arrDrives(1,0), netLocation, False, strUsr, strPas  
       If Err.Number = 0 Then  
                  oShell.NameSpace(arrDrives(1,0)).Self.Name = strUsr2  
                else  
                 Err2 = strUsr2 & ", " & Err2   
       End If   
           
                If Err.Number = 0 Then  
                     msgbox(msgSuccess)  
                else  
                     msgbox(msgError)  
                End If  
   
   
                        
      '***** End Drive Mapping *****  
              
              
        
      ELSE   
       Msgbox chr(34) & strPas & """ is an incorrect password !"  
       Exit Sub  
      End If  
   ELSE   
    Msgbox chr(34) & strUsr & """ is an incorrect Username !"  
    Exit Sub  
   End If  
   ' Clean up the objects before exiting  
   Set oShell = Nothing  
   Set objNetwork = Nothing  
   Self.Close()  
 End Sub  
   
   
 Sub ClearDrives   ' Sub Routine to remove the drives if they are already mapped      
 SET objNetwork = CREATEOBJECT("Wscript.Network")  
 SET colDrives = objNetwork.EnumNetworkDrives  
 FOR i = 0 to colDrives.Count-1 Step 2  
      ' Force Removal of network drive and remove from user profile   
      ' objNetwork.RemoveNetworkDrive strName, [bForce], [bUpdateProfile]  
      objNetwork.RemoveNetworkDrive colDrives.Item(i),TRUE,TRUE  
 NEXT  
   
   
 ' on Error Resume Next  
 ' Set objNetwork = CreateObject("WScript.Network")  
 '   
 '  
 ' '***** Begin section to delete drive mappings ***  
 ' Set AllDrives = objNetwork.EnumNetworkDrives      
 ' For n = 0 To intMaxDrives   'Loop through our array of drives   
 '   For i = 0 To AllDrives.Count - 1 Step 2   
 '    If AllDrives.Item(i) = arrDrives(n,0) Then AlreadyConnected = True   
 '   Next      
 '   If AlreadyConnected = True then   
 '    objNetwork.RemoveNetworkDrive arrDrives(n,0), True, True  
 '   End If   
 ' Next    
 ' 'msgbox ("disconnected1")  
  sbWait(3)  
 ' 'msgbox ("d-end")  
 ' '***** End section to delete drive mappings   
   
  End Sub  
   
   
 Sub DisconnectDrives ' Calls ClearDrives subroutine and then closes the window  
     Call ClearDrives  
   Set oShell = Nothing  
   Set objNetwork = Nothing  
     Self.close()  
 End Sub  
   
 Sub sbWait(iSeconds)  
   Dim oShell : Set oShell = CreateObject("WScript.Shell")  
   oShell.run "cmd /c ping localhost -n " & iSeconds,0,True  
 End Sub       
   
   
 Sub CancelScript  
   Set oShell = Nothing  
   Set objNetwork = Nothing  
   Self.Close()  
 End Sub  
   
 </SCRIPT>  
   
   
 <BODY STYLE="font:14 pt arial; color:black;">  
 <a name="Top"></a><CENTER>  
  <table border="0" cellpadding="0" cellspacing="0"><font size="2" color="black" face="Arial">  
   <tr>  
    <td colspan="2" height="50" valign="top"><p style="text-align: center;">  
                Your School<br />  
                The Lab</p></td>  
   </tr>  
   <tr>  
      <tr>  
    <td height="30"><p align="right">Your Username</p></td>  
    <td height="30">&nbsp;&nbsp; <input type="text" name="UsrnameArea" size="30"></td></tr>  
   <tr>  
    <td height="30"><p align="right">Password</p></td>  
    <td height="30">&nbsp;&nbsp; <input type="password" name="PasswordArea" size="30"></td></tr>  
  </table><BR>  
 <HR color="#0000FF">  
  <Input id=runbutton class="button" type="button" value=" Log On " name="run_button" onClick="RunScript">  
   &nbsp;  
  <Input id=runbutton class="button" type="button" value=" Log Off " name="dis_button" onClick="DisconnectDrives">  
   &nbsp;  
  <Input id=runbutton class="button" type="button" value="Cancel" name="cancel_button" onClick="CancelScript">  
  <br/>  
  </CENTER>  
 </BODY>  
   
 </HTML>  

I used http://codeformatter.blogspot.com/ to convert the source-code into a format that I can post on Blogger.

EdListen 40: Chromebooks 1:1


Host & Producer: Bjorn Behrendt ~ g+ | twitter 
Show Website: http://www.edlisten.com/ & Google+ Community

Description:
+Sean Bevan & +Ryan MacRaild joined the podcast this week, as well as +Chris Pariseau an English teacher at the school Fred and I work with.     Both Sean and Ryan are currently running a 1 to 1 program using Chromebooks and our school will be starting one next year.   This was a very fun and informative episode.

Links from the show:


Follow the show: | email rss | Youtube

Use Chrome Remote Desktop As A Free Alternative To LogMeIn

LogMeIn announced today that they are discontinuing their free service.   While I wish they kept a free version, I can't blame them because they did offer a great product at no cost for quite some time.  I used LogMeIn for emergencies only and do not plan to subscribe to the paid version.  

I am sure that there are going to be many free alternatives popping up in their place, but I would like to share my solution.   



Chrome Remote Desktop is nothing fancy, but it will allow you to remotely connect to your computers & servers from any location.   It is cross platform, so it does work on Linux, Mac OS, Windows & Chromebooks.   I still have to test if it works from Chrome from Android/iOS.

Chrome Remote Desktop has 2 modes.

1. Remote Assistance, which both parties need to be running Google Chrome and a random code is given so that the remote person can watch and control the other persons computer.

2. Access to your own computers.   You can assign a 6+ digit pin to your computers giving you access to them from any other chrome browser.  

Moving Math Teachers From Microsoft Equation Editor / MathType to Google Docs

The problem: 

Handling Equations in documents.



How It Is Done:

The Word Way:
1. Teachers have used MathType to create the equations inside of Word
2. Teachers have used the Microsoft Equation editor inside of Word 2007 and above.
Note: I will have to admit that both of these methods are very well developed and do make working with math documents simple.

The Google Way:
1. Google Docs does have it's own equation editor, but I am told that it really is not up to par.  I am not a math wiz so I cannot really say how good it is or not.   I have learned that the use of it is a little clunky compared to the Word Equation editor.   One trick that I have learned was that the right arrow is your friend.  So if you want to write out X to the power of 2, then you create an equation, type x, then choose power from the Docs equation editor, then hit the right arrow on the keyboard to get the cursor to the correct place.





2. Web-based equation editors.   There are quite a few to choose from but many math teachers seem to recommend the Durham Equation Editor.   I have been told that the Durham Equation Editor is a good editor but it is not integrated into Google Docs, but rather creates an image that can be inserted.  This is good and bad.   The bad is that it cannot be edited after it was inserted, the good is that being an image it can be used on websites, slides, docs, blogs, and any place that accepts images.


Converting Old Documents

This is actually where the largest challenge for me lied.   I had to convert all the old Microsoft Documents that had equations into a Google format.   I did learn a few things along the way and below were my outcomes from the tests that I did.
  1. Microsoft Equation Editor equations to Google docs.
    1. These will convert perfectly into Google Docs.  The converted equations will even be editable.
    2. If you upload the Word file and just view without converting the equations will not appear in the preview.  They are there when you convert but the initial reaction of not seeing them can be quite off-putting.
  2. MathType equations to Google docs
    1. These will show up as images when converted.   This is ok, but it means they cannot be changed
    2. If you preview the Word file in Google Drive the equations show up.
  3. MathType => MS Equation Editor => Google Docs.
    1. Following this will allow all the equations to be editable in Google Docs.
    2. This is possible using a non-free program called GrindEQ ($38 for a single license).  As much as I like free, I think I will be spending the money on GrindEQ to do my initial batch conversion for my Math teachers, then moving forward they can use the Google or Durham equation editor.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I am still learning about using Google Docs for math classes.  I will update this post if I find some other information.  Fell free to also comment with your own experiences.






EdListen 39: Content Filtering in Schools with Securly


Host & Producer: Bjorn Behrendt ~ g+ | twitter 
Show Website: http://www.edlisten.com/ & Google+ Community

Description:
A great episode with +Bharath Madhusudan from http://www.securly.com/.  I was one of the very first users of Securly and very happy to have Bharath on the show.   Securly is one of the only solutions that integrates with Google Apps instead of Active Directory, which makes it much easier to set policies and reporting for Chromebooks, iPads, and tablets.

In this episode we talked about content filtering in general and tried to defunct some of the misconceptions end-users have about how it is managed. 

Follow the show: | email rss | Youtube

10 Easy Steps To Screencast Your Chromebook Using A Private Hangout On Air

2/11/14 Update: Very early development but the Chrome App: Screencastify, will allow you to screencast with audio from your chromebook.


This method will allow you to host a recorded Hangout On Air (HOA) event that is completely private.  Using HOA's you can then screencast from your chromebook.   The trick is to use YouTube's "Live Event" feature.
  1. Open up to your YouTube Channel 
  2. Click on Video Manager and Live Event (You may need to enable this feature http://www.youtube.com/features)
  3. Create a Live Event
  4. Set the Event to Private
  5. Start the hangout
  6. Start the broadcast (since you created a private event this will not be shared publicly.
  7. Share your screen
  8. Do your presentation and then stop your HOA
  9. Use YouTube to trim your video
  10. TaDa! your video is recorded and nobody besides the people you wanted could have seen it.
Below is my test that I recorded privately using my Samsung series 5 chromebook.   At no point was this video public until I manually changed it afterward to showcase on this post.




* Note: TechSmith is currently working on a true screencast solution for Chromebooks, which at the time of me writing this their SnagIt for chromebooks will only take screenshots. 

EdListen 38: Discussing STEM with Fieh Chan


Host & Producer: Bjorn Behrendt ~ g+ | twitter 
Show Website: http://www.edlisten.com/ & Google+ Community

Description:
For deSTEMber Fred and I had Fieh Chan visit us in the student to talk about STEM.  Fieh is the STEM Coordinator for Stafford Technical Center and Math teacher for Rutland High School near where I live.

Contact Fieh Chanfchan@rutlandhs.k12.vt.us


Follow the show: | email rss | Youtube