Author: Michael Blood
Remote Desktop Connection – Console (RDP)
Remote Desktop Connection – Console (RDP)
I use Remote Desktop (RDP) to connect to Windows servers and workstations every day(XP, 2000, 2003, 2008, Vista and Windows 7).
However I only occasionally need to connect to the console on the remote computer.
And every time I do I have to look up how to do it again because I can’t remember the syntax. Like today.
So when I looked it up today I just decided to copy the Shortcut I had on my Quick Launch bar and have a second button to connect to the console.
- First, I right clicked on the shortcut, clicked “Copy Shortcut”, this put a new shortcut on my Quick Launch bar but it will work where ever you have a shortcut, including the Start Menu.
- Then, I right clicked the new shortcut and went to properties and change the name to “Remote Desktop Connection (2)” to “Remote Desktop Connection – Console” and added this switch to the end of the target field ” /console” so it looks something like
…….mstsc.exe /console” - Then, I clicked Change Icon on the properties and I picked from the list of icons so the it looked different on the icon menu.
Problem solved, It only took 2 minutes and I can quickly connect to the console via Remote Desktop easily now. (of course this blog took another 10 minutes)
Matraex, Inc Has Moved Offices
Matraex, Inc Has Moved Offices
Over Presidents Day weekend Matraex moved our office space from the Southwest Boise location to an newer office building in downtown Boise. We are sad to leave the home weve known for 5 years, but were excited by the prospects the new secure building in the prime downtown location brings us.
The move affects only our office location, where all of the consulting, administration and accounting work for our business is done. No changes have been made to our hosting environment which remains in the rock-solid data center we have been located in for the last 8 years.
We use our own VoIP phone hosting service so moving our phone networkwas as simple as unplugging them from the old location and plugging them in at our new location. All phone numbers remain the same and you can still reach us at (208) 344-1115.
The biggest change to will be to our clients that send mail to our office Letters and payments will need to be delivered to a different address. All payments and mail communication should now be addressed to:
Matraex, Inc
1101 W Grove Street
Suite 202
Boise, Idaho
83702
If you have any questions about the move and how it may affect you as our client, please call Michael Blood at (208) 344-1115 extension 250.
Matraex Upgraded Mail Client From Squirrelmail to Roundcube
Matraex Upgraded Mail Client From Squirrelmail to Roundcube
Matraex has officially upgraded our web based mail client from Squirrelmail to Roundcube.
Roundcube is a modern mail client utilizing newer technologies for faster and more feature rich mail interaction. Roundcube runs on our Linux webservers, utilizing Apache, PHP and MySQL. The software connects to the mail server using the IMAP protocol.
All address book contacts and preferences were imported to Roundcube from Squirellmail at the time of the transition.
As well as updating and implementing their own technologies, Matraex provides server administration, open source production implementation and software customizations to business as a service.
Users with questions about the new mail service or Matraex Consulting Services should contact:
Michael Blood
Matraex, Inc
208.344.1115
www.matraex.com
Can Not Open PDF Documents with Adobe Reader From Internet Explorer Browser
Can Not Open PDF Documents with Adobe Reader From Internet Explorer Browser
We’ve run into some client machines that have had trouble opening PDF documents from within a browser.
Typically this is because there is an older version of Acrobat or Acrobat Reader that is or was installed on the computer and the browser has some sort of corrupt reference to it.
To correct this problem follow these steps.
- Open up Each version of Acrobat Reader or Acrobat that you have on your system.
- Go to Edit -> Preferences -> Internet and make sure the box to Display PDF in browser is unchecked.
- Click OK and close Acrobat or Acrobat Reader, proceed to the next step once you have done this for all versions
- Open the latest version of Acrobat Reader
- Go to Edit -> Preferences -> Internet and check the Display PDF in browser box.
- Save and Close Acrobat Reader.
You should now be able to open PDF files from within your browser.
In some cases the error will occur again after an Adobe update to the software. I cant explain this but if you uncheck the Display PDF in browser box and save the setting in the MOST RECENT version of Acrobat Reader last, this seems to allow PDF documents to open in the latest Adobe Reader version outside of the browser which may have some “corrupted” internal mapping to the incorrect version of the older Acrobat version.
Fixed ActiveX error: Automation Error: the object invoked has disconnected from its clients
Fixed ActiveX error: Automation Error: the object invoked has disconnected from its clients
We have a custom ActiveX Applet we built which was randomly throwing this error, it was happening on a new machine only and it was rather random. Automation Error: the object invoked has disconnected from its clients
Sometimes the error did not happen at all. The new machine had a fresh install of XP on it. Lots of other new XP machines were not running into the problem.
We researched and found that the problem always happened during some sort of usage with the “MSINET.OCX” activex object. This led us to an article on Microsoft’s support site with this article.
http://support.microsoft.com/kb/254908
Turns out the new machine was dual core which somehow caused problems with threading of the object, the problem was fixed on a later version of Visual Studio so if I redeployed the application with the latest MSINET.OCX object it should have worked. As a quick fix though I downloaded a later version MSINET.OCX to the machine and reregistered it so that the system would use that object.
regsvr32 /u msinet.ocx
regsvr32 msinet.ocx
Voila, no more random error.
Network Boot Server with Linux Install, Debian Etch and Lenny, CentOS and KNOPPIX
Network Boot Server with Linux Install, Debian Etch and Lenny, CentOS and KNOPPIX
I just LOVE my dedicated PXE boot server at the office with several flavors of linux install on it.
I can bring a new server online with a base install in as few as five minutes with Debian or CentOS
I can debug workstations and servers with a quickbooting KNOPPIX install.
I even have some kernel installations customized to install network drivers for the Dell 2650 so that the installs I do for those are quick and simple. (basically the broadcom network drivers and the openssh-server packages are preseeded to be installed with the default package)
Here are the contents my pxelinux.cfg/default file:
DISPLAY boot.txt
#DEFAULT etch_i386_install
LABEL etch_i386_install
kernel debian/etch/i386/linux
append vga=normal initrd=debian/etch/i386/initrd.gz —
LABEL etch_i386_expert
kernel debian/etch/i386/linux
append priority=low vga=normal initrd=debian/etch/i386/initrd.gz —
LABEL etch_i386_rescue
kernel debian/etch/i386/linux
append vga=normal initrd=debian/etch/i386/initrd.gz rescue/enable=true —
LABEL knoppix
kernel knoppix/vmlinuz
append secure myconfig=scan nfsdir=192.168.0.1:/srv/diskless/knoppix nodhcp lang=us ramdisk_size=100000 init=/etc/init apm=p
ower-off nomce vga=791 initrd=knoppix/miniroot.gz quiet BOOT_IMAGE=knoppix
LABEL centos5_install
kernel centos/5/vmlinuz
append ks=nfs:192.168.0.1:/srv/diskless/centos/5/ks_prompt.cfg initrd=centos/5/initrd.img ramdisk_size=100000 ksdevice=eth0
ip=dhcp url –url http://mirror.centos.org/centos/5/os/i386/CentOS/
LABEL centos5_raid_install_noprompt
kernel centos/5/vmlinuz
append ks=nfs:192.168.0.1:/srv/diskless/centos/5/ks_raid.cfg initrd=centos/5/initrd.img ramdisk_size=100000 ksdevice=eth0 ip
=dhcp url –url http://mirror.centos.org/centos/5/os/i386/CentOS/
LABEL centos5_hda_install_noprompt
kernel centos/5/vmlinuz
append ks=nfs:192.168.0.1:/srv/diskless/centos/5/ks_hda.cfg initrd=centos/5/initrd.img ramdisk_size=100000 ksdevice=eth0 ip=
dhcp url –url http://mirror.centos.org/centos/5/os/i386/CentOS/
LABEL centos5_install_noprompt
kernel centos/5/vmlinuz
append ks=nfs:192.168.0.1:/srv/diskless/centos/5/ks.cfg initrd=centos/5/initrd.img ramdisk_size=100000 ksdevice=eth0 ip=dhcp
url –url http://mirror.centos.org/centos/5/os/i386/CentOS/[dfads params=’groups=221&limit=1′]
LABEL lenny_i386_install
kernel debian/lenny/i386/linux
append vga=normal initrd=debian/lenny/i386/initrd.gz —LABEL lenny_amd64_install
kernel debian/lenny/amd64/linux
append vga=normal initrd=debian/lenny/amd64/initrd.gz —LABEL etch_amd64_install
kernel debian/etch/amd64/linux
append vga=normal initrd=debian/etch/amd64/initrd.gz —LABEL etch_amd64_linux
kernel debian/etch/amd64/linux
append vga=normal initrd=debian/etch/amd64/initrd.gz —LABEL etch_amd64_expert
kernel debian/etch/amd64/linux
append priority=low vga=normal initrd=debian/etch/amd64/initrd.gz —LABEL etch_amd64_rescue
kernel debian/etch/amd64/linux
append vga=normal initrd=debian/etch/amd64/initrd.gz rescue/enable=true —LABEL etch_amd64_auto
kernel debian/etch/amd64/linux
append auto=true priority=critical vga=normal initrd=debian/etch/amd64/initrd.gz —PROMPT 1
Here are the contents of my boot.txt file (so that I know what to type at the command line when booting)
– Boot Menu –
=============etch_i386_install  –  Debian Stable
etch_i386_expert   –  Debian Stable (Shows install menu every step)
etch_i386_rescue   –  Debian Stable Rescue
lenny_i386_install — has Broadcom net card customization
lenny_amd64_install — has Broadcom net card customization
etch_amd64_install
etch_amd64_linux
etch_amd64_expert
etch_amd64_rescue
etch_amd64_auto
centos5_install –Â CentOS 5 (Will prompt for disks)
centos5_install_noprompt –Â CentOS 5 (Will auto install without prompts)
centos5_hda_install_noprompt –Â CentOS 5 (Will auto install without prompts)
centos5_raid_install_noprompt –Â CentOS 5 (Will auto install on raid 1 without prompts)
knoppix
Hope someone out there can find some use from this.
We of course can help people having trouble with their own TFTP and PXE Boot Server .
Installed PERC management software afaapps and created simple mirror
Installed PERC management software afaapps and created simple mirror
I just installed Debian Lenny on a Dell 2650 with an OLD PERC 3 RAID controller.
I then installed the afaapps package from Dell’s website (http://support.us.dell.com/support/downloads/download.aspx?c=us&l=en&s=gen&releaseid=R85529&formatcnt=1&libid=0&fileid=112003)
Use this link or just search for ‘afaapps’ under the Drivers and Downloads section of the Dell support site.
After extracting the rpm from the downloaded file I ran alien against the file to turn it into a debian file
#apt-get install alien
#alien -d –scripts afaapps-2.8-0.i386.rpm
Now just install the created debian package
#dpkg -i afaapps_2.8-1_i386.deb
Now that you have installed the afacli you can run it at the command line prompt which will open the PERC command line “FASTCMD>”
Then you’ll open / connect to the RAID controller using “open afa0”
#afacli
FASTCMD> open afa0
Executing: open “afa0”
A simple ‘disk list’ command to find out what your disk situation looks like
AFA0> disk list
Executing: disk list
B:ID:L Device Type Blocks Bytes/Block Usage Shared
—— ————– ——— ———– —————- ——
0:00:0 Disk 35566478Â 512 Initialized NO
0:01:0 Disk 287132440 512 Initialized NO
0:02:0 Disk 287132440 512 Initialized NO
you may have to initialize your disks by typeing ‘disk initialize 1’ and ‘disk initialize 2’ to make sure that the container can access them, you can see in my example above that my two disks are already initialized.
Now I will create a volume on disk 1 and mirror that disk to disk 2
AFA0> container create volume 1
AFA0> container create mirror 1 2
At the bottom of your screen you should see the status of the mirroring Job, something like.
Stat:OK!, Task:100, Func:MSC Ctr:1, State:RUN 16.2%
Once the job completes you can partition and format the disk. Check the label on the disk by running:
AFA0> container list
Executing: container list
Num Total Oth Chunk Scsi Partition
Label Type Size Ctr Size Usage B:ID:L Offset:Size
—– —— —— — —— ——- —— ————-
0 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1 Mirror 136GB Valid 0:01:0 64.0KB: 136GB
/dev/sdb 0:04:0 64.0KB: 136GB
From this I can see that I will need to partition and format disk “/dev/sdb”
Have fun! And if I can help you on it let me know.
Print jobs on Remote Desktop wont delete from print queue
Print jobs on Remote Desktop wont delete from print queue
A remote user was logging into their server to do some work from afar.
When they went to print their work some sort of connection problem occurred and when they reconnected they had two local printers in their “Printers and Faxes” window with different sessions, one with a print job (from the disconnected session) and one with no print jobs (from the current session).
When attempting to print again the job would not print and they would disconnect and try again only to find that they now have 3 printers (2 from disconnected session). This went on for a while they tried to delete the print jobs from the queue but the job never deleted, it just stayed in the status of “Deleting” or “Deleting – Paused”. Eventually they ended up with 6 of these printers each with one print job (I am sure they could have put more jobs in a print queue if they really wanted to).
This is the point at which I came in to clear up the issue.
I knew we had to clear out the print queue or that printer would never work.
Here are the steps we had to go through in order to fix it,
- Stop the “Print Spooler” Service. You can do this two ways
- From the Command Prompt (Start -> Run -> Type ‘cmd’ -> Click ‘OK’)
This opens a Command Line Interface, type “net stop spooler” - Open the Services Console (Start -> Control Panel -> Administrative Tools -> Services)
Select “Print Spooler” from the list of Services by double clicking and then click “Stop”
- From the Command Prompt (Start -> Run -> Type ‘cmd’ -> Click ‘OK’)
- Delete all print jobs. You can also do this two ways
- In the open Command Prompt window type del c:windowssystem32spoolprinters*
Type ‘y’ if it asks you if you are sure - In your Windows Explorer window goto C:windowssystem32spoolprinters
Delete all files
- In the open Command Prompt window type del c:windowssystem32spoolprinters*
- Restart the print spooler. Either:
- In the open Command Prompt window type “net start spooler”
- Click the “Start” button on the open “Print Spooler” Service Properties window
There you have it. For those of you that know how you can create a batch file which will quickly do all of this
net stop spooler
sleep for 5
del /Q /F c:windowssystem32spoolprinters*
net start spooler
The “/Q” switch tells the “del” command to delete the files without prompting if it is “ok to delete on global wildcard”
The “/F” switch tells the “del” command to delete the files even if they are marked read only
To get this batch file to work you will need to get the “sleep” program to pause for a few seconds after the service stops so that the system can release the lock it has on the files. If you do not have the sleep program you may find that running the batch file the first time errors out saying it can not access the file. But run it a second time and it works.
Debian Lenny Network Boot on Dell 2650 (Broadcom Network Card)
Debian Lenny Network Boot on Dell 2650 (Broadcom Network Card)
Debian Lenny (and etch) both do not include the drivers for the broadcom network cards that come with many dell servers, I use the Dell 2650 a lot but I have also had issues with the 1750 and 1950, I am sure their are other
I hear it is a licensing problem with debian not being able to distribute the drivers or something.
Here is the solution I have come up with from my end.
On my pxeboot server (I refer to pxe booting but I dont describe how to set one up, check this howto out)
I cd into the directory that my lenny installation is to be setup in (based on the pxelinux.cfg/default file)
#cd /tftpboot/debian/lenny/i386/
I am going to download all of the network installation files for debian lenny on i386, this should apply 64 bit too though.
# wget http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/netboot.tar.gz
# wget http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/debian-installer/i386/initrd.gz
# wget http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/debian-installer/i386/linux
download the broadcom drivers package and extract it to a folder called bnx2
# wget http://ftp.us.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-bnx2_0.14+lenny1_all.deb
# dpkg-deb -x firmware-bnx2_0.14+lenny1_all.deb bnx2
Create a temp working directory
# mkdir temp
# cd temp
extract all of the installation files from the initrd.gz file so you can manipulate them (include the driver)
# zcat ../initrd.gz |cpio -iv
Copy all of the firmware drivers from the extracted bnx2 directory into the root of the extracted initrd.gz kernel directory
# cp ../bnx2/lib/firmware/* ../bnx2/usr/share/initramfs-tools/hooks/firmware_bnx2 .
Since the kernel initrd.gz is only used during installation of the OS, this fix so far hasn’t addressed installing the broadcom driver package for the OS after installation.
To do this you will need to customize the kernel to select and install this package during installation using “preseeding”
Create and edit a file called preseed.cfg in the root of the extracted kernel directory (
# vi preseed.cfg
Place the following contents in that file (I have aso included the ssh server since I typcially do a minimum install without ANY packages but I need ssh)
#automatically select these packages when installing the server
#d-i pkgsel/include string openssh-server firmware-bnx2
base-config apt-setup/non-free boolean true
d-i preseed/late_command string apt-install firmware-bnx2; apt-install openssh-server;
As another shortcut that can shave a tiny bit of time of of your installation, if you do not use USB storage during your installation, there is no need to wait for the delay and errors that occur during the system’s search for those USB storage devices. Deleting the USB drivers from the installation kernel will prevent these errors
# rm -rf lib/modules/2.6.26-2-486/kernel/drivers/usb/storage
Now it is time to put the extracted kernel directory back together in the location that the pxe boot is looking for it.
# find . -print0 | cpio -0 -H newc -ov | gzip -c > ../initrd.gz
that is it! you have customized and rebuilt your installation kernel for network boot.
Simply pxeboot to this installation with your Dell or broadcom server and the drivers will be included.
The concepts used above can also help you to setup and customize a net boot which has packages already selected or otherwise speed your install along with drivers or other customizations already selected, look into preseeding for more options here.
Adding Disk Space to an Array on a Dell PERC using AFACLI
Adding Disk Space to an Array on a Dell PERC using AFACLI
This blog describes the commands necessary to add a disk to existing RAID V array in the case where you have an empty available slot where you can add a disk.
The actual manual for afacli can be found here:
http://docs.us.dell.com/support/edocs/storage/57kgr/cli/en/index.htm
Accessing the CLI from the UNIX Prompt
To access the CLI from the UNIX prompt, display a window and type afacli
in any directory. The system displays the FASTCMD>
prompt, which indicates you can now use CLI commands. The path in the startup file (.login
or .cshrc
) must include the directory where the software is installed for the command to work in any directory. See your UNIX documentation for information on setting up directory paths in the .login
and .cshrc
files.
To view all controllers use €˜controller list€™
To connect to the controller with the command line utility, execute:
FASTCMD> open afa0
AFA0>
To show the status of all disks in all arrays and get an overview of the disks in the RAID, execute €˜enclosure show status€™.
AFA0> enclosure show status
Executing: enclosure show status
Enclosure
ID (B:ID:L) UpTime D:H:M PowerCycle Interval Door Alarm
———– ————– ———- ——– ——– —–
0 0:06:0 0:00:00 0 10 UNLOCKED OFF
Enclosure
ID (B:ID:L) Fan Status
———– — ————-
Enclosure
ID (B:ID:L) Power State Status
———– —– ———— ——-
Enclosure
ID (B:ID:L) Slot scsiId Insert Status
———– —- —— ——- ——————————————
0 0:06:0 0 0:00:0 1 OK ACTIVATE
0 0:06:0 1 0:01:0 1 OK ACTIVATE
0 0:06:0 2 0:02:0 1 OK ACTIVATE
0 0:06:0 3 0:03:0 1 OK ACTIVATE
0 0:06:0 4 0:255:0 0 OK UNCONFIG EMPTY I/R READY NOTACTIVATE
Enclosure
ID (B:ID:L) Sensor Temperature Threshold Status
———– —— ———– ——— ——–
0 0:06:0 0 73 F 120 NORMAL
0 0:06:0 1 69 F 120 NORMAL
Above, there is no disk in slot 4, insert the disk again and execute the command again to see it again.
AFA0> enclosure show status
Executing: enclosure show status
Enclosure
ID (B:ID:L) UpTime D:H:M PowerCycle Interval Door Alarm
———– ————– ———- ——– ——– —–
0 0:06:0 0:00:00 0 10 UNLOCKED OFF
Enclosure
ID (B:ID:L) Fan Status
———– — ————-
Enclosure
ID (B:ID:L) Power State Status
———– —– ———— ——-
Enclosure
ID (B:ID:L) Slot scsiId Insert Status
———– —- —— ——- ——————————————
0 0:06:0 0 0:00:0 1 OK ACTIVATE
0 0:06:0 1 0:01:0 1 OK ACTIVATE
0 0:06:0 2 0:02:0 1 OK ACTIVATE
0 0:06:0 3 0:03:0 1 OK ACTIVATE
0 0:06:0 4 0:04:0 1 OK UNCONFIG ACTIVATE
Enclosure
ID (B:ID:L) Sensor Temperature Threshold Status
———– —— ———– ——— ——–
0 0:06:0 0 73 F 120 NORMAL
0 0:06:0 1 73 F 120 NORMAL
You can see that the disk in slot 4 is waiting to be configured. lets take a look at the RAID V container that we are going to add the new disk to, execute “container list”
AFA0> container list
Executing: container list
Num Total Oth Chunk Scsi Partition
Label Type Size Ctr Size Usage B:ID:L Offset:Size
—– —— —— — —— ——- —— ————-
0 RAID-5 101GB 64KB Valid 0:00:0 64.0KB:33.8GB
/dev/sda 0:01:0 64.0KB:33.8GB
0:02:0 64.0KB:33.8GB
0:03:0 64.0KB:33.8GB
Even though it is visible in the enclosure list above, you will need to execute a “controller rescan” to find the new disk.
AFA0> controller rescan
Executing: controller rescan
Now initialize the disk so it can be used.
AFA0> disk initialize 4
Executing: disk initialize (ID=4)
Finally you can add the disk to the container, you will simply run the container reconfigure command with the container number (in our case 0) and the device number (in our case 4)
AFA0> container reconfigure 0 4
Executing: container reconfigure 0 (ID=4)
Now, wait for the disk to rebuild. You can view the rebuild process with €˜task list€™.
AFA0> task list
Executing: task list
Controller Tasks
TaskId Function Done% Container State Specific1 Specific2
—— ——– ——- ——— —– ——— ———
101 Reconfg 8.4% 0 RUN 00000000 00000000
Also while adding a new disk to this array I found that the existing array was only using 25.6 GB of each disk and not the full 36 GB
I issued a “container reconfigure” command to utilize the more space on each disk
AFA0> container reconfigure /partition_size=36388763000 0
Executing: container reconfigure /partition_size=36,388,763,000 0