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.
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!
Mike Hunsinger, who has been addressing Windows Update issues with considerable success over time, recently provided for the following writeup. It is useful when:
- Windows is running slowly or generally unreliably, needs rebooted frequently.
- The Windows Update service spikes CPU usage over 70% when it runs.
- When you check for new updates, it just hangs endlessly on “checking for updates”.
- The last successful update was years ago.
Steps:
- Clean up the system drive.
- Before Server 2012, use Disk Cleanup (cleanmgr.exe). Be sure to check “service pack backup files” and “windows update”, if the version of Windows you are running gives these as options.
- Server 2012 and after, use DISM (dism.exe). Run this in administrative CMD:
dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
If it reports “The operation could not be completed due to pending operations.”, you have just been told that a server reboot is necessary and you’ll need to do this again afterwards. After it succeeds, do this:
dism.exe /online /Cleanup-Image /SPSuperseded
- Run the following as a .bat file to reset Windows Updates caches and working spaces, rereg some dll’s, It works on all versions of windows, may skip some dll’s depending on the OS version:
@ECHO OFF
echo Simple Script to Reset / Clear Windows Update
echo.
PAUSE
echo.
attrib -h -r -s %windir%\system32\catroot2
attrib -h -r -s %windir%\system32\catroot2\*.*
net stop wuauserv
net stop CryptSvc
net stop BITS
ren %windir%\system32\catroot2 catroot2.old
ren %windir%\SoftwareDistribution sold.old
ren "%ALLUSERSPROFILE%\application data\Microsoft\Network\downloader" downloader.old
regsvr32 /s wuaueng.dll
regsvr32 /s wuaueng1.dll
regsvr32 /s atl.dll
regsvr32 /s wups.dll
regsvr32 /s wups2.dll
regsvr32 /s wuweb.dll
regsvr32 /s wucltui.dll
net Start BITS
net start CryptSvc
net start wuauserv
echo.
echo Task completed successfully...
echo.
PAUSE
- Install .net 4.5.1 from here: https://www.microsoft.com/en-us/download/details.aspx?id=40779
- If it says that an =/> version is already installed, run the .net repair tool from here: https://support.microsoft.com/en-us/kb/2698555
- Download the latest version of Windows Update from here: https://support.microsoft.com/en-us/kb/949104
- Next update IE or Edge to the latest version using a redist, here’s the one for EI11, https://support.microsoft.com/en-us/help/18520/download-internet-explorer-11-offline-installer
- Open IE11 or Edge, add update.microsoft.com to trusted sites, popup blocker exceptions, privacy exceptions.
- Finally, try re-running Windows Update. The “Checking for Updates” may run quickly, or it may take 4-6 hours to populate results.
We have had the best results by updating in batches after this, first any critical SP’s or major Platform Updates. Then security, Office and the others as deemed necessary. Once you’ve completed a couple rounds of updates, the difference should start exhibiting itself with regards to the symptoms named.
For certain tasks, it can be helpful to run CMD as SYSTEM. This can be done with paexec:
paexec -s -i -d cmd.exe
or psexec:
psexec -sid %SYSTEMROOT%\System32\cmd.exe
Every scripting language which runs on Windows can call multiple methods of bringing up a popup to users. However, only this CMD method seems to do it for all users, and be callable universally:
msg * /time:9999 /v /w Put your message here!