Best practices for computer names on a large network?
May 20, 2008 5:53 PM   Subscribe

I need to come up with a conventional naming scheme for 200+ computers in my organization. Help!

I came on board with my organization almost six months ago. When I first arrived, there was no standardized way to name computers. They vary from things that slightly make sense to things that make no sense at all. Now IT has decided to set forth a conventional naming system for at least all the workstations on our network, and we're kind of butting heads over what it should be.

We had actually decided on a convention about a month ago and began using it, but it quickly became cumbersome and we ran into some issues. The convention we were using is as follows:

aaabyyyz-xxxxxx
* aaa = three-letter code for the computer's location
* b = floor number of the location
* yyy = three-letter code indicating the OS of the computer
* z = version number of the OS
* xxxxxx = primary user's last name and first initial

So, for example, my computer under this system is named fpp1osx5-hollowayj. As you can imagine, we ran into issues on the Windows boxes with the machines and therefore our inventorying software truncating the NetBIOS names to 15 characters.

Some things we have considered are locations, floors, departments, OS information, user information, etc. We don't know what's best to include and what's most useful to us or even our end users. I know you don't work where I do so you can't come up with the perfect system for us, but I'd love to know what has worked for you in the past.

Thanks in advance for your input!
posted by joshrholloway to Computers & Internet (27 answers total) 3 users marked this as a favorite
 
Why not assign it a 15 digit numerical code, which can be looked up (Filemaker, mySQL, etc)?
Do you need to be able to identify the computer when looking at the name?
posted by ooklala at 6:01 PM on May 20, 2008


I like to start the name out with a W for workstation or L for laptop. Then do a 3 character designation for department/location. Then the serial number of the PC/Laptop. So you end up with something like wfin54y763.

That worked good for us in past jobs. I wouldn't put the OS or OS version in there. Or the users name. People change and OS changes as well.
posted by jaythebull at 6:02 PM on May 20, 2008


Best answer: I used to have computer names that included the user's name, operating system, and phone extension, but I found that they would always go out of date - new users didn't always get a fresh install or system rename right away, operating systems would be upgraded or replaced, etc. In the end I decided to keep it short and name them "xNNNN", where NNNN is the four-digit phone extension, which (in our company) doesn't move around. The side benefit is that you can easily ask people to give you their phone extension and you'll be able to find their computer right away.

So my advice is to name the computers after something they're located near and that won't change, like a room number, location and floor code, phone number, or something like that appropriate to your company. I would name your PC "fpp1-1", or "fpp1_1" for maximum compatibility, and other computers on your floor "fpp1_2" and so on, preferably in clockwise or some other meaningful order.
posted by pocams at 6:07 PM on May 20, 2008 [1 favorite]


One problem with your existing system that if someone has two machines on their desk (or replace it eventually) with the same OS, they'd have the same code. Thus, the name isn't unique. Also, if a machine gets moved around - changing locations or users - the identifier changes. And how are you identifying a laptop's location?

At my current job, we keep it simple - every piece of equipment we (the IT shop) support has an asset tag on it with a 6 digit number. The tag number can be used to derive DNS for the machine, and a lot of data is held related to the tag number in our asset database and our ticketing system.
posted by Remy at 6:08 PM on May 20, 2008


It's best not to attach transient identifiers (eg user initials, telephone extensions, possibly even floor numbers) to station IDs. But I'd second jaythebull's suggestion to precipitate anything with a W for workstation (or D for desktop) and an L for laptop (or N for notebook). Depending on what sort of network auditing tools you use, the model number for the machine might also be useful.
posted by turgid dahlia at 6:10 PM on May 20, 2008


The location of the computer may change as well. If people move floors, they will want to take their computer with them (at least the main tower), as this is a hell of a lot easier than moving files.

On the whole, just calling it "ABC-xxx-xxx-xxx" where ABC is the organization name, and xxx-xxx-xxx is a 9-digit sequential number, printing that code on a sticky label (barcode optional) and putting it on the case, then keeping a database with location/owner/OS etc, will work out better. Each time you get a new computer, give it a new number. If a computer gets decommissioned, mark it as such in the database, but don't reuse the number. This also interacts well with the asset register and accounting system.

This will work until you get your 1 billionth computer.
posted by aeschenkarnos at 6:13 PM on May 20, 2008


Client/Customer/Etc
2 Char, Representing the designated client, could also be department.
Location of Machine;
3 Char, Initials Representing the Closest Airport
Platform;
1 Char, S – SUN Solaris, M – MS Windows NT4.0/2000, L – Linux, N – Network Equipment
Functionality;
2 Char - Purpose of machine. Create a function code table.
Environment;
1 Char Production or Staging, Dev, Test, Qa
Sequence Number;
2 Char Integer

IBOAKOLTP02

Customer - Iamabot
Location - Oakland
Platform - OsX
Func - Laptop
Environment - Production
Sequence - 2nd laptop currently in inventory.

I/We've used this for 60+ customers consisting of probably 10k unique devices, it scales decently well. I would avoid users and versions. Naming schemes are not for tracking assets, they are operational in nature in my experience.
posted by iamabot at 6:15 PM on May 20, 2008


Throwing in my two cents, basically agreeing that there shouldn't be any identifiers that aren't machine specific in the hostnames. That would include: computer location, floor number, OS, OS version number (!), and the primary user names - none of which would seem to be guaranteed to be static or unique over the machine lifetime.

Machine type (workstation or laptop) are good, either as a prefix or suffix, as is some machine unique identifier (something algorithmically generated, like FIPS-181) or based on a serial number.
posted by lhl at 6:22 PM on May 20, 2008


Why can't you just number them? 001-200, and then just increment the numbers as you replace machines? You're going to have to store information for each machine anyway, so why bother using a code that only stores partial information anyway? We do it this way at my organization, and it seems to work just fine.
posted by The Light Fantastic at 6:27 PM on May 20, 2008


I'm creating a database table of computers in my organization. I need a primary key for this table. The primary key should be unique for each computer in the table, and each computer shoudl have one and only one key, which is permanent and immutable over my organizations lifetime, so I can track the computer -- even if it changes location, OS or user.

I have come up with an arcane formula to generate a primary key, which encodes the computer's location, OS and user. If the computer's location, OS, or user changes, I will either have to change the primary key, thus losing any continuity of computer number, or I will have a key which encodes out-of-date information.

You see where this is going: with my arcane formula, I'm either going to have keys that encode lies, or keys that are not permanent. Nor can I ensure that a non-penermant key is unique: if Joe Jones in location 3 moves, and Jane Jones takes his place, I'll encode the same key for both computers.

Do as ooklala suggests "assign it a 15 digit numerical code, which can be looked up (Filemaker, mySQL, etc)?"

This problem does come up in database design all the time (google "Natural key" "synthetic key"). The general answer is, unless your natural key is unique, obvious, and unchanging, use a generated, sequential, meaningless key.
posted by orthogonality at 6:34 PM on May 20, 2008


Is it really necessary to include the assignee's name in the computer name? It seems like it gives malicious folk an unnecessary clue as to whom the computer belongs.

At a small academic IT department that will remain nameless, the local administrator password was known by all the (student) help desk techs. Also with this version of Windows, every PC had a the C drive shared by default on the network. One day, someone idly wondered: Hm. What if a student were to use the local admin password to remotely access the C: drive of his professor, and steal exams, etc? Obviously, this was a huge security boner, but I think it makes the point that having the assignee tied to the computer name could aid someone in targeting their hacking efforts.
posted by Brian James at 6:48 PM on May 20, 2008


Mine is:

X-XXX-X-XXXXXXX-XX (without the -'s)

First: F (full pc), T (thin client), S (Server), M (Laptop(mobile)), X (Infrastructure), R (routers).. I (ip phone - p was taken)

Second: Location code (11M, 24R, BRD, CHL)

Third: Floor

Four: Identifier (ADMIN, FRNTOF, RM103..etc)

Five: Count (01, 02, 03, 04) as needed.

F11R2NETADM01 is my desktop's name.
I11R2NETADM01 is my phones name.
T11R2NETADM01 is my thin clients name
M11R2NETADM01 is my laptops name.

It works fairly well. I deviate for printers, and use the scheme:

XXX_XXXXXX_XXXXXX

3 = site code, 6 = location (as human readable as possible), 6 = type (HP2200). I leave the _'s in the name.
posted by SirStan at 6:54 PM on May 20, 2008


Best answer: The majority opinion here seems to be that a computer name should uniquely, permanently represent the computer. That's one way of naming computers, and it's certainly a valid and popular one, but I don't think it's the only way to go. Each computer does have a unique ID (serial number, asset tag, onboard MAC address, etc.), and that's what you would want to use in your asset tracking and as a natural primary key in any databases, but the network name doesn't have to be unique or permanent. You may consider it more important to be able to correspond a computer name quickly to a person or to a location than to a database entry - it depends on your workflow.
posted by pocams at 6:54 PM on May 20, 2008


Best answer: IP Mnemonics.
posted by unixrat at 7:04 PM on May 20, 2008 [2 favorites]


A lot of people seem to support assigning meaningless numeric keys. I beg to differ—if you could embed information in the names, by all means do so. Yes, most of the workstation information needs to be stored in a separated database anyway, but a naming scheme that makes sense could save you a lot of visits to the lookup DB. Not to mention having an extra tracking ID that's meaningless quickly becomes a burden to your memory, and a hassle to say over the phone.

I second pocam's advice, but make sure your machines don't get moved around.

If you really need to assign a sequential code, keep it short and simple (≤ 2 digits) and mix with other non-numeric identifying information when possible. Also consider generating readable names for sequences that don't update often (e.g. purchase lot).
posted by semi at 7:06 PM on May 20, 2008


Just let employees name their computers whatever they want, and keep a database with all the appropriate information.
posted by delmoi at 7:14 PM on May 20, 2008


Best answer: A large corporation I worked at used two random English words concatenated with a laptop/desktop designator appended, with a side database for the metadata. It seemed to work well.

The thousands of machines we used in the backend had sequential numerical IDs with a location (colo building) tag tacked on the front and were indexed in the same database for all the details.
posted by kcm at 7:34 PM on May 20, 2008


I'm in a school, and the scheme I use is

YYYY-GG-NN-RRRR

including the dashes, for readability. YYYY is the year the computer was purchased, GG is 01 for the first batch of computers purchased that year, 02 for the second batch etc., NN is the number within that batch, and RRRR is a room location code. So the fourteenth machine from the third batch purchased in 2006 that happens to have been installed in the library would be 2006-03-14-LIBR.

Each machine gets YYYY-GG-NN inscribed on the front of the box in large friendly permanent marker handwriting, and that's the code I ask people to use when reporting problems. It works well for me because all the machines sharing a given YYYY-GG will be identical, so I can tell straight away what kind of problems they're likely to have based on past experience with other members of that group; also, given YYYY-GG-NN in a problem report, it's very easy to look that up in Entire Network\Microsoft Windows Network to get the full code including RRRR.

If I move a machine from one room to another, I change the RRRR code on the end of its name, but leave the rest the same. Which means that if that machine happened to have been a print server, it will no longer get jobs fed to it from other machines that were expecting to find it in its old room.

I use the computer description, rather than its name, for distinguishing laptops from print servers from student workstations from staff workstations, and I also keep each of these machine classes in its own OU in Active Directory, so there's no real need to encapsulate that stuff in the NetBIOS name.
posted by flabdablet at 7:38 PM on May 20, 2008


Depends on what you use the names for. Some organizations name them strictly via their property tag or serial number. When you are supporting the user, they tell you the number on the sticker and you know which machine you're working with.

Others name them specifically based on their role. LOCATION-ROLE-001 Works good for shared PCs. (Like retail-AUTOPARTS-REGISTER-01 or CHICAGOSOUTH-KS01)

Or LAN jack location.

I personally prefer naming servers via their roles, workstations by their property tag/serial. Least amount of jacking around with renaming PCs, which is a huge pain in the ass. And when you upgrade a server you don't have to change anything on the clients.

Chances are you're going to be in and out of the property database anyway. There's no reason to waste time naming computers based on who is sitting there or what desk they're sitting on.

And for the love of god, please don't name things "cutely". Oh, great, make all the users remember that the fileserver is "Pistons" and the print server is "Timberwolves". Thanks for nothing. And don't write on computers! It's rude. Use labels.
posted by gjc at 8:05 PM on May 20, 2008


Best answer: We did username-XP(or 2k or MAC)-asset

Our asset numbers were 4 digits.
posted by k8t at 8:48 PM on May 20, 2008


Best answer: Nobody seems to be saying this, so lemme put in a plea for the users.

Yeah, you're the ops guy, and you deal with dozens of computers on a daily basis and rarely the same one two days in a row, so of course you're mainly concerned with solutions for managing a lot of machines. But don't forget that 95% of the organization has a totally different interaction pattern with the computers -- they use a half-dozen computers or so regularly and the rest hardly at all. If you say "Sure! Just remember that your computers are named 2K275757, 7G18839, 9J333141, and 3P13245" they're going to hate you. Nor is it that much better to name them ECON-XPSP3-1001; the users already know the first part and don't care about the second part (except a general windows/mac/unix distinction) and the third part is, again, a pain to memorize. Name workstations after OS and user, and other machines after OS and function; don't put extra codes into the names unless most of the actual users who use that machine are going to benefit.
posted by inkyz at 9:05 PM on May 20, 2008 [1 favorite]


Best answer: Each machine at work has an asset tag on it, which is a meaningless number attached permanently to the hardware. The network names of the computers are not assigned in a standardized way. By convention, people at work name their machines username-foo, where foo is something meaningful to the user. Right now, I have username-vista and username-tablet, but in the past I have had boxes named username-prod, username-dev, username-test. Shared servers are exempt from this convention, and they have all kinds of different names (many of them alluding to the name of the organization that maintains the server and the function of the server, but some of them are totally arbitrary).

I not infrequently rebuild my boxes from scratch, and/or dual boot from separate partitions so it is very helpful that I can change machine names at will to prevent network conflicts. If you have a user base that is at all technical and can do any of their own administration, domain joining, etc then you absolutely should not have a forced naming standard. Stick with the asset tags for positively identifying hardware.
posted by crazycanuck at 9:07 PM on May 20, 2008


Best answer: I like the unique serial idea - but without the number. Pick dictionary words and keep a database of the current ones. That combines advantages: it doesn't have to be changed when the computer changes hands or location, and it's memorable and easily "say-able" over the phone.

If your guys actually out fielding calls don't need the info encoded in the name, I wouldn't bother. It's just another thing to have to update (or to be out of date, more likely,) and for what?
posted by ctmf at 9:18 PM on May 20, 2008


on preview, username-foo is a great idea, too. Especially if foo is easy to say and understand over the phone and easy to quickly recognize and select in a drop-down list. Shared printers - that goes double or more.
posted by ctmf at 9:21 PM on May 20, 2008


Best answer: I agree with those who say not to use some sort of strict naming convention like what you outline. It will cause problems.

The criteria you should be looking for in names is that they should be:
  1. unique and easily distinguishable
  2. never change for a particular box
  3. never be reused
  4. be easily pronounceable
  5. be easily memorized
  6. be short
A systematic convention like the one you named above fails many of these. If you need other information, you should keep it in a database. Think you'll have trouble keeping it up to date? Well, you'll have even more trouble keeping a meshugah naming convention up to date.
posted by grouse at 3:33 AM on May 21, 2008


Response by poster: Thanks so much for all of your suggestions, everyone. After thinking about it more, I think we value being able to jump on a task quickly without worrying about searching a database, so I think we'll probably end up doing identifiers based on OS and user (users in our organization don't change much, and when they do, it's a big deal and IT has stuff to handle regarding it anyway). I also like the idea of a memorable dictionary phrase, though, something like Flickr does with its mobile email addresses.

Thanks again!
posted by joshrholloway at 5:50 AM on May 21, 2008


Response by poster: Oh wow, I just saw that IP Mnemonics link. That's pretty brilliant. I think I might try it.
posted by joshrholloway at 5:58 AM on May 21, 2008


« Older Keeping a computer in the car powered on while the...   |   blog audio player Newer »
This thread is closed to new comments.