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).

Spark Window Fixes

Spark is notorious for opening up half way cut off when you log in or hidden off screen. There are a lot of tricks out there for moving it around with the mouse or arrow keys but digging through the Spark directory in the AppData\Roaming folder I’ve found a few config files that can be edited to quickly solve this problem for users.
This is for the Windows version but you could probably adapt the process to Linux or Mac, since I assume it uses similar, if not identical files. You’d just need to figure out where they are stored.

How to Fix Spark Main Window Showing Up Off Screen

Step 1: Close Spark completely. Either right click the flame icon near the clock, or kill the process in Task Manager.

Step 2: Navigate to the following folder.

C:\Users\username\AppData\Roaming\Spark

You can also just click your start menu button and type %USERPROFILE%\AppData\Roaming\Spark

Step 3: Open the “layout.SETTINGS” file in Notepad

Step 4: The file will have the following text or something very similar.

#Storing Spark Layout Settings
#Fri Sep 25 15:04:29 CDT 2015
mainWindowHeight=520
preferencesFrameWidth=600
preferencesFrameY=-1
chatFrameY=325
preferencesFrameX=-1
chatFrameX=590
mainWindowWidth=310
mainWindowY=1120
mainWindowX=400
chatFrameWidth=500
splitDividerLocation=-1
chatFrameHeight=400
preferencesFrameHeight=600

Change the numbers in the lines “mainWindowY=1120” and “mainWindow=500” (they are in bold) to:

mainWindowY=0
mainWindowX=0

Note you can just copy and paste the two lines above to replace the two lines in your SETTINGS file.

Step 5: Save the layout.settings file.

Step 6: Open Spark and log in and see if it doesn’t center the main window on your screen. If it doesn’t, you didn’t have the Spark.exe process entirely killed when you edited the file.

You might be able to just delete this file entirely and Spark will rebuild it with defaults, I haven’t tried, but I suspect it might.
 

Extending Your WI-FI With a Repeater

More of a home technology post and how to this time. Repeaters are not necessarily something you’d really consider in a business setting unless you’ve got a small shop with just one or two users somewhere and just need to extend your WIFI range or something and don’t want to spend a lot of money with cable to do it.
For home use just to get your Wi-Fi out into your yard or into that one dead spot in your house, a wireless repeater is a pretty decent way to do it. I’d never had good luck with them until I came across this one on Amazon. It’s the JCG JWA-N8002 WIFI Repeater.
It actually has a lot more functions that just working as a repeater which I will definitely be putting guides up for.
Note: This repeater is an older model. It works on B+G+N. They make another model that works with N+AC but I can’t find them for sale. Also note that the one pictured doesn’t have the US plug, but the two I’ve bought so far do. I think the N80002 is the US/Canadian model and the U25 is for the European market.
The great thing about this repeater is, usually you can find them on Amazon for like $14. The sad thing is, they go really fast! One complaint I saw was the instructions are hard to decipher so I’m posting instructions here.

Setting Up The JWA-N8002 As A Repeater

Step 1: Figure out a good place for the repeater. You need an empty wall outlet. It also needs to be where it can get signal from your WiFi router. Don’t plug it in somewhere in the dead spot. Put it between the dead area and your router. A good place is where you get about two bars of signal from your router.

Step 2: Once you’ve figured out a spot, get your laptop, or tablet. Plug the repeater into the wall and wait a few minutes. They take a moment to turn on.

Step 3: Connect your computer to the repeater. The default network the repeater is set to is JWA-N8002. The password is 12345678. This is printed on the device as well.
Note: Alexis points out below that the password might be different. Alexis’ password was ‘uquququq’

JCG Wireless
It’s the top option here.

Step 4: Open your web browser. I prefer Firefox these days, but I have used Chrome. If you use Internet Explorer, you may need to use “Compatibility View”. Browse to http://192.168.10.1 enter the username admin, and the password is also admin.

JCG Admin Password
Default username is admin, password is admin.

Step 5: The basic set up wizard should already be set to “Repeater”. If it isn’t select it. Leave the “Auto Copy From Router” checked. Mine did not have the “Auto. Configure Lan IP Address” checked. I think if you don’t have a DHCP Server on your router you might need to check that.  Next, click the “Site Survey Button”. Don’t change anything else on this screen.

JCG Repeater Easy ConfigStep 6: Check out which wireless networks it found. Make sure you can see yours and it has at least two bars of signal. If it doesn’t you might want to move it. It might be good with just one. Here’s what mine looked like.

JCG Repeater Easy Config With Site Survey
It found my neighbors too. TheGreenTower is mine. The one called “TheGreenTower-ext” is a repeater I already set up. TheGreenTower-ext would be a good network to repeat off of. The Suddenlink6092 might not be since it can barely see it.

Step 7: Select your Wifi Network and enter your password in the “Pre-Shared Key” box. You may need to select “Passphrase” from the drop down menu.

 
JCG Repeater Easy Config With SSID Selected

Step 8: Hit save and apply.

If you entered everything correctly the repeater will reboot and you’ll see a new wireless network called “yournetwork-ext” and you can connect to it using the same password as your regular one.
You should be able to connect to your Wi-Fi in any dead spots.

Remotely Killing Processes on Windows Networks

Time for a System’s Administrator trick that I’ve found to be extremely useful over the years. Sometimes you’ve got a program that’s stuck on a machine in an office many miles away and you just need to kill the process to fix the issue. If all your machines are connected, most of the time you can do that through WMI procedures.
There are several ways to do this. I’ll list two command line methods, and a GUI method  here as they are the least obtrusive and easiest to come by.
You might check my article on Remotely Listing Processes on Windows Networks as it will clear Step 1 in each of these up.

Killing Processes Remotely With taskkill

Taskkill is a built-in utility in Windows. It should be available in any version after Windows XP but at very least I’ve seen it in Windows 7. This is good because almost any machine will have this. It’s a bit tougher to use than the other method I’m going to tell you about.

Step 1: Determine what the name of the task is you need to kill. This is usually just the name of the executable of the program you’re trying to terminate, like winword.exe, chrome.exe, notepad.exe, or explorer.exe (don’t, seriously).

Step 2: Open the command prompt in Administrator mode. You do this by opening your start menu, typing cmd, and right clicking the “CMD” or “Command Prompt” icon and clicking “Run as Administrator”.

Step 3: Type this:

taskkill /s remotecomputername /u domainname\username /p password /IM processname

Hit enter.

It should give you a success message.

taskkill

Note: You can find a full reference guide to Taskkill here: Taskkill.

Killing Processes Remotely with Pstools

This is a set of tools I’ve kept in my Sysadmin kit for a long, long time. They’re made by Sysinternals and you can download them free from Microsoft, and they do all kinds of neat things. The relevant tool here is “Pskill”. Personally I think it’s a little easier to use than Taskkill and a bit more versatile. It’s better for scripting as well.
First off, go ahead download the tools and extract them to a folder somewhere on your computer, or put them on a Thumb Drive.
Note: You can download and get the reference guide for Pstools here: Pstools
Note: You have to hit an “I agree” screen the first time you use them on any computer.

Step 1: Determine what the name of the task is you need to kill. This is usually just the name of the executable of the program you’re trying to terminate, like winword.exe, chrome.exe, notepad.exe, or explorer.exe (don’t, seriously).

Step 2: Open the command prompt in Administrator mode. You do this by opening your start menu, typing cmd, and right clicking the “CMD” or “Command Prompt” icon and clicking “Run as Administrator”. Then navigate to the folder you placed the PStools in. I typically just put them on the C:\ drive on my machine, in a PSTools folder. So you’d type this:

cd \pstools

Step 3: Type this:

Pskill  \\remotecomputername -u username -p password processtokill

Hit enter

It will run through a more complex set of steps than Taskkill but the outcome is pretty similar.

Pskill

A GUI Method for Killing Processes Remotely

With almost anything in Windows there’s a GUI method for doing things remotely on other computers on your network. I could not find an easy built-in way to do this in Windows.
I did however find a piece of Freeware that’s available for personal non-commercial use that you can use. It’s called Remote Process Explorer by Lizard Systems. If your environment is educational, non-profit, personal, or non-business you can use it for free. The commercial license is pretty reasonable at $99 though.
I played with it for a bit to make sure it works and it’s a pretty solid piece of software that does what it says, and has a few extra features like auto discovery of computers, and some basic network and monitoring tools built-in too. It’s not the only one like it, but it’s one of the few out there that isn’t outright shareware, or part of a bigger suite.
I’m not going to put any instructions on how to use it here, because I don’t use it myself at the moment. I felt that I needed to include a GUI option for those that don’t like the Command Line.

Remotely Listing Processes in A Windows Network

Managing processes and tasks on a Windows network remotely is a big part of Systems Administration. Some companies and organizations have these great Desktop Management tools and others don’t. Most of those tools though just use functionality that’s built into Windows and make it easier to work with.
Sometimes there are situations where those tools just flat refuse to work on remote machines as well, for whatever reason. Here are a few tools that might help solve that problem.
Two of these are command line, and the other is a GUI tool I found that seems to work pretty well. Personally I’m a big fan of the command line since it is easier to script.
If you’re needing to kill a process remotely check out my related article How To Kill Processes Remotely on a Windows Network.
 

Using Tasklist to List Processes Remotely

Microsoft has provided a tool called Tasklist since Windows XP or so to list running processes on machines. It’s fairly easy to use and already included with Windows.

Step 1: Open Command Prompt as an administrator. To do this, click your start button, type “cmd” and right click on the “Cmd” or “Command Prompt” icon and click “Run as Administrator. If you’re running Windows XP this is not needed.

Step 2: Type this:

tasklist /s remotecomputername /u domain\user /p password

You’ll get a list of all the running processes. This can help you determine the name of a stuck process, the PID and any of a number of other kids of information.

Note: A full reference for this tool is found here: Taskkill

Using Pstools to List Processes Remotely

I’ve used pstools for a long time. They’re pretty versatile and can be used in batch scripts and task easier than the built-in tools. Hopefully they’ll be supported for a long time to come. I highly recommend downloading them. The one drawback is the “I agree” screen you have to click on the first time you use them.

Step 1: Open Command Prompt as an administrator. To do this, click your start button, type “cmd” and right-click on the “Cmd” or “Command Prompt” icon and click “Run as Administrator. If you’re running Windows XP this is not needed.

Step 2: Type this:

pslist \\remotecomputername -u domain\user -p password

Same as tasklist, you’ll get a readout of all running processes on the remote computer. You get a bit more information too.

Note: A full reference as well as download for this tool is found here: Pstools

GUI Method for Listing Processes Remotely

There are a lot of tools out there in various software suites that will do this. If you’re looking for a standalone tool, one that I found is Remote Process Explorer by Lizard Systems. It covers both listing and killing processes in remote computers.

I don’t use this tool, but I have tested it a bit and it’s pretty solid. I am just providing a GUI method for doing this as I couldn’t find a built-in method for doing this in Windows. Check it out. The software is freeware for non-commercial purposes, and $99 for a commercial license, so it’s pretty fair for everything it does.

Notes: This post assumes you are using at least Windows 7, though most of these tools will run just fine on earlier versions of Windows.

Fixing Spark Instant Messenger Too Many Custom Status Messages

I know a lot of companies out there use Ignite Realtime’s Openfire Server, and their Spark Instant Messaging client. Mostly because it’s free and easy to set up. It’s a great product and I highly recommend checking it out if you’re looking for a good Open Source instant messaging server with a lot of functionality behind it.
It’s got a couple of annoying things that it does though and I’ve got a couple of fixes I’ve found that should help out my fellow SysAdmins. First one here is how to fix that issue really quickly when users add too many custom status messages and they don’t want to delete them one at a time.
Note: This assumes the Windows version, you could PROBABLY apply this to the Linux and MAC versions fairly easily by looking in the equivalent places on their machines.

How To Delete All Custom Status Messages in Spark

Step 1: Get access to user’s computer. Typically you can remote into their machine’s file system pretty easily, depending on how you have your network set up something like this: \\pchostname\c$ and just see their entire root drive if you’re a Windows Administrator.

Step 2: Navigate to their User Profile folder and find their Spark account folder. Here’s where to look in various versions of Windows:

Windows Vista/7/8/10 (Probably, might be some slight variation between versions, this is for Windows 7 specifically)

C:\Users\username\AppData\Roaming\Spark\user

Windows XP (Probably, you may have to wing it, I don’t have an XP machine with Spark on it handy to confirm this. If someone wants to let me know I’ll post it.)

C:\Documents and Settings\username\Application Data\Spark\user

Note: You can usually get almost where you want by typing %USERPROFILE% in the Start Menu or in the Run Command if you’ve remoted directly into their desktop. 

Step 3: Find and open the user’s Spark profile folder in the ‘user’ folder. It’s going to look something like this: “username@servername”.

Step 4: There should be a file called “custom_messages.xml” in there. Delete it.

Step 5: Success.

Note: You do NOT have to shut Spark down to do this. I’ve tested this on version 2.7.1 and 2.6.3. Probably works on some older versions but they probably won’t have the files in the same place because older versions just put the app in the user profile. Concept is the same though.

Fix External and Internal Email Server DNS Conflicts

This might be an old trick, but it’s never been one I  have been able to easily remedy. I’ve worked and done a lot of jobs at a lot of places where this has been a problem, especially on Windows networks. With Linux-based DNS servers, this isn’t such a huge trick.
When you set up a Windows domain for a company, let’s call it “Widget Core”, and they host their own email, let’s call it “widgetcore.com” you generally do this. Their local Windows domain is usually called something like “widgetcore.local” and their website and email domain is widgetcore.com. So when you set up an Exchange server you point their MX records with their domain registrar something like this:

widgetcore.com
widgetcore.com MX preference = 0, mail exchanger = mail.widgetcore.com

Internally they might look like this:
internalmailserver.widgetcore.local MX preference = 0, mail exchanger = internalmailserver.widgetcore.local
Note: I modified this from an NSLOOKUP. Your registrar might call the preference “priority” or “weight”.
The problem is that if you set up someone’s company email on their phone, they won’t get company email over the company wireless. That is unless maybe the Exchange server is in a DMZ or you’ve got something else elaborate going on. If you named the internal domain “widgetcore.com” you couldn’t get to the company website inside the Windows domain and all sorts of other problems would crop up.
There is however a simple but non-obvious fix. Just add another forward lookup zone in Windows DNS.

Resolving Different External and Internal Server Names In A Windows Network

Step 1: Open your DNS Manager. I like to install the Administration Tools on my workstation so I don’t have to remote into a server. You can just connect to a DNS server this way. Here’s a link for the Windows 7 version.  Here’s the Windows 8.1 Version.  Here’s the Windows 10 Version (Technical Preview). 

Step 2: On one of your DNS Servers, drill down to the “Forward Lookup Zones” and right-click directly on “Forward Lookup Zones” and click “New Zone”. A wizard will come up. Leave everything default until you come to the “Zone Name” screen. Name the zone EXACTLY what the name of your email server is on the internet. In the case of Widget Core, it would be mail.widgetcore.com.

DNS Zone Name

On the next screen in the wizard, leave it on the default “Only allow dynamic updates”. You can set it to something else if you want, I can’t see how it would matter, but you’d probably have to update every single DNS server in your domain if you want to add something here.

Finish the Wizard.

Step 3: Right click on the new Forward Lookup Zone you just created and select New, then click “New Host (A or AAA)”. Leave the name blank, and just put the internal IP address of your mail server in the IP address field. Click OK. You should see the record you just created. The name field should say “Same as parent folder” and the IP address or “Data” field should have the IP of your mail server in it.

A Record Setting

Step 4: Ping the internet address of your mail server and see if it doesn’t resolve to the internal IP address if your e-mail server. If so it’s a success.

Now, both your internal and external host names should resolve to the same IP address on your local network. This should resolve your problem of cell phones connected to your email server not being able to connect while on the company Wi-Fi network. There are other ways to fix it, but this is the simplest I’ve seen and doesn’t need a lot of messing around with the network or doing anything weird with your registrar/web host. This also is the first step in fixing a really annoying Outlook problem that can occur with certificates.

Importing a WAVE File into a ShoreTel Voicemail Greeting

Sometimes you need to import a WAVE file into a user’s voicemail greeting. This might be because their connection to your ShoreTel server isn’t great, they’re on the road or any of a number of other reasons. Unfortunately there’s no tool to do this in ShoreWare Director. Or at least there isn’t in older versions, there might be in newer versions.
This is one of those handy tricks you should know if you don’t have access to their computer and they REALLY need a specific message recorded by themselves placed as a greeting. I would not suggest doing this unless you have no other choice, as they can call the voicemail system and do this over the phone, though it is VERY annoying to do it that way.

Importing a WAVE File into a ShoreTel Voicemail Greeting

NOTE:  They already need to have a greeting in place for this to work as you’ll be replacing a greeting. If they do not have a greeting, do not bother doing this.

Step 1 – Have the user send you a voicemail with the greeting. Personally I just have the user call me and let it go to voicemail. Alternatively you can use Audacity to record one. I just prefer using the voicemail system because it’s quicker.

Step 2– Export the voicemail to a WAVE file. This is done by right clicking on the voicemail in ShoreTel Communicator, or by saving the WAVE file attachment from Outlook.

Step 3 – Save the WAVE file to your ShoreTel Server somewhere.

Step 4 – Remote into your ShoreTel Server and navigate to the C:\Shoreline Data\VMS\SHORETEL\[User’s Extension] folder.

Step 5 – You’ll see a few WAVE files there hopefully. The files are like this: [Users Extension]Greet[A Call Handling Mode Number]_[A Number].Wav. The Call Handling Mode numbers work out like this:

01 – Standard
02 – In a Meeting
03 – Out of Office
04 – Extended Absence
05 – Custom

Step 6 – If you want to replace Extension 1900’s Out of Office greeting you’d need to copy the WAVE file you just exported to the following folder C:\Shoreline Data\Vms\SHORETEL\1900 and then rename 1900Greet03_01.wav to 1900Greet03_01x.wav or something. Rename the voicemail WAVE file you exported to 1900Greet03_01.wav. Note that the 01 at the end of the file name might be 02, 03, 04 or something else. This number seems to increment every time you record a new greeting through Communicator.

Step 7 – Test to make sure this worked in the proper call handling mode.

Again, if the file for the Call Handling mode Greeting you want to replace does not exist, this won’t work. I’m looking for a way to manually tell it what file to look for, but so far I’ve been unsuccessful. It’s probably in the database somewhere. If anyone knows how to do this let me know.
Also if anyone knows if ShoreTel has allowed you to import greetings in newer versions please let me know.

Connecting To Servers Without Remoting In

More of a quick tip than a real How To, but I’m surprised how many Systems Administrators don’t know this. A lot of the tasks you do on your local workstations that you also do on your servers can be done remotely without any sort of third-party tools. You can connect to the Services, Computer Management, and several other common tasks on a remote machine quickly without having to use RDP or anything like that, as long as you have administrative access to the machine in question (or at least know an admin password).

Connecting To Common Tasks On Remote Machines

Step 1 – Check to see if what you’re needing on your local machine has an “Action Menu” at the top. I’ll use Services as an example.

Local Services

Step 2 – Click on the Action menu and select “Connect to another computer…”

Step 3 – Type in the host name or IP address of the computer you need to connect to.

Step 4 – Enter a password if asked, but if you already have proper credentials you’ll be looking at the services on that local machine.

I know this has saved me countless hours of time over the last several years when my various servers failed to start up correctly. Sometimes if there’s something wrong this will time out, but for quick checks, it’s an invaluable tool. I’ve also found that even when other remote tools don’t work, this usually will.

InfoMaker 10.5 Fix

Quick post! I had a user whose InfoMaker 10.5 was just crashing when she opened a report. It would give the infamous “Check for solutions online” dialog box when you opened a report from the library. Any report at all would cause the crash. I fought with this for two days before I found the answer here at Chris Pollach’s Blog on LMPX.com. I’ll put the instructions here though in case that site ever disappears.

  1. Exit InfoMaker. Since it has already crashed, you’re probably not in it anyway.
  2. Run “RegEdit”. It is important to do this logged on as the username that’s having the problem as it seems to be profile specific. You will have to load that user’s hive if you are running regedit from another account.
  3. Delete this specific folder: HKEY_CURRENT_USER\Software\Sybase\InfoMaker\10.5\Layout\Default
  4. Check InfoMaker and see if the problem is resolved.
What seems to be happening is the Window Layouts for InfoMaker’s Report screens get screwed up and save to this registry key. Deleting the folder rebuilds it when InfoMaker is started.
Also I noticed that other versions of InfoMaker keep this information in the same place so replace the 10.5 for whichever version is having the issue and you’re good.