Spark Not Loading Entire Contact List

A little more obscure Spark fix. Pretty quick and simple.

The problem is basically when you are using an Active Directory distribution list as a ‘default’ group and a user isn’t able to see the everyone on the list for some reason. Seems like Spark ‘caches’ the list and some members might not show up for some reason. Obviously checking to make sure the member is part of the list and that other people aren’t having the same issue is the first step. If they aren’t, here’s how to fix the problem.

Fix Spark Not Showing Entire Contact List From Active Directory

Step 1: Exit out of Spark completely either by killing the process or right clicking the icon by the clock and hitting “exit”. Navigate to %USERPROFILE%\AppData\Roaming\Spark

Step 2: Open the user folder.

Step 3: In the user folder there are potentially several more folders. They usually look something like “username@server”. Find the one relating to the user who’s having the problem.

Step 4: Delete their folder.

Step 5: Re-open Spark. All their custom user groups and everything should still be there. Any default groups pushed out by the server should re-load as well. The name list should be complete.


Note: I think the user\contacts list might be what specifically has the problem. This issue doesn’t come up often enough for me to experiment though. Also note that their custom status messages and a bunch of other stuff will be gone. If they need them you can always back up the custom_messages, downloads, and transcripts files and folders then put them back after this is all done to get them back (note you’ll want to exit spark to do this).

Workstation Naming Conventions for Active Directory

Been a long time since I posted anything so I thought I’d throw out a handy trick I’ve come across in a few places to make life easier for deploying workstations. Most of the places I’ve worked in have been Dell shops, though this may work pretty well with other brands of workstations.

You want to automate as much as possible when setting up stuff in large deployments and joining computers to the domain is an annoying task made easier with a VB script. One of the really annoying things is naming the computer. So naming them something that is ‘hard coded’ into the BIOS and printed on the computer can make life a lot easier. Usually this is a serial number. In the case of Dell this is the Service Tag.

There are a ton of utilities out there that will retrieve the Dell service tag from the BIOS as the “Serial Number” and it’s a function built into the Windows API. Since you use this service tag for inventory, warranty work and everything else already it makes sense to use it as the host name.

Automating Using the Dell Service Tag as The Host Name of the PC

Here is a script I found and have tweaked a bit for various networks I’ve been working with over the last few years. This one gets the Dell service code from the BIOS after joining the computer to the domain as its current name then renames it. Yeah it’s a bit sloppy but sometimes your images aren’t super clean and you need to be using domain credentials to do this. This script is definitely not mine, I got the original script here. Looks like he might have a more refined version now. The code for getting the serial is from a VB message board, some of it is mine too. If you made that part, let me know so I can credit you.


On Error Resume Next
‘ This script joins the current computer to a domain, using specified user and placing it in specified OU
‘ Created by Sole Viktor –
‘ Added getting serial number code from BIOS -Aaron

‘ Show Status
‘ Set theese variables
strDomain = “Enter Your Domain Here” ‘ Domain to logon
strPassword = “ENTERPASSWORDHERE” ‘ Service account logon password
strUser = “Enter Your Domain Admin UserName Here” ‘ Service account
strOU = “OU=Computers,DC=Local,DC=Domain,DC=com” ‘ OU to place computer in

‘ Constants to choose from when joining
Const WIN9X_UPGRADE = 16

Set objNetwork = CreateObject(“WScript.Network”)
strComputer = objNetwork.ComputerName
‘ Join Domain
Set objComputer = GetObject(“winmgmts:{impersonationLevel=Impersonate}!\\” & _
strComputer & “\root\cimv2:Win32_ComputerSystem.Name='” & _
strComputer & “‘”)
ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, _
strPassword, strDomain & “\” & strUser, strOU, _

Set objWMIService = GetObject(“winmgmts:” & “{impersonationLevel=impersonate}!\\” & strComputer & “\root\cimv2”)

Set colSMBIOS = objWMIService.ExecQuery (“Select * from Win32_SystemEnclosure”)
For Each objSMBIOS in colSMBIOS
newComputerName = objSMBIOS.SerialNumber
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:” _
& “{impersonationLevel=impersonate}!\\” & strComputer & “\root\cimv2”)

Set colComputers = objWMIService.ExecQuery _
(“Select * from Win32_ComputerSystem”)
For Each objComputer in colComputers
MsgBox “About to rename computer to: ” & newComputername
ErrCode = objComputer.Rename(newComputerName, strPassword, strUser)
If ErrCode = 0 Then
MsgBox “Computer renamed correctly.”
MsgBox “Eror changing computer name. Error code: ” & ErrCode
End If

Select Case ReturnValue

Case 0 Status = “Success”

Case 2 Status = “Missing OU”

Case 5 Status = “Access denied”

To use the script just copy and paste the quoted text into a text file, edit the proper variables at the top and save it. I won’t give a step by step guide here because I’ve had to adjust this a lot to every network I’ve been on and this specific script MAY not work exactly like it’s written for your network. I’ve always had to adjust it a little. For instance, you can move the code that gets the serial number before the join domain code in some places and not others depending on what OS you’re deploying. Why? I have no idea, just depends on the Windows Image you made.

  • Typically I’ll place this script in a folder called C:\Scripts on my image when I’m making it and name the script itself “JoinDomain.vbs”.
  • In Windows 7 the way you have to run this one is right-click on Powershell and hit “Run as Administrator” then navigate to the Scripts directory and type ./JoinDomain
  • If it works right you’ll see a bunch of Message boxes that say each step was a success.
  • If you’re using this to reimage a computer you’ll need to delete the computer from AD first. You could probably add code to the script to do this for you, I’ve never done it.
  • If you’re using Spiceworks, Desktop Authority or some other desktop management software the Last Login fields and inventory management is crucial to figuring out which user is on which computer.


Support Entry Mode for ShoreTel

I’ve heard Support Entry Mode referred to as several different terms. Technician Mode, Maintenance Mode, Special Mode, and a few others, sometimes by TAC themselves. It’s really a special way of logging into ShoreTel Director so that you can change several hidden fields and it’s not obvious how to use it.


How To Access Support Entry Mode In ShoreWare Director

Step 1 – Open ShoreWare Director in your web browser. If you’ve integrated your ShoreTel system with Active Directory, you’ll need to click the log off link up in the top left hand corner of the page.

Step 2 – Once you are at the log in screen, hold down your SHIFT and CTRL keys on your keyboard and click right on the word “User”. Check the graphic below. The highlighted area is where you need to click. Note that your cursor won’t change shape or anything.

Support Entry Mode Capture


Step 3 – When you see “*** Support Entry ***” show up in red you can log back in. There are two ways to log back in. If you are active directory integrated, just click Active Directory login button on the right and it will put you back in under your own username. The other way is to log in as you would normally with a ShoreTel username and password.

Some Things You Can Do With Support Entry Mode

This part is a work in progress, but I’ll just post what I know.

Change Dialing Rules – One of the hidden fields that comes up is the dialing rules under Trunk Groups. Go click on a trunk group and scroll to the bottom of the page. You’ll see this:

 Dialing Rules Capture

You will see much the same thing under “Sites”. It will change your entire sites Dialing Plan if you change it here.

You can change your dial string with the edit button. I’ll add documentation to this as I come across it. I’ve used it a few times to change how caller ID sends out or to add pauses, custom digits and so forth. Unfortunately, at the moment I don’t have any notes on what I did, as I was in a hurry with TAC the few times I’ve done it. I believe if you’ve gone through Advanced Engineer training they tell you how to do this. I do know you can really mess stuff up if you change this, so copy and paste the string into a backup text file or something before you alter it.

That’s all I know how to do at the moment. If you know something else Support Entry Mode allows, let me know in the contact form or comment below.

How To Use ShoreTel Communicator On A Workstation Not On The Domain

Just a quick one today. My Google feeds showed a few people searching for ShoreTel not working on a computer not attached to your domain. This is incredibly simple and easy to set up. You do need to know a few things if you’ve integrated your ShoreTel server with your domain, though.

By ‘default’ ShoreTel will expect that your Windows username is the one it needs to send to the server to log on. When it can’t find it, it will ask you for a username and password. This username and password is your ShoreTel username and password, not a windows one. I don’t even think you can put a windows domain\username into it and it will work, even for an Active Directory user.


Setting up ShoreTel Communicator On A Workstation Not On Your Domain

You’ve got two choices here on how to do this. The first is set up a new user and extension and the other is modifying an existing username. I personally prefer setting up a new one so you don’t mess any of your normal users up.

Setting up a New User

Step 1 – Make a new user in the Director. Do not put their username in the active directory box, just put them in manually.

Step 2 – Install Communicator on the PC in question. You can use the URL http://shoretel/shorewaredirector/clientinstall if you’ve followed my other guides to getting it integrated with Active Directory. If not then just replace ‘shoretel’ with your server’s host name or IP address.

If it doesn’t install, the executable you need to install it can be found at C:\Program Files\Shoreline Communications\ShoreWare Director\ClientInstall\setup.exe on your server.

If your problem is you can’t get to your ShoreTel Director from the PC you’re trying to do this on. You have a networking problem, not a problem with ShoreTel functionality.

Step 3 – After restarting your computer once ShoreTel Communicator is installed launch the Communicator from the icon on your desktop.

Step 4 – Enter the servername or IP address in the setup screen.

Step 5 – Typically it will “fail to connect” and ask for a username, password and server name. The username can be found on the user’s page in the Director, it’s most of the way down to the bottom. Here’s a screenshot:

The username is generated by the ShoreTel system. It does this automatically, and tries to anticipate it based on the first several users that were added to the system. The password by default is ‘changeme’. I usually change this for my users in Director when they have to be set up like this as when you do, you don’t have to go through the entire voicemail setup wizard, although it isn’t a bad idea to go ahead and have them do it anyway.

Step 6 – Click next several more times and they should be ready to go.

Modifying an Existing User

I personally don’t like this method as one has to consider why they need to do this in the first place. The usual answer is for the soft phone on a user’s personal computer. There are others but that’s the most common I’ve run into.

Step 1 – Open the user in Director.

Step 2 – Uncheck the “Active Directory User” check box at the top.

Step 3 – Scroll down to their Client Username and Password. Make sure these are set like you want them. You will definitely need to retype the client password in. The reason is if they were not always an Active Directory User, their password has likely changed and they don’t remember it. If they were always an Active Directory user, this probably won’t be set to the default ‘changeme’ either.

Step 4 – Set up Communicator as normal, using their ShoreTel Client username and password.

This should get it going. Again if Communicator refuses to connect the most likely reason is a network issue and will need to be troubleshooted from that perspective. A good indication of this is if you can’t get to ShoreWare Director in the web browser of the computer you are setting up.


Export E-mail Address List From Exchange 2010

If you need a list of your current user list and primary e-mail addresses for whatever reason, it’s an easy thing to carry out with Exchange 2010. No powershell required!


Step 1 – Open up the Exchange Management Console.

Step 2 – Go to the “Recipient Configuration” and click on “Mailbox” on the left hand section of the screen. Make sure the columns you want are displayed in the middle.

Step 3 – On the right hand section click “Export List”. It will bring up a save file dialog box. It will save it as a tab delimited text file.

 Step 4 – You can copy and paste the contents of this file directly into Excel and it will divide everything up into each cell just fine.

If you keep your Active Directory relatively clean you’ll always have an up to date e-mail list to send out when needed, or an easy way to get user lists for the various network appliances that don’t have LDAP connectivity.

It’s also worth noting that a lot of the lists in Exchange 2010 (and probably Exchange 2007) can be exported in this fashion, it isn’t just limited to your mailbox list.

The excellent [SOLVED] enterprise I.T. blog has a post on exporting the email list from the shell.  Go take a look at it!