- Set up additional storage, as T: drive. Do not back up this drive.
- Move the print queue folder to T:\PRINTER-QUEUES.
- Move SQL server logs to T:\SQL-LOGS\[SQLinstance]. Move other database logs to similar locations.
- Move Exchange logs to T:\EXCHANGE-LOGS.
- Move Blackberry logs to T:\BLACKBERRY-LOGS.
- Set system-wide TEMP to T:\TEMP.
- Set administrator user TEMP to T:\ADMIN_TEMP.
- Set the location for the Windows indexing service, to T:\WINDOWS_INDEX.
Minimize Incremental Size in StorageCraft
article #210, updated 1180 days ago
Command Line Utilities for .NET Frameworks
article #207, updated 1180 days ago
See here:
http://msdn.microsoft.com/en-us/library/d9kh6s92(v=VS.90).aspx
The downloadable for .NET 3.5 is here:
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e6e1c3df-a74f-4207-8586-711ebe331cdc
Another vital, NGEN, is discussed here:
http://msdn.microsoft.com/en-us/library/6t9t5wcf(v=VS.90).aspx
JEB's Driver & Firmware Updates Checklist
article #196, updated 1180 days ago
- Install PC Wizard, from http://www.cpuid.com. This program will tell us the make and model number of the motherboard at least, and often other hardware too.
- Run PC Wizard. If you have hardware problems or corrupt BIOS, it will crash on first run; a BIOS update may fix it, but may turn your motherboard into a pretty picture!!!
- So barring demotherboardizational issues, in PC Wizard, click o n the icon labelled Mainboard. You’ll see the motherboard make and model. Highlight the model number in the lower-right pane, and copy it to the clipboard with Control-C.
- Browse to the web site of the motherboard make. For Intel, you need http://downloadcenter.intel.com .
- Paste the model number of the motherboard in the search box on the web site. If there’s no such box, you’ll have to use whatever navigation is there, to find the right pages.
- I don’t usually have a reason to replace all of the drivers, unless it’s a very old box. I always do replace the NIC driver (and then fix it with the rest of the NIC checklist!), and the motherboard chipset if possible. If the chipset is ancient (“ancient” is 2001 for XP, 2003 for 2003, 2006 for Server 2008 or Vista, 2007 for Server 2008R2 or 7), I consider it a significant issue if it cannot be updated, and will go to http://www.driverengine.com to try to find better, although this can be a non-trivial method.
- I do replace BIOS on new workstations whenever I can. There is a phenomenon called “SATA instability”, where a PC with a SATA drive runs acceptably for months or even a year, while small corruptions build up in its C drive. Eventually the corruptions reach a critical level, and things stop working; when this happens, it’s been 50/50 on requiring a reload of the OS. When I get one of these, I always update the BIOS first, and I have never seen one of these machines on the bench twice.
- The rest of the items may be part of the motherboard, or not. If not, you’ll want the web sites of the makes of the actual hardware. There are exceptions; there is some hardware in big-make (Dell, HP) machines which are made by various companies to other specifications, and in these cases you’ll want to make sure that you have the driver built for that particular big-make PC handy, before trying a potentially better one.
- An extreme case is Intel NICs and some video hardware in some older Dell workstations. In 9 out of 10 cases, if you have a Dell workstation with an Intel NIC, even if the NIC is on the motherboard, you really ought to install the current Intel NIC driver (search for “prowin32” at http://downloadcenter.intel.com). But about 1 out of 10 times, you’ll have to revert to the ancient Dell-recombobulated Intel driver.
- In general it is at least a small risk, to replace RAID drivers, especially on a server. I generally do this only (a) if the hardware is very old and something must be done, or (b) if a manufacturer support tech has stated that it should be done. Ditto RAID firmware.
- If the video driver is more than two years old, I usually replace it. If the user is a gamer, video user, video capture user, or CAD user, I always do, except where there are or have been known issues.
Notification by Email for Windows 2008 Backup
article #359, updated 1180 days ago
It is very possible. Here is a good way.
Windows 2008 Backup Reporting by Email
I Prepare the script.
The purpose of the script is to actually send the email. We don’t use any built-in email capability, because to do so would make configuration much more complicated. The full text of the script is at the end of this document (as section III). You will need to modify the values for EmailSubject and EmailBody to match the site at which the server is located, and put this modified copy in a good safe location on the server.
The script is pre-configured for gmail. For other ISPs you may need to modify the TCP/IP email port number and/or turn SSL off.
This example will use the location “C:\0DCST\bin”, and the script file name “ReportBackupFailureByEmail.vbs”.
II Insert the script into the Task Scheduler.
1. Open up Task Scheduler, and view the Task Scheduler Library.
2. Select Create Task… under Actions. This gets you here:
Enter a name and description for your new task. Be sure to select the option to “Run whether user is logged on or not” to ensure the task still runs after you log out.
3. Click on the Triggers tab and click on New. Select “On an Event” from the drop down. Choose “Custom” under Settings.
4. Click on “New Event Filter…”. Then, choose as follows:
Select all of the event levels except “Information” and Verbose”. Then select “By log”. In the Event Logs dropdown, open Applications and Services Logs, then Microsoft, then Windows, then Backup, and choose Operational.
Once your end result looks like this:
press OK.
5. Head over to the Actions tab and select “New…”. For this example, the following is correct:
Press OK and OK, put in your authentication, and you’re done!
III The Script:
'''''''''''''''''''''''''''''''''' ' Report Backup Failure by Email ' '''''''''''''''''''''''''''''''''' ' Script version 1.0 ' Needs to be run by Task Manager, triggered by appropriate events ' Modify lines below only to fit site, server, and email configuration ServerName = "SERVERNAME" SiteName = "SITENAME" Const EmailFrom = "emailfrom@gmail.com" Const EmailFromName = "From Name" Const EmailTo = "emailto@domain.xyz" Const SMTPServer = "smtp.gmail.com" Const SMTPLogon = "emailfrom@gmail.com" Const SMTPPassword = "gmailpassword" Const SMTPSSL = True Const SMTPPort = 465 ' Do not modify anything further below EmailSubject = ServerName & ": Windows 2008 Backup has failed" EmailBody = "A failure of Windows 2008 Backup has been recorded " & _ "at site " & SiteName & " on server " & ServerName & ", " & _ "on " & Date & ", " & Time & " ." Const cdoSendUsingPickup = 1 'Send message using local SMTP service pickup directory. Const cdoSendUsingPort = 2 'Send the message using SMTP over TCP/IP networking. Const cdoAnonymous = 0 ' No authentication Const cdoBasic = 1 ' BASIC clear text authentication Const cdoNTLM = 2 ' NTLM, Microsoft proprietary authentication ' First, create the message Set objMessage = CreateObject("CDO.Message") objMessage.Subject = EmailSubject objMessage.From = """" & EmailFromName & """ <" & EmailFrom & ">" objMessage.To = EmailTo objMessage.TextBody = EmailBody ' Second, configure the server objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPServer objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusername") = SMTPLogon objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = SMTPPassword objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = SMTPPort objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = SMTPSSL objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 objMessage.Configuration.Fields.Update ' Now send the message! objMessage.Send
JEB's Words of the Days
article #381, updated 1180 days ago
- It’s really a ‘motheringboard,’ not a ‘motherboard’. Isn’t that better?
JEB's Diagnostic Sites for DNS, Internet email, and related
article #164, updated 1180 days ago
Here are web sites for diagnosing DNS, Internet email, and other issues.
A very good place to test Internet email servers and servers in general exposed to the Internet at large.
DNSstuff is excellent for diagnosing DNS issues of all kinds. Most of its tools require a small subscription fee.
whatismyipaddress.com is very good for obtaining geographical and ISP information for an IP address.
https://www.testexchangeconnectivity.com/
is very good for testing Exchange WAN services, e.g., smartphone access, Outlook Anywhere.
Some Malware Signatures
article #170, updated 1180 days ago
- The NIC or NICs, including wireless, don’t work at all.
- The NIC or NICs, including wireless, work with static IPs, but do not do DHCP.
- When you change any NIC configuration, a popup occurs requesting a reboot.
- Offline Files won’t turn off.
- The desktop background does not stay as it is set, it appears to change by itself.
JEB's NIC Checklist
article #143, updated 1180 days ago
JEB’s Network Interface Checklist
version 2.4, 2/3/2011
- Any changes to NIC configuration may cause the network interface to cease connecting for a little while. If it’s a server, this counts as “server down” for at least a few minutes. Occasionally, if a driver is old or the machine has not been rebooted in a long time, a reboot may be necessary for the NIC to work again after certain changes are made. It is generally best to not make changes unless there are performance issues or specific concerns about network behavior — but without these changes, overall performance often goes down more than 50%.
- Install the most current drivers. If the NIC is Intel or Broadcom, install the driver downloaded from Intel or Broadcom, not from Dell or other third-party packager. Often a third-party packager will have separated the application (e.g., “Intel PROset Application”) from the driver (“Intel PROset Driver”); in such a case, the application needs to be removed before the update installation begins. For Intel drivers, the fastest route for the download is to go to http://downloadcenter.intel.com, search for “prowin32”, and click the link with the latest version (15.1.1 at this writing). The link will take you to a page with both 32-bit and 64-bit drivers.
- For Server 2000, Server 2003, and XP, turn all offloading off. This is actually a requirement, not just a recommendation, discussed in certain Microsoft reference materials. In one case in the recent past, SBS simply failed to serve file or print to any workstation, unless this was done; in all cases thus far there has been an increase in general network reliability and performance when this is done. On Intel NICs, this is often under “Performance Options”.
- For Server 2008, Server 2008R2, Vista, and Windows 7, turn all offloading on.
- For anything including “Scaling”, set it to “off” or “Disabled”, for 2000, XP, or Server 2003. This is another Microsoft essential. There is a pack which is included in 2003SP2 which is said to make “Scaling” help, but it does not always help.
- For flow control, “Respond Only” (or “Rx Enabled”) is preferred, but if this is not available, set it to “On”. This is not the same as “Rx Enabled” or “TX Enabled” under offloading!
- For Receive Descriptors and Transmit Descriptors on most NICs, set them to the maximum, unless the server is desperately low on RAM. For some the maximums are 2048, for some one or the other is 5000, for others it is much less. Each descriptor takes 2K of RAM. Some Broadcom gigabit NICs will yellow-flag if they are set to 2048; for these, set receive to 750, transmit to 1500.
- For Adaptive Inter-frame Spacing, set it to “on” or “Enabled”.
- In the NIC’s “Power Management” tab, turn everything off. This may have to be modified if Wake-On-LAN is used.
- In Server 2008, only one NIC (or one NIC team) is permitted to represent the server on the network. If there are two active NICs, you will have to turn one off, or crashes and unpredictable behavior will result sooner or later.
- In Server 2008, IPv6 must be turned on, and not deleted. It does not have to be configured, but it must be turned on.
- It is very much preferable, for Server 2008 and most especially for SBS 2008, for a working IPv6 subnet to be configured, even if the server(s) are the only devices which are able to use IPv6.
32-bit printer driver in 64-bit server! And the other way around!!!
article #129, updated 1180 days ago
OK, so we have that problem increasingly common, a 64-bit server, trying to serve a printer to 32-bit client machines, or vice versa. It took me a while, but here are two different methods I have needed, depending on situation.
First, see if current drivers are downloadable for this printer in the server’s mode (bit-width). If they are, we are able to use method #1, which is probably preferable, although method #2 may still work too. Here’s method #1:
- Download them in both 32-bit and 64-bit versions, install the printer to the server in its preferred (32- or 64-bit) mode, and test. Unpack the other driver in a good location, you will need it soon.
- Get the printer properties up, go to the Sharing section, set up sharing. Don’t publish to the Active Directory yet or you might drive somebody crazy. Click on Additional Drivers.
- You’ll notice “x86” or “x64” is unchecked, because you haven’t installed the other driver yet. Check it, and then hit OK. The system will now demand to be directed to where you have unpacked the other driver. Do so. It might work just at this point! But…
- …it may ask you for one of two additional things. It may ask for 32-bit install media; or, it may ask for particular files, e.g., ntprint.inf, or ntprint.in_, in 32-bit mode. It’s important to realize that the 32-bit requirement is for equivalent OS: a 2008R2 install requires files from 32-bit Windows 7, 64-bit Server 2008 requires files from 32-bit Vista, and 64-bit Server 2003 requires files from 32-bit XP. If you can supply these files, do it, and you’ll be done shortly; it has to be done just once per server, not per printer. If you cannot do this, you’ll need to use method #2.
If you cannot use method #1, or if there are no downloadable drivers for your printer, we go to method #2:
- If there are no downloadable drivers from the printer manufacturer, install the printer to the server using Windows built-in drivers. Under Windows 7 / 2008R2, there is a “Windows Update” clickable in the driver list, by which you can retrieve a much larger set of drivers than is included by default; this is highly recommended. The included Microsoft generics may help, there is a PCL6 and a PS.
- If there are downloadable drivers from the printer manufacturer, for the server OS, use them.
- Install the printer to the client. If you’re using Windows Update or built-in drivers on the server, use them on the client too. Otherwise, make sure that the client drivers are the same type as the server’s, i.e., PCL6 and PCL6, PCL5e and PCL5e, PS3 and PS3.
- On the client, log in as network administrator. Open up the properties of the printer. Click on Advanced. Click on New Driver. Notice the name of the wizard: you’re actually installing a driver onto the server, not onto the client!
- Choose the driver you want to install onto the server. Click Next et cetera. Watch the client driver install onto the server, over the network!
- Check it out the drivers on the server, Shared tab, Additional Drivers button. You’ll see one you need listed. You are done!
- If the New Driver method does not work, try doing approximately the same from within the Additional Drivers button; it works also, to add drivers to server from workstation, as long as you’re logged in as network admin.
An Android Toolkit
article #918, updated 1180 days ago
Android is very interesting to study. It’s more or less the foundation-stones of a generic Linux, including kernel with filesystems and the ability (though usually not the built-in functionality) to run many standard system binaries, but depending on code running in an interpreter — a virtual machine set up like Java, but not Java — instead of most of what we have in a GNU/Linux OS setup.
The potential of Android to be useful is extraordinary. It is very lightweight, it achieves an enormous amount of functionality for very little code: Windows needs about 20-40 gigabytes, Debian Linux perhaps 10-20, for what Android 4 does in about 0.5.
Of course there are downsides. The most important one is probably the fact that right out of the box, very high responsiveness is probably more the exception than the rule, one usually has to work at it to get Android to be very very responsive, i.e., to respond as fast as you think or close. But it is very possible, even on hardware multiple years old, and the payoff is huge, because the Android software universe is very large, far larger than any other non-desktop OS.
So without more ado, here we have an Android toolkit confirmed at this date to be able to do very well on two Fujitsu Stylistic M532’s, and one HTC EVO 4G LTE:
- Rooting.
Rooting is very very important. Without rooting one is limited to the whims of the manufacturer of your device, and the manufacturer very much wants you to throw yours out and buy a new one as soon as possible. On the other hand, if one starts with rooting, one can buy a multiple-year-old device at glyde.com or other sources at very nice prices, fix it up nicely, and have something useful to keep for years afterwards. Raimod’s Root Master and also Kingroot are two very worthwhile rooting tools for a very wide variety of devices. The instructions can be a little difficult, and HTC requires a different step provided by HTC to be done first (to “unlock the boot loader”), but it is all very well worth the trouble when the steps below come next. If yours won’t root with either of the above tools, contact the toolmakers and tell them, and/or do a bit of research and see if you can find a way it’s well-known to be done for yours.
- Get a microSD card.
A microSD card is a tiny long-term storage device, smaller than your pinky fingernail. We have several uses for this below, one of which is immediately next. You’ll want either a Class 10 microSD card, or an SDHC card; 16 gigabytes is probably good, smaller ones are getting rarer and unless you plan on keeping a whole lot of music or video within your device, larger will not help. SDHC cards are faster, but not all devices support them. Class 10 microSD cards are a whole lot faster than the older Class 4, and thus the Class 10’s are definitely to be used.
- Speed up your device a lot with root-level memory management.
Once a device is rooted, we can speed it up a whole lot. The easiest way to do this is to change how Android manages memory, and we have found one very nice applet for this, called Swapper for Root, by DevLab Technologies.. It needs to be run just once; the most important setting is the Swappiness, set that to 10.
Swapper also can do something for overall system stability: it will enable virtual memory, not something default on Android, and we can tell it to place the page file on the SD card we added in the previous step. On my devices, the external SD card is /sdcard2 (and the internal is /sdcard), this does vary from machine to machine. I gave it the default swap file size for now (200M), if I ever learn a reason to change this I will post it here.
- Improve speed and stability by replacing OEM system-installed apps, with user-installed apps.
This is where it gets tricky, but the results are very desireable. The idea is that in their wisdom [ahem] the device manufacturers have shipped them with versions of vital applications in the /system area, a small partition which ordinarily cannot be touched or altered. Unless one uses root methods, one can only “remove updates” to these, one can not update the versions actually in the tablet, and I have found that this can cause interesting problems with updates not working, overall slower behavior, and worse things. I imagine that for the first year or so this helps the devices stay working by preventing alterations, but by the time the third and fourth year roll around, well…yah. So here we go.
You will need a tool which makes it easy not only to study system-level apps, but to reliably remove them. System Application Manager by Flaki is a very good example. There are quite a large number of apps out there which do the study, but which do unpleasant things with removals, especially due to something called “odexing”; on many Android devices system apps are “odexed”, and the practical implications are that removals fail unless the apps handle it properly. As of Android 5 there is something else replacing “odexing” which does effectively the same thing; S.A.M. by Flaki may not be able to handle that, so if you have Android 5 or up please let me know what you find!
You will also need a tool which makes it easy to see how you are doing with free space in your /system partition. This is actually quite a lot harder than I expected, but System Cleaner 2, also by Flaki, does it very well. System Cleaner 2 also can do something which I do not prefer; it permits actual updates of the /system partition app sets. I don’t prefer this for two reasons: (a) /system is usually almost full and has to be to hold the Android OS elements, and (b) I tried it, it said it successfully updated the Play Store and Play Store Services with the rest of the items, but the Play Store did not work from that point on, I had to use S.A.M. to remove Play Store and P.S.S. and install using APKs downloaded directly from Chrome. So I use SC2, but for diagnostics, to see what old apps remain in /system, and how much space there is in there.
The beautiful thing is, once one uses S.A.M. to remove system apps altogether, one can replace them, and the replacements are not system apps (taking up that precious space in /system), but are user apps. So my situation with the Play Store and P.S.S. eventually became beneficial, I gained increased reliability and speed in general. For other apps — Chrome, content-specific Play items, and third-party things installed as system apps by the manufacturer — I just remove them using S.A.M. and install them anew from the Play Store and all is wonderful.
- Move apps to your microSD card.
This will save space on the internals of your device, and also, if you have a nice fast microSD card as recommended, will gain you overall speed too. Just go into Apps under Settings, touch the name of each app, and if it can be moved, the option will be lit. Highly recommendable. There are non-system apps which can not be moved, and so this is a step to keep your device working well, especially if it is one of the more bargain ones with very small internal storage. This does not require root, but it is by far the least of the list!