I was installing SQL Server Management Studio Express 2005 on my vCenter server to run a clean-up when I found that I was getting this error:

The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 29506

In order to run the software, you’ll need to run it as an admin from a command prompt, seeing as how you can’t right click and run the software as an administrator.

  1. Open up an elevated command prompt by right clicking on CMD.exe and choosing to Run As Administrator
  2. Browse to the location of your .msi file and type it’s name in. My location was at C:\Users\Dan Lee\Desktop\sql.msi (I renamed the file to sql.msi for the sake of ease).
  3. That should it. The software will run and install without the error now.

Let me know what else you find on this, but this is pretty straight forward.

Cheers!

,

Sometimes there just isn’t enough time or patience to wait for Group Policy to push updates. Luckily we have small commands that nudge things along. Here are a few things that get WSUS (Windows Server Update Services) moving in the right direction so you aren’t sitting around waiting for Group Policy to update. I’ll give you some examples and how to check to make sure forcing worked.

Forcing Group Policy

We should all be familiar with forcing group policy. Run this command in an elevated command line:

gpupdate /force

CMD Gpupdate Force

Testing with RSoP

How can you check to make sure your group policy has updated after the force? Odds are you are changing group policy for something specific and you’ll notice a difference, but the best tool for the job is Resultant Set of Policies. RSoP is an executable that will run and show you exactly what policies are being used by your server.

Go to Start > Run and type “rsop.msc”

A small script with a UI will run, which will compile a display of all of the current policies in place on the server. A screenshot below shows the RSoP running. Notice the “Windows Vista…” remarks in the paragraph at the top. This was run from a Windows 2008 R2 Server!

WSUS RSoP

When the snap-in runs and completes you’ll be able to see what policies are applied.

WUAUCLT

WSUS works closely with the Windows Update Agent on your server or client. For instance, reporting to your WSUS server is done via the update agent. Sometimes the client reaching out to the WSUS Server takes time. It first needs to detect the server, then connect to the WSUS Server, and finally report to it. Rather than waiting, you can force all of this using WUAUCLT Commands.

Here’s an example of how to connect, detect, and report to the WSUS from a client:

Head to your client and confirm the server policy is correct. Go to gpedit.msc > Computer Configuration > Windows Components > Windows Update > Specify intranet Microsoft update service location. This should be enabled and your address should point to your WSUS Server (example: http://wsus01).

From an elevated command prompt and run the following:

wuauclt /detectnow

This will let the client find the server. If you head back to your WSUS Server you’ll see that the client will be listed under Update Services > [Server Name] > Computers > All Computers. If you catch it fast enough you’ll notice the server may have a status of “Not yet reported” (example picture below).

WSUS Not Reported Yet

We can fix that by running the following comand:

wuauclt /reportnow

The above command will force the client to report to the WSUS Server appropriately. Refresh your list in WSUS and you’ll be all set. The client will be ready to accept updates at whatever time you scheduled them.

Let me know if I left anything out, and let me know how things go.

Cheers!

 

, ,

I was recently moving large VEEAM backup files from one site to another. They were so large that I first needed to compress them.

A small side note: VEEAM backup files, which are already almost 45% compressed VMs, compress again very nicely using WinRAR or other compression tools. My backups are separated between Windows and Linux servers, which helps with similar data. I manage roughly 7TB of data for a mid sized company. VEEAM’s backups compress that data to about 3.7 TB of backups files in VEEAM format. WinRAR will then compressed them down to about 1.4TB. That’s far, far less data across the WAN while doing site-to-site Replication.

I RAR’d up my data and moved it to where it needed to go. Once there, I tried to extract the files and was worried when I got an “Access is Denied” on the files I was trying to extract. I tried running an elevated instance of WinRAR and finally gave in to the fact that I was out of luck; WinRAR just wasn’t going to let me extract these files.

My only answer was to download 7-zip to see if it would let me extract the files. 7-Zip extracted files without access warnings.

, , ,

Operating System: Windows Server 2000
Storage Device: Overland Storageworks NEO 2000
Backup Software: Veritas Backup Exec v. 9

I try to offer insight regarding some of the most recent tools of the trade, but sometimes my long searches and troubleshooting warrant some articles that will help some of the more dated and antiquated devices. We have a customer that uses a NEO 2000 Tape Storage Device for tape backups. It’s basically a 29 slot tape library with two HP tape drives and 1 slot that can be accessed to move tapes in and out of the devices without having to take out entire shelves.

We deal with a number of different errors here and there, the biggest being backup errors within the software. This is the first time I, who inherited this responsibility from a former engineer, was responsible for what seemed to be a hardware error. The only post that offered a little bit of help and verified that the issue is hardware related is here. Besides that, it was up to StorageWorks support to confirm a hardware issue.

In a nutshell, the loader was working fine, but the drive’s leader was unable to move. Here are the notes I gave to the technician for the ticket:

When I try to move a few different tapes to Drive 1, the display message sits at “Loading Slot xx into Drive 1″ for about a minute before failing and saying: “The ‘Cartridge Move’ failed.” even though the cartridge is loaded. I can manually move it back just fine.

The end result was to replace the HP Drive. The drive itself is fairly hard to come by. Luckily, our customer was willing to pay the out of warranty support. A technician was dispatched with the drive and it was replaced.

Replacing the Drive:

It’s good that there are two drives in the NEO 2000, because I would have been lost if I needed to find the correct driver for the HP Drive after it was installed. Here are the steps to replace the physical drive:

  1. On the front display panel, head to Menu > Maintenance > Remove\Clean Drive > Disable Drive > Disable the drive you want. It will flash and tell you the drive is disabled.
  2. Once disabled, the drives are literally plug and play in the back of the device. No tools are needed. The display will tell you the drive is out and then the new drive will initialize. You’ll know the drive is read when it says it is available in maintenance mode.
  3. Try to move media to it using the display. This does not require drivers or additional software. If you can move media to and from the drive then you’ll know you’re in good shape, physically. If you can’t, you’ll want to try and re-seat the drive after starting over again at step 1.

After you know you can move media to and from the new drive without issues, fire up your software and check to see if the new drive is recognized. With Backup Exec, there was immediately a serial issue. This is because the serials on the drives are different and Backup Exec needs the exact serial before it knows how to manage it. Here are the software steps:

  1. In BackupExec, under “Devices”, select the drive that should be either disabled or “offline” at this point. Right click and delete it. This instance has a different Serial and must be removed.
  2. Odds are the drive is already recognized by the Operating System, but it wouldn’t hurt to head into the Device Manager and search for new hardware or simply reboot the OS.
  3. When you know you can see the drive in the Device Manager, right click on it and check for driver details. Everything should be “unknown”. We need to add the driver for the drive. Choose to update the driver and choose to use a driver that’s already installed on the computer.
  4. Pick the driver that’s already in use and browse out to the proper .sys file located in the system32 folder. If you don’t know the proper .sys file for the driver, you can check the driver details of the second working drive and browse it them from there.

After your drives are what they need to be, you can open up Backup Exec again and check to see if the tape is available, enabled, and ready for use. Do a quick read\write test, such as an inventory, to make sure the drive is really good.

If you have any other experiences with error 8001 or something related to the NEO 2000/4000 please let me know.

If you’re out of warranty and want to check out some of the other issues regarding the NEO 2000 then head on over to the support forum here: http://support.overlandstorage.com/jive/kbcategory.jspa?categoryID=209

Cheers!

, , ,

I’ve run into a few instances where I need to restart haywire services, recently with F-Secure services on Windows 2003 R2 Servers. The high CPU loads make it impossible to log into the server. SC.exe will help with this. Here are a few commands to get your started. Open a command prompt on a server within the same domain as your troubled server and run this command:

sc \\servername stop "Service Name"
sc \\servername start "Service Name"

Before running the “start” command you’ll want to check to see if the service actually stopped. Do a query like so:

sc \\servername query "Service Name"

If you want to see more commands, just type “sc” and you’ll see everything available:

K:\>sc
DESCRIPTION:
SC is a command line program used for communicating with the
Service Control Manager and services.
USAGE:
sc <server> [command] [service name] <option1> <option2>…
The option <server> has the form “\\ServerName”
Further help on commands can be obtained by typing: “sc [command]”
Commands:
query———–Queries the status for a service, or
enumerates the status for types of services.
queryex———Queries the extended status for a service, or
enumerates the status for types of services.
start———–Starts a service.
pause———–Sends a PAUSE control request to a service.
interrogate—–Sends an INTERROGATE control request to a service.
continue——–Sends a CONTINUE control request to a service.
stop————Sends a STOP request to a service.
config———-Changes the configuration of a service (persistent)
description—–Changes the description of a service.
failure———Changes the actions taken by a service upon failure
sidtype———Changes the service SID type of a service.
qc————–Queries the configuration information for a service
qdescription—-Queries the description for a service.
qfailure——–Queries the actions taken by a service upon failure
qsidtype——–Queries the service SID type of a service.
delete———-Deletes a service (from the registry).
create———-Creates a service. (adds it to the registry).
control———Sends a control to a service.
sdshow———-Displays a service’s security descriptor.
sdset———–Sets a service’s security descriptor.
showsid———Displays the service SID string corresponding to an
arbitrary name.
GetDisplayName–Gets the DisplayName for a service.
GetKeyName——Gets the ServiceKeyName for a service.
EnumDepend——Enumerates Service Dependencies.

The following commands don’t require a service name:
sc <server> <command> <option>
boot————(ok | bad) Indicates whether the last boot should
be saved as the last-known-good boot configuration
Lock————Locks the Service Database
QueryLock——-Queries the LockStatus for the SCManager Database
EXAMPLE:
sc start MyService

Cheers!

, , , , , , ,

Here are some things you’ll need, for sure, before you get started:

  1. Access to the Exchange Server
  2. A backup of the exchange database (.edb) file and its logs
  3. The name of the mailbox you wish to recover and a second mailbox in case you’d like to copy data from the recovered mailbox to a random mailbox so you don’t overwrite anything

Here are the steps to the recovery:

  1. Add the Exchange Database to the Exchange Server as a “Recovery Database”
  2. Correct an issues with the database, possibly repair the database if it was in a dirty shutdown state
  3. Mount the database
  4. Recover the mailbox items from the Recovery Database in a number of different ways
  5. Dismount the database
  6. Remove the Recovery Database

Add the Exchange Database to the Exchange Server as a “Recovery Database”

Note: You need the .edb file and the logs. There’s no sense in going forward with this tutorial unless you have both.

We use Barracuda Backup appliances for all of our backup needs. I found the files I needed and restored them to a directory. For this tutorial it will be called E:\Recovery on my Exchange Server. Both of the logs and the .edb file reside in E:\Recovery.

Use the following command to add the database to the Exchange Server as a Recovery Database. In this command, my .edb file is called db1.edb, my server is called exchange01, and the name of my Recovery Database will be called db1:

New-MailboxDatabase -Recovery -Name db1 -Server exchange01 -EdbFilePath "E:\Recovery\db1.edb" -LogFolderPath "E:\Recovery"

Once added, you’ll be able to see the database in the EMC located under Microsoft Exchange > Organization Configuration > Mailbox > Database Management Tab. It will be unmounted. Before we can mount the database, we need to check to see if its status is a clean or dirty shutdown.

Check the shutdown status and correct, if necessary

In Exchange Management Shell, type the following command to check on the status of the database:

ESEUTIL /mh E:\Recovery\db1.edb

This will give you a long readout of the stats regarding the database. The state of the database will say either clean or dirty shutdown. If it’s clean, you can mount the database. If the state is dirty, you’ll need to repair the database by running the following command:

ESEUTIL /p E:\Recovery\db1.edb

Note: Keep in mind that some items may be lost during this repair. For large databases, this process can take a few hours.

Once repaired, run the /mh script again to make sure the database is in a clean shutdown state. I’ve never had a database fail to change the state to clean after running the /p command.

Mount the database

This can be done by refreshing the view of the database in the EMC, right clicking, and choosing to mount. If the state of the database is clean, it should mount without an issue. Keep in mind that this task may take up to minute after you click “Mount Database”. Be patient.

Recover the mailbox items from the Recovery Database

This can be acommplished in a number of different ways. For these scripts, the mailbox we will be recovering will be called “Dan Lee”.

To recover a mailbox, overwriting the old one (not recommended as it will overwrite everything), run the following:

Restore-Mailbox -ID 'Dan Lee' -RecoveryDatabase db1

To recover the contents of the mailbox to a subfolder of a different mailbox, have a mailbox already created and think of a folder name that you can remember. For this example, the Recovery Mailbox is called Admin Mailbox and the target folder of the Recovery Mailbox will be ‘dlee’:

Restore-Mailbox -ID 'Dan Lee' -RecoveryDatabase db1 -RecoveryMailbox 'Admin Mailbox' -TargetFolder 'dlee'

If you have a big mailbox or just want a certain folder recovered, you can use the ‘-IncludeFolders’ switch. Using it will only recovery the contents of the folders listed, nothing else. Separate the list of folders using a comma and space. In this example, the restore will only recovery the items of Inbox, Sent, and 2010 Budget folders to a sub folder called dlee underneath the mailbox Admin Mailbox:

Restore-Mailbox -ID 'Dan Lee' -RecoveryDatabase db1 -RecoveryMailbox 'Admin Mailbox' -TargetFolder 'dlee' -IncludeFolders \Inbox, \Sent, \2010 Budget

Last, you can do a recovery based on keywords by using -SubjectKeywords and -ContentKeywords switches, both able to take more than one word, again separated with a comma and space. To restore items that only have the word ‘budget’ and ‘marketing’ in both the subject or the body of the email:

Restore-Mailbox -ID 'Dan Lee' -RecoveryDatabase db1 -RecoveryMailbox 'Admin Mailbox' -TargetFolder 'dlee' -SubjectKeywords budget, marketing -ContentKeywords budget, marketing

I hope the examples help. There are tons of other methods to doing the restore, plenty of switches with lots of options. Get as specific as you want or just restore the whole mailbox and move what you need.

Dismount the Database

This can be done as quickly as mounting the database. Find it in the EMC, right click, and dismount. It will ask you if you are sure. When you are sure, click yes.

Remove the Database

Once dismounted, right click and choose to remove. The task will run and the Recovery Database will disappear from the list. Keep in mind, no files have actually been deleted. You’ll have to head into the file structure of the Exchange Server and delete the .ebd file and log files manually.

Links and Documentation:

I hope this helps everyone! Cheers!

, , , , , ,

Scenario: You would like to test speeds from one place on your network to another; nothing fancy, you just want to watch something move from one place to another. Here’s how to create a file to do just that:

  1. Open an elevated command prompt: Start > Run > type ‘cmd’ and hit enter, or Windows Key > type ‘cmd’ and hit enter, or if you find the command prompt shortcut you can right click and choose to “Run as Administrator”
  2. Type the following: FSUTIL FILE CREATENEW testfile.txt 104857600

This will place a file called testfile.txt in the folder that your command prompt is pointing to. Bear in mind that a command prompt typically begins in your C:\Users\[username] folder. So you’ll be able to find it there. If you want the file to be somewhere else on your computer, you can specify the full path to the file instead. Here’s an example:

To put the file at the root of C:

FSUTIL FILE CREATENEW C:\testfile.txt 104857600

To put the file in a folder with spaces just use quotes:

FSUTIL FILE CREATENEW "C:\Folder With Spaces\testfile.txt" 104857600

Is a 100mb file 100,000,000 KB? No. Why? Without getting too complicated, there are 8 bits in a byte. Bits are measured from a binary perspective. Therefore 1 Megabyte (M / MB) = 2^20 bytes = 1,048,576 bytes. 100 of those gets you 104857600 MB.

Here is a fancy converter for those of you that are confused.

Cheers!

, , ,

Windows Server 2008 R2 is a x64 bit OS. There’s no way around that. So what do you do when you want to share the printer to machines, such as XP or Win7, that may be 32-bit? Some printer manufacturers make this easy. RICOH, for example, is pretty straight forward:

  1. Download both 32-bit and x64 print drivers.
  2. Install the printer, being sure to browse out to the recently downloaded drivers for x64.
  3. Once installed, head to the properties > sharing > additional drivers section and add the x86 printer.
  4. Browse out to where you downloaded the other drives and click OK.
  5. Close out of all open windows, being sure to apply all settings.

But some printers don’t give you such easy options. Sometimes the driver packages that you download from websites don’t have the files you need readily available until you fully install a printer. For example, some more home office targeted printers will give you trouble adding the second set of printers. In this case, you’ll need to use the Dynamic Printer setup to accomplish this:

  1. Head to HP’s website and download x64 and 32-bit print drivers.
  2. If you tried before and failed, be sure to delete all drivers installed on the printer for that server located under  Roles > Print Server > ServerName > Drivers.
  3. Add a printer by opening up the x64 drivers you downloaded from HP and double clicking on the Setup.
  4. You’ll be prompted to use a traditional install or a dynamic install. Choose dynamic.
  5. Once the printer is installed, you’ll see the option to “Enter a Printer Address…”. Click this and enter the IP Address of the printer. It will install the printer with the drivers appropriately.
  6. Afterwards, the properties box will pop up and you’ll have the option to head to “Additional Drivers…” under the “Sharing” tab as you normally can.
  7. From there, choose the 32-bit drivers folder that you downloaded. It will be able to find the drivers in the folder automatically and add them as needed.

I try not to stray from using simply drivers and a straight forward wizard, but it looks like I’ve reached the end of the line with some printers; there’s just no easy way to do it. I’m hoping this will help someone else. Here are some of the articles that led me to my findings. You’ll probably see other ways to go about doing it, but I’m also not going to bow down to having to use a second 32 bit machine and pushing drivers up to the server, etc. At some point, some time, HP sat down with the exact same scenario I did and solved it without having to go to a Windows 7 32-bit machine. What upsets me is that they also knew the easiest way to accomplish this and for some reason decided to not make it so so easy on the end user.

We’ve been in limbo between 32-bit and x64 machines for years now. There are few environments out there that are strictly one or the other at this point. You’d think manufacturers would have the decency to simply create a drivers only installation including drivers of both processor types.

Cheers!

, , , , ,

Problem:

When you go to start > run > and type in tsadmin and hit enter, you get an error.

Solution:

At start > run > type tsadmin.msc

Explanation:

tsadmin was an execuatable program in Server 2003, so excluding the extension didn’t matter – you just type tsadmin and it would work. In Windows Server 2008, it’s now an MMC Snap-In, so you need to use the “.msc” extension if you are going to run it. Nothing has changed, it still works basically the same. The real name of the Snap-In is called “Remote Desktop Services Manager”. There aren’t any new bells and whistles, from what I can tell. The only action that looks interesting is the ability to import the farm details from an RD Connection Manager. But let’s be honest, we really only use tsadmin.msc to see who the heck forgot to log out of a server and then kick them out because we’re more important.

Documentation:

Cheers!

, ,

EDIT: This command only works with Windows Server 2008 R2 SP1. DISM is available to use, but some of the switches and functionality isn’t available until SP1.

We generally keep the OS partition of our VMs as small as possible. Windows 2008 is great in that we can always increase the size of a drive later on, need be. When our monitors alerted us about low disk space on our vCenter Server I was a little confused. The vCenter server doesn’t do much on a day to day basis and really doesn’t see a increase or decrease is space.

As it turns outs, the winsxs folder was growing. The winsxs folder (located at C:\Windows\winsxs holds temp backup files for Windows Updates. You’ll find this folder in most, if not all, versions of Windows – from Server 2008 to Vista and 7. When I discovered the folder, it had grown to about 9GB.

You should not delete this folder. Its existence is important. That said, the contents in the folder may be important later on. This isn’t like deleting temporary internet files. Instead, take a look at the command below. Open up a command prompt as an administrator and run the command below. It will clean up your service pack updates and reduce the folder size considerably.

dism /online /cleanup-image /spsuperseded

Running this script takes about two minutes. When I ran this on a 9GB folder, my folder size dropped to just above 6GB. That’s a pretty darn good cleanup, comparatively.

DISM (Deployment Image Servicing & Management) has a number of different maintenance features for your images. The cleanup that we did is just one of the services. Take a look at the rest of the DISM tools to see if it can help you elsewhere.

Cheers

 

 

, ,