Category Archives: Microsoft

All Microsoft Products (Exchange, SQL, Windows, Server)

Vista Printer Support

When Vista was first released, I was one of the first people to say I’d never upgrade to something slower, bulkier, and overall completely different from what I was currently using (XP Pro). But since I work in the industry, I should probably know the answers to questions people have regarding Vista.

So Vista here I go! I installed Vista Enterprise SP1 64bit on my work machine (2.0GHz E2180, 5.5GB DDR2 800). Everything has been working actually much better than I thought – there are a decent amount of Vista drivers (although 64bit support is a little smaller). One issue I came across was the addition of printers.

I’m assuming you can find the Vista drivers on your own. If you have any problems, let me know and I’ll see what I can do.

After that, we will want to add the drivers onto the print server. We do this by using a Vista machine with administrative privileges (domain admin account works wonders).

Start by running the MMC (Microsoft Management Console)

Then Click on File, Add Remove Snap In

Now select Print Management, and Click Add

A window will pop open. This is where we select the print server we use (you can always browse to the server name if you can’t remember). Then click add to list to add the printer below.

Now click Finish. That will close the print configuration window and you’ll be back on the MMC. You can click OK now. You should see Console Root, Print Management. Click once on the Print Management word to expand the listing.

Expand Print Servers, then your PrintServerName, and right click on Drivers. Select Add Driver…

Follow along in the Wizard to add a print driver. If you’re importing a 64bit driver (like I have to do), then make sure to select x64 instead of x86.

Click Have Disk… and then browse to your files (the installer should have extracted the required ini files for your system to a folder of your choosing – in our case it’s C:\lexmark\drivers…)

If prompted, select your correct printer from the list.

You can then verify the install went smoothly (when there are no errors), by clicking on the Drivers folder and searching for the driver you installed. In my case it’s anything with a x64 as the environment type.

Paying for Convenience

I’m a big fan of open source software. It’s free, it generally has the features I need/want, and it usually doesn’t have the “bloat” associated with commercial software. Not to say that commercial software doesn’t have a place in our daily lives – I am forced to use Microsoft Office, Adobe products, and Microsoft Windows at work – because most people are familiar with commercial software. And from a business standpoint, if an open source application crashes your systems and causes you to lose money, who’s responsible? Whereas there’s always going to be a support person at a commercial place (albeit they might not have the easiest accent to understand, they’re generally helpful for varying needs).

That being said, I find it hard to believe that companies will take great ideas, or several different free software solutions, and tie them up neatly into one package. And then have the audacity to charge several hundred dollars.

PSEXEC tools suite, which was recently bought out by Microsoft itself, is a collection of tools that help in the administration of computers on a network. They’re offered up for free. The ones I use the most are psexec, pslist, and pskill. Psexec will remotely run a program with any privileges you require – that way my “power users” can have the rights to install only the things I send to them. Pslist will list all running processes on a remote computer – this is especially helpful when a user complains that their system is running slow or crashing (it’s usually a website loaded in IE that brings the computer to a halt). Pskill will terminate any running application – which is great when I hear someone playing loud bass across the office – I can remotely shut that music down (grin).

So why would I pay nearly 300 dollars for a suite that promises the following:
Update Group Policy (psexec.exe \\Computername gpupdate.exe)
Start computers by Wake On Lan
Remote restart (shutdown -r -f -m \\Computername -t 30 -c “comment”)
Remote shutdown (shutdown -s -f -m \\Computername -t 30 -c “comment”)
Real time graphical reporting (not sure what they mean, but spiceworks can probably handle this)
Ping (start, run, cmd, ping ip)
Send Message (net send Computername message)
Read Remote Registry (regedit, connect to network registry, Computername)
Run executable (psexec -i -s -d \\computername “C:\program files\internet explorer\iexplore.exe” http://www.google.com)
Run executable remotely (see above)
Start Event Viewer (start, run, eventvwr)
Start Explorer (this should already be running)
Start Remote Desktop (start, run, mstsc, Computername)
Start Remote Assistance (we use VNC for this)
Immediate WSUS client update (psexec.exe \\Computername wuauclt.exe /detctnow)

Vista Unable To Modify System Files

I was working on a computer with Vista installed. And, as the administrator, I needed to remove one of the drivers located at C:\windows\system32\drivers. No big deal, I’ll just move the files I need to the desktop and reboot. WRONG!

All system-based files are controlled by a TrustedInstall user. Even my administrator account had nothing on this guy. Good thing I know some command line options.

Open up the command line with administrator rights (if you’re not on a domain I believe you can Click start, type in “cmd” and then hit Control + Shift + Enter.
takeown /f C:\windows\system32\drivers\nameoffile
You should then see a “SUCCESS: The file (or folder): …” which is a good thing.

Now you can right click on the file, go to properties, and then add your user to the security tab list. You might want to give your user the proper privs as well. Then you can move/delete/rename to your heart’s content.

Exchange 2007 Change Message Size Limits

In Exchange 2003 it was very easy to change the message size limits – each user had their own settings. 2007 has a little more difficult process, and it groups everyone as one. We’re currently not using SP1, so some of the steps will probably change. SP1 will eventually make its way on our servers, but until then we’ll just stick with a patched standard version.

To change the maximum allowed OUTSIDE your domain (outgoing email):
Set-Transportconfig -maxsendsize size_in_bytes
Obviously replace size_in_bytes with the size you require.

To change the maximum allowed INSIDE your domain (incoming email):
First, we need to find the Identity of your server (or servers)
Get-sendconnector | List
You’ll find a bunch of information printed on your screen, we only really need the MaxMessageSize and the Identity. If the MaxMessageSize is set to something you already like, you do not need to change anything.
If you have more than one server in your environment, you must do this command for each of the servers.
Set-Sendconnector -Identity identity_name -MaxMessageSize message_size_in_bytes
Replace identity_name with the identity of the server and message_size_in_bytes to the actual size you want.

Vista Power Plan

I’ve been using Vista on and off again for the past 18 months, and only recently have I really begun to dive into this whole Vista craze. Or lack of a craze. Either way, it’s beginning to become a pain to find drivers for XP on brand new systems (unless it’s a Dell or HP system).

Well, one thing I do like about Vista is how it handles the throttling of the CPUs. Microsoft really opened up all the options for power savings – which is probably why I end up with an extra hour of battery life when using Vista over XP. Ubuntu is still better, but that’s getting off topic.

I created my own power plan. Everything was peachy. When on battery I underclocked my system to 800MHz and .800 core volts. That’s the lowest it could go, and since it’s dual core it’s pretty close to a 1.6GHz machine. And when plugged in, I put it up to 1400MHz, but it rarely ever even popped up there. Why underclock a 2.2GHz machine? I’m not a fan of heat.

But randomly the power settings would go away. The max processor would move from my 1% to 100%. It usually happened after updating the system, but that wasn’t always a factor.

Long story short, it started to peeve me that the computer would revert back to it’s original settings. I wanted it to run as slow and cool as possible. Lucky for me (and maybe you) I finally found a command to edit the power settings. No more clicking into 803838038 different menus to change it.

You can find it Here. It’s called Power3.bat, and it doesn’t harm your computer in any way. You can even edit it if you’d like. I’ve done all the hard work.

In fact, here’s the code:
powercfg -setacvalueindex SCHEME_BALANCED SUB_PROCESSOR PROCTHROTTLEMIN 10
powercfg -setacvalueindex SCHEME_BALANCED SUB_PROCESSOR PROCTHROTTLEMAX 50
powercfg -setdcvalueindex SCHEME_BALANCED SUB_PROCESSOR PROCTHROTTLEMIN 1
powercfg -setdcvalueindex SCHEME_BALANCED SUB_PROCESSOR PROCTHROTTLEMAX 25
powercfg -S SCHEME_BALANCED
pause

Boot.INI Options

I recently put together an HP server (DL360) to be used purely for web hosting. It has 6GB RAM and a dual 74GB SAS in RAID 1 setup. Windows Server 2003 was installed because the client needs ASP and .net support, and this is the easiest way. Unfortunately, due to a .net program the client must use, Server 2003 was installed using 32bit technology. That means the 3.25GB RAM the system is reading is due to the 32bit limitations.

So I had to brush up on my boot.ini flags to fix this issue:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise PAE" /noexecute=optin /fastdetect /PAE /3GB

Here are the flags per Microsoft’s website (I removed the ones you will never use):

* /3GB
Increases the size of the user process address space from 2 GB to 3 GB (and therefore reduces the size of system space from 2 GB to 1 GB). Giving virtual-memory- intensive applications such as database servers a larger address space can improve their performance. For an application to take advantage of this feature, however, two additional conditions must be met: the system must be running Windows XP, Windows Server 2003, Windows NT 4 Enterprise Edition, Windows 2000 Advanced Server or Datacenter Server and the application .exe must be flagged as a 3-GB-aware application. Applies to 32-bit systems only.
* /BASEVIDEO
Causes Windows to use the standard VGA display driver for GUI-mode operations.
* /BOOTLOGO
Use this switch to have Windows XP or Windows Server 2003 display an installable splash screen instead of the standard splash screen. First, create a 16-color (any 16 colors) 640×480 bitmap and save it in the Windows directory with the name Boot.bmp. Then add “/bootlogo /noguiboot” to the boot.ini selection.
* /BURNMEMORY=
Specifies an amount of memory Windows can’t use (similar to the /MAXMEM switch). The value is specified in megabytes. Example: /BURNMEMORY=128 would indicate that Windows can’t use 128 MB of the total physical memory on the machine.
* /EXECUTE
This option disables no-execute protection. See the /NOEXECUTE switch for more information.
* /FASTDETECT
Default boot option for Windows. Replaces the Windows NT 4 switch /NOSERIALMICE. The reason the qualifier exists (vs. just having NTDETECT perform this operation by default) is so that NTDETECT can support booting Windows NT 4. Windows Plug and Play device drivers perform detection of parallel and serial devices, but Windows NT 4 expects NTDETECT to perform the detection. Thus, specifying /FASTDETECT causes NTDETECT to skip parallel and serial device enumeration (actions that are not required when booting Windows), whereas omitting the switch causes NTDETECT to perform this enumeration (which is required for booting Windows NT 4).
* /LASTKNOWNGOOD
Causes the system to boot as if the LastKnownGood boot option was selected.
* /MAXMEM=
Limits Windows to ignore (not use) physical memory beyond the amount indicated. The number is interpreted in megabytes. Example: /MAXMEM=32 would limit the system to using the first 32 MB of physical memory even if more were present.
* /MAXPROCSPERCLUSTER=
For the standard x86 multiprocessor HAL (Halmps.dll), forces cluster-mode Advanced Programmable Interrupt Controller (APIC) addressing (not supported on systems with an 82489DX external APIC interrupt controller).
* /NOEXECUTE
This option is only available on 32-bit versions of Windows when running on processors supporting no-execute protection. It enables no-execute protection (also known as Data Execution Protection – DEP), which results in the Memory Manager marking pages containing data as no-execute so that they cannot be executed as code. This can be useful for preventing malicious code from exploiting buffer overflow bugs with unexpected program input in order to execute arbitrary code. No-execute protection is always enabled on 64-bit versions of Windows on processors that support no-execute protection. There are several options you can specify with this switch:
o /NOEXECUTE=OPTIN Enables DEP for core system images and those specified in the DEP configuration dialog.
o /NOEXECUTE=OPTOUT Enables DEP for all images except those specified in the DEP configuration dialog.
o /NOEXECUTE=ALWAYSON Enables DEP on all images.
o /NOEXECUTE=ALWAYSOFF Disables DEP.
* /NOGUIBOOT
Instructs Windows not to initialize the VGA video driver responsible for presenting bitmapped graphics during the boot process. The driver is used to display boot progress information, so disabling it will disable the ability of Windows to show this information.
* /NOLOWMEM
Requires that the /PAE switch be present and that the system have more than 4 GB of physical memory. If these conditions are met, the PAE-enabled version of the Windows kernel, Ntkrnlpa.exe, won’t use the first 4 GB of physical memory. Instead, it will load all applications and device drivers, and allocate all memory pools, from above that boundary. This switch is useful only to test device driver compatibility with large memory systems.
* /NOPAE
Forces Ntldr to load the non-Physical Address Extension (PAE) version of the Windows kernel, even if the system is detected as supporting x86 PAEs and has more than 4 GB of physical memory.
* /NUMPROC=
Specifies the number of CPUs that can be used on a multiprocessor system. Example: /NUMPROC=2 on a four-way system will prevent Windows from using two of the four processors.
* /ONECPU
Causes Windows to use only one CPU on a multiprocessor system.
* /PAE
Causes Ntldr to load Ntkrnlpa.exe, which is the version of the x86 kernel that is able to take advantage of x86 PAEs. The PAE version of the kernel presents 64-bit physical addresses to device drivers, so this switch is helpful for testing device driver support for large memory systems.
* /PCILOCK
Stops Windows from dynamically assigning IO/IRQ resources to PCI devices and leaves the devices configured by the BIOS. See Microsoft Knowledge Base article Q148501 for more information.
* /SAFEBOOT:
Specifies options for a safe boot. You should never have to specify this option manually, since Ntldr specifies it for you when you use the F8 menu to perform a safe boot. (A safe boot is a boot in which Windows only loads drivers and services that are specified by name or group under the Minimal or Network registry keys under HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot.) Following the colon in the option you must specify one of three additional switches: MINIMAL, NETWORK, or DSREPAIR. The MINIMAL and NETWORK flags correspond to safe boot with no network and safe boot with network support, respectively. The DSREPAIR (Directory Services Repair) switch causes Windows to boot into a mode in which it restores the Active Directory directory service from a backup medium you present. An additional option you can append is (ALTERNATESHELL), which tells Windows to use the program specified by the HKLM\SYSTEM\CurrentControlSet\ SafeBoot\AlternateShell value as the graphical shell rather than to use the default, which is Windows Explorer.
* /SOS
Causes Windows to list the device drivers marked to load at boot time and then to display the system version number (including the build number), amount of physical memory, and number of processors.
* /USERVA=
This switch is only supported on Windows XP and Windows Server 2003. Like the /3GB switch, this switch gives applications a larger address space. Specify the amount in MB between 2048 and 3072. This switch has the same application requirements as the /3GB switch and requires that the /3GB switch be present. Applies to 32-bit systems only.

EACCESS Violation

I try to reboot as few times as possible. The only problem with that logic is when something I do breaks the system but I don’t know about it until after a reboot. Case in point is when I installed a program demo called TuneBite about 2 weeks ago. I just restarted today to get a Realtek error:
“EACCESS Violation”

Yay. I had no idea it was caused by TuneBite either. I figured something was corrupt in my sound drivers. Sounds were still working, but not the way they should have been (internal speaker worked, external jacks did nothing).

I installed the newest versions of the Microsoft HD Audio driver and the newest release of the RealTek Audio driver. Rebooted. Same error.

Uninstalled TuneBite software – Rebooted – Error is now gone. I’m not a big fan of software that always loads in the background either, especially when that software shouldn’t be loading in the background. I had only used TuneBite one time, but according to the add/remove programs it said the last time I used it was today. Today != 2 weeks ago.

I can not recommend this software.