Windows Enterprise Desktop

October 6, 2017  11:11 AM

Win10 Usage Approaches Win7 Levels

Ed Tittel Ed Tittel Profile: Ed Tittel
Windows 10

OK, the balance of Windows usage is shifting away from Windows 7 toward Windows 10. A WindowsReport story appeared this morning to that effect. From staff writer George Finley, it’s entitled “Windows 10 could overtake Windows 7 by the end of 2017.” But it cites NetMarketShare,  a site whose accuracy has been questioned by Windows pundits. (See Ed Bott’s discussion in this Jan 2017 story at ZDnet for details). That’s why I decided to see if that ratio held at This site reports stats for visitors to all US government websites. And indeed, it too shows that Win10 usage approaches Win7 levels.

Why Say That Win10 Usage Approaches Win7 Levels?

One current bar chart from the site says it all, especially when leavened with a little quick math:

These numbers represent visits over the past 90 days, as of 10/6/17.
[Source: for “All Participating Websites”]

If you calculate the ratio between the “Windows 7” and “Windows 10” entries, it works out to 0.8333. Mathematically, that equals the fraction 5/6. Thus, I feel reasonably confident that there are 5 Windows 10 users for every 6 Windows 7 users who access US government websites. And indeed, that’s a big change in momentum. Also, it lends credibility to the idea that the balance is shifting substantially. I’d say it is possible, or perhaps likely, that more PCs will be running Windows 10 than Windows 7 (at least, among Internet users) by year’s end. It’s actually more convincing than the NetMarketShare numbers, which show a ratio of more like 6 Win10 users for every 10 Win7 users.

For what it’s worth, StatCounter’s Windows Version share numbers also tell a similar story. As of September 30, Win10 gets a 39.3% share, while Win7 shows 43.99%. That’s a ratio of roughly 89.4%, which translates more or less into a ratio of 7 Windows 10 for every 8 Windows 7 users over the sites they monitor. Combined with the US Government ratio already reported, this supports the notion that these population sizes are converging. It also lends credibility to the observation that Win10 usage approaches Win7 levels, and that the balance may shift sometime soon.

October 4, 2017  5:42 PM

Device Cleanup Tool Works

Ed Tittel Ed Tittel Profile: Ed Tittel
Device Manager, Windows 10

Anybody who’s spent time working with Device Manager in Windows knows that drivers stay visible in the OS even when attendant devices are absent. That’s why so many more items show up in DevMgr when you click “Show hidden devices” in its View menu. Sometimes Windows goes wild and lists many copies of the same driver. At other times, on systems where USB or other external peripherals come and go often, spurious or outdated entries may swamp others. Sure, you can uninstall those devices one at a time in DevMgr. But Uwe Sieber’s Device Cleanup Tool works like a charm. It also lets you see — and remove — any or all “non-present devices” on a Windows PC.

When Needed, Device Cleanup Tool Works Well

Here’s a partial listing of the output from Device Cleanup Tool on my Lenovo T520 laptop PC. It’s got some miles on it, and I plug and unplug USB drives and devices on it all the time. I mark several such items with red arrows in the screen shot that follows, by way of example:

Device Cleanup Tool Works

Items with red arrows for ephemeral USB storage. Note the age on the absent “Generic volume shadow copy” items, too.

Here’s what’s up with the red-arrow items:

  • The E: drive comes from an external USB drive I occasionally attach to make an external backup of this laptop.
  • The ESD-USB item is a bootable repair and recovery utility disk I occasionally use.
  • The EVO500 is a USB 3.0 enclosure for mSATA SSD drives that houses a Samsung 512 GB EVO SSD.
  • The H: drive is another external drive I hooked up to play with some while back.

I don’t really need any of these because DevMgr will happily reload drivers when and if I plug any of these devices back in. So I can select any devices I wish to remove to highlight them, then click the Remove selected entry in the Devices menu to make them disappear. Looking at the ages on the 15 “Generic volume shadow copy” entries in the tool (the youngest is 86 days, the oldest 180) I decide to deep-six them, too. And out they go…

One more thing: please remember to run this utility as Administrator, or you won’t be able to remove any of the devices you select. Another nice tool for the Admin toolbox!

October 2, 2017  1:25 PM

Driver Store Explorer Shows Driver File Names

Ed Tittel Ed Tittel Profile: Ed Tittel
Driver, Windows 10

I ran into an interesting problem recently. On one hand, the MS Update Catalog turns out to be a great resource for RealTek High Definition Audio driver updates. On the other hand, they come in .CAB file form. Thus, one must use a tool like 7Zip to unpack the cabinet file’s contents before updating. Then, if you point Device Manager’s update driver function at the unpacked files’  folder, it will do its thing. But not always, apparently. However, because Drive Store Explorer Shows Driver File Names explicitly, it helps target the update process more precisely. Please let me explain…

Why It Matters That Driver Store Explorer Shows Driver File Names

Normally, when you point Device Manager at a folder where new drivers are available, it identifies and applies those drivers on its own. But when I tried that a couple of versions back ( , update returned a familiar and unexpected message:

Driver Store Explorer Shows Driver File Names

If Microsoft can’t identify the new driver, it certainly can’t install it, either.

That’s what happened to me when I clicked “Update driver,” and pointed at the unpacked cab file contents. I knew a newer driver resided somewhere in that folder. I reasoned that targeting the driver file by name might get update to install that driver, too.

That said, driver file names can be hard to run down in Windows without special help. The latest version of the Driver Store Explorer, RAPR.EXE, shows them plainly and explicitly. (Note: if you go searching for this on your own, please grab GitHub version or newer. The older Codeplex version does not show explicit filenames.) Here’s what RAPR.exe shows me after I updated from version …8258 to the latest and greatest …8261:

RAPR told me what filename to look for in the unpacked file folder for the latest CAB file.

Using RAPR Makes Driver Filenames Explicit

When the auto-identify function failed on that previous driver update attempt, I used RAPR to get me the driver filename. Then, I targeted the file with the same name for my next update attempt in Device Manager, using the “Have Disk” option to pinpoint it exactly. Because this worked like a charm for me, I’ll suggest that should you ever find yourself in a similar situation (even if it’s not a Realtek driver) the same technique may work for you. The only gotcha I can see lurking here as a possibility is that the file of same name would no longer be the right driver file. But that possibility seems quite slim, so I merely observe it, and ask you to bear it in mind should problems present.

That’s also why prudence dictates capturing a system snapshot before you make driver changes, so you can easily roll back to your “before” state, should something go awry.

September 29, 2017  8:50 AM

Chocolatey Windows Package Manager

Ed Tittel Ed Tittel Profile: Ed Tittel
Windows 10

Thanks to my friend and regular co-author, Kari Finn, I’ve been learning about Chocolatey lately. What is this thing? According to its “About” page, “Chocolatey is a package manager for Windows (like apt-get or yum but for Windows). It was designed to be a decentralized framework for quickly installing applications and tools that you need.” In fact, the Chocolatey Windows Package Manager lets you use PowerShell to install any of more than 5,000 Windows applications without having to interact with their usual installer programs. Thus, it’s a terrific way to customize a Windows install without having to follow along with each and every installer it uses.

Chocolatey Windows Package Manager

A candy bar motif pervades Chocolatey, and indeed it is pretty sweet!

Working with the Chocolatey Windows Package Manager

In other blog posts here (as recently as last May) I’ve recommended the Ninite installation utility as a way to grab and add common executables to a Windows installation. Right now, Ninite lists 82 applications from which you can pick to add to a Windows install. Chocolatey, OTH, currently supports package-based install scripts for 5,154 applications as I write this blog post. That number waxes on a daily basis. Thus, you can pretty much count on Chocolatey to handle most, if not all, of the applications you’d want to install on a Windows PC.

A simple illustration will quickly display Chocolatey’s insane powers. Here’s a  line of PowerShell that installs the following applications on a Windows PC:

  • Office 365 Business
  • Adobe Reader
  • VLC
  • 7Zip
  • Notepad++
  • Zoomit
  • Chrome
  • Firefox
  • Opera
  • Malwarebytes
  • TeamViewer

choco install Office365Business, AdobeReader, vlc, 7zip, Notepadplusplus, ZoomIt, GoogleChrome, Firefox, Opera, Malwarebytes, TeamViewer -y

That’s some serious power, combined with great compactness and convenience, folks! Note that while the command string as shown breaks across multiple lines, when entering this into PowerShell it would show up as a single line of text (and thus also, a single directive to Chocolatey).

The next time you’re building or customizing a Windows image, you should give Chocolatey a try. Great stuff, and a nice addition to the admin toolbox for Windows-heads everywhere. Find complete installation instructions for this program on its Install page.

September 27, 2017  12:43 PM

Virtualization Means CPU Microcode Matters

Ed Tittel Ed Tittel Profile: Ed Tittel
Microsoft virtualization, VMware administration, Windows 10

Came across a fascinating thread on TenForums this morning. It could be of significant interest to admins and power users who make heavy or regular use of virtualization. This is especially true for those running some version of VMware. This thread is entitled “How to update the CPU’s microcode” and includes pointers to  a bunch of tools and utilities. The basic concept is that virtualization makes heavy use of specific CPU instructions that work with virtual machines. These instructions are subject to occasional stability and efficiency issues, and microcode updates seek to remedy such things. VMware, in fact, offers a utility called the “VMware CPU Microcode Update Driver” for this very purpose. This lends considerable credence to my assertion that “Virtualization means CPU microcode matters.”


Determining the current installed microcode version requires a special tool. Either SiSoft Sandra or SIW Pro will do the trick (SIW Pro shown).

If Virtualization Means CPU Microcode Matters,
Should It Be Updated?

Microcode works like a device driver for your CPU. That means it should be treated like a device driver: updated if problems present, left alone otherwise. Of course, if you’re running VMware and the company recommends a specific microcode level, you’d be well-advised to pony up. But do you need to update or not?

For most makes of motherboard and PC (to tackle DIY and OEM machines in a single go), the answer is probably “No.” If the BIOS running with the CPU is the same vintage as the recommended microcode, or newer, chances are pretty good that a BIOS update will include the necessary microcode update as well. But, as the TenForums thread indicates, some motherboard makers don’t update their BIOSes very frequently (and some not at all). In those cases, a manual update of the microcode could address virtualization issues that might present themselves.

You can find all the details on how to do this using the VMware tool in the TenForums post and on the VMware utility download page. This isn’t something to do just for grins, but it could be helpful for PCs experiencing virtualization issues. If that describes you (or some of your PCs) you might want to give this a try.

September 25, 2017  4:40 PM

Businesses Should Wait On Fall Creators Update

Ed Tittel Ed Tittel Profile: Ed Tittel
Continuous deployment, Windows 10, Windows Upgrades

Ed Bott at ZDnet dispenses some excellent advice in today’s Bott Report. In an article entitled “Windows 10 tip: Temporarily delay the Fall Creators Update,” he recasts conventional wisdom for business users. In this age of twice-a-year upgrades, practicing due diligence translates to “Businesses should wait on Fall Creators Update.” This adapts the well established business practice of tracking behind MS release dates to meet internal test and deployment cycles anyway. OTOH, businesses might instead prefer to adopt the Current Branch for Business (CBB) for Windows 10. Then, they’ll automatically lag a full release behind the leading edge anyway.

Businesses Should Wait On Fall Creators Update

For the past three Insider Preview releases, the next Win10 release is labeled Version 1709.

Reasons Why Businesses Should Wait On Fall Creators Update

Once upon a time, businesses would wait until the first Service Pack for a new major release emerged before jumping on the upgrade wagon. These days, SPs are history, and a rolling and continuous upgrade cycle makes jumping both more interesting and problematic. I think Bott’s absolutely correct to urge businesses to hang back and exercise caution. And indeed he also recommends deploying the new release into test environments first and foremost. That way, businesses can assess the impact and determine proper remediation strategies as and when they’re needed.

Once businesses get a handle on potential impact, and necessary changes and workarounds that come with them, they can start thinking about deployment. My best guess is that they’d be inclined to wait for the next scheduled upgrade cycle. At that time, they can decide to roll forward and track the latest release, at a discreet remove, or not.

And so it goes for IT pros in Windows-land. It’s time to start getting ready for the next big upgrade cycle. One thing’s for sure: ready or not, here it comes!

September 22, 2017  10:02 AM

Add Precision Touchpad Drivers Anywhere

Ed Tittel Ed Tittel Profile: Ed Tittel
Device drivers, TouchPad, Windows 10

One of the innovations added to Windows 10 is support for touchpad gestures. These let you manage the UI by using multiple fingers on the touchpad with various motions. But for such gestures to work, you must have the right hardware drivers installed. I’m talking about the subject of this post — namely Precision Touchpad drivers. Until recently, in fact, this meant that you had to have the right hardware to host those drivers. But thanks to Chris Hoffman at the How-to Geek, you can add Precision Touchpad drivers anywhere on any laptop.

How to Add Precision Touchpad Drivers Anywhere It Makes Sense

Hoffman covers all the details in his September 22 article “How to Enable Microsoft’s Precision Touchpad Drivers on Your Laptop.” I’ll give the 10,000 foot view here along with an important disclaimer he offers. Basically, this process works by forcibly installing Microsoft’s Precision Touchpad drivers onto your laptop PC. First, find out if your laptop has a Synaptics (all of mine do) or Elan (none here) touchpad installed. Then download its driver file (the Synaptics comes from Lenovo; the Elan comes from Softpedia). Unzip  that file into a temporary directory.

The key to force-installing comes from a Device Manager “trick.” Because the hardware isn’t strictly compatible, DevMgr normally refuses to install it. There’s a workaround, though. First, “Browse your computer…” then select “Let me pick from a list of available drivers…”  Next, navigate to the folder where you unpacked the ZIP file. Then select the Synaptics or ELAN driver you downloaded, and tell the installer to proceed when it balks for compatibility reasons.

Ordinarily, I would never recommend installing an incompatible driver. But two of my laptops are Lenovo ThinkPads. Encouragingly, the Synaptics driver comes from the same vendor. That’s why I decided to give this process a shot. I did have a hiccup after the first restart following the driver install (I got a BSOD during boot-up on my T520 laptop). Otherwise, the process worked without a hitch on all three of my laptops/tablets with Synaptics touchpads (two Lenovos and a Dell Venue Pro 11 7139).

Add Precision Touchpad Drivers Anywhere

Here’s what I see on my non-Precision Touchpad devices after force-installing the PT driver.

About That Disclaimer…

I didn’t experience any problems in running the driver upgrade on my laptops and tablet PCs, except for the aforementioned hiccup. Even so, Hoffman recommends that users have a physical mouse handy as they attempt this driver change. The worst thing that can happen is that you lose the ability to use your touchpad, right? So in case that happens, plug in or pair up your physical mouse before you reboot. Then,  you can still run the UI to roll back the touchpad driver if the touchpad quits working after the restart is complete. But in most cases, it seems you can indeed add Precision Touchpad drivers anywhere. Good stuff!

September 20, 2017  9:34 AM

Wonky Win10 Colors Require Registry Edits

Ed Tittel Ed Tittel Profile: Ed Tittel
Registry hacks, Tweak UI, Windows 10

Here’s a weird one that popped up for me recently. After a recent Win10 update, the color scheme on my production PC turned an odd shade of yellow. Odd enough, in fact, that I just didn’t like it. I found myself resetting colors for various Windows UI elements to get back to the normal defaults. Then I discovered a terrific set of .reg files to restore the defaults with a trio of double-clicks. Much easier. So if you should find that wonky Win10 colors require registry edits, let me point you to the instructions to build those files for yourself.

My problem was exacerbated by synching themes across my Windows Live account. Thus, when my production desktop went wonky on me, it shared that wonkiness with all of the machines onto which I logged using the same account. Talk about the gift that keeps giving! This was one I couldn’t wait to return…

Where to Turn When Wonky Win10 Colors Require Registry Edits

After poking around in Google, I discovered a peachy article from Ramesh Srinavasan at It’s entitled “How to Reset Windows Color and Appearance Settings,” and it works for Windows 8 and higher-numbered OS versions. When you cut’n’paste the text windows for the three registry keys you’ll work on, be sure to grab the entire files for each one, including the line that reads “Windows Registry Editor Version 5.00.” Otherwise, the files don’t work as registry scripts. Because such scripts execute with a simple double-click (far fewer clicks than manually importing those settings), be sure to grab them in their entirety when you create .reg files in which to house them.

When I created my files, I named them to correspond to their respective registry keys:

Wonky Win10 Colors Require Registry Edits

Three keys translate into three files. You could collapse them all into one file, if you wanted to, though.

Because my production machine seems to reset the color scheme back to “wonky” each time it sleeps, I’ve got these files ready to go at a moment’s notice. Remember to restart after you make your registry changes, and you’ll be back to the default.

Bad Diagnosis: It Was the Nvidia Driver…

When I logged back on this morning, September 22, the disgusting yellow color scheme had returned. Checked all three of the aforementioned registry keys and all were still set to the default. Reasoning that it had to be something else, I remembered seeing a report about issues with the Nvidia graphics driver on recently. I checked my driver and, sure enough, it was running version 385.86 (dated May 2017). Checking the Nvidia website, I saw a version 385.69 (dated 9/20/2017) was available. And when I installed that, my godawful color scheme vanished immediately. Now, I’m left wondering how that managed to spread to my other PCs via the Live Login synch, given that none of them share the same graphic card as the primary production machine…

[Note added 10/9/17:]

For the last three Insider Preview updates, the same driver issue has reappeared each time on this PC. Turns out that for some odd reason, upgrading Windows rolls back to an older version of the Nvidia driver.

This is what GeForce Experience says when its built-in driver check is run against the upgraded OS. It’s WRONG!

However, it turns out that the latest and greatest driver for the GeForce GTX 1070 on this PC is actually somewhat newer (as I write this post it’s version 385.69, dated 9/21/2017), as shown here after I forcibly upgraded this PC (and fixed the wonky color scheme):

Notice the version number (386.69) and date (9/21/2017) after forcing the driver update.

I’ve got the download file handy now, and I have learned to force-update to the latest driver version after upgrades go through. This fixes the wonky colors. I’m using the “clean install” option in GeForce Experience to be doubly safe. I’m not sure that it’s necessary, but it seems to be working, so I’ll keep doing that…

September 18, 2017  11:33 AM

CCleaner 5.33 32-bit Carries Malicious Payload

Ed Tittel Ed Tittel Profile: Ed Tittel
Malware prevention, Windows 10, Windows 7, Windows 8

Because I have recommended Piriform’s CCleaner utility in this blog (and in other blogs and articles) over the years, I must pass this important news along. It seems that a signed version CCleaner 5.33 32-bit, as distributed by Avast, somehow got infected by malware. Because CCleaner 5.33 32-bit carries malicious payload, users should check to see which version they’ve got installed. If they are indeed running a potentially infected version, they should uninstall it immediately. And of course, they’ll also want to run a deep and thorough virus scan as well.

If CCleaner 5.33 32-bit Carries Malicious Payload, Is the 64-bit Version a Risk?

Fortunately, it is not. Here’s what the Properties windows for the 64-bit version looks like. Right-click your CCleaner menu entry or .exe file to see what you’ve got:

CCleaner 5.33 32-bit Carries Malicious Payload

The 64-bit version is clearly labeled as such in the .exe filename.

Unless you’re running 32-bit Windows, you’re unlikely to fall prey to this potential infection vector, though. That’s because the CCleaner installer automatically installs the 64-bit version by default on PCs running 64-bit Windows OSes. And today, that represents the majority of PCs running Windows 7, 8, or 10. (Most stats on such things show that only one or two out of every ten PCs runs a 32-bit OS). That said, if a 5.33 download file is present on your machine you’ll want to delete all copies to eliminate any chance of infection. (If present, it’s named ccsetup533.exe,, or ccsetup533_slim.exe) At present, ClamWin AV appears to be the only widely and freely available AV tool that can detect this malware. And sure enough, it found it on my local PCs:


All versions of the CCsetup 5.33 download are likely to be infected: Securely delete them immediately!

Thus, the risk of infection is real and threatening enough to warrant spreading the word. That also means you should take the time to check to see which version is running on PCs with CCleaner installed. The 32-bit version of the program is named “CCleaner.exe” and is around 7 MB in size. By contrast, the 64-bit version is named CCleaner64.exe and is over 9 MB in size. As for myself, I still wait for the “slim” version of CCleaner to come out from Piriform because it includes no added menu extensions or other bloatware in its code base. Those who do likewise would still find the installer file to be infected, however, as shown above. All CCsetup533 versions I found on my PCs were infected.

More Info on CCleaner 5.33 32-bit Carries Malicious Payload

Here’s the announcement that caught my eye at “CCleaner: A Vast Number of Machines at Risk.” It came by way of Tweakhound from the Cisco Talos blog. The Talos post covers the malware payload in detail and also prescribes remediation strategies, for those who may be affected thereby. An easy way to check for infection on suspect machines is to dump the DNS cache to a text file, then to search for domain names that start with the string “ab” (a full list of DGA domains appears at the end of the Talos blog post linked earlier in this paragraph). Likewise, the presence of IP address is also indicative of potential compromise.

Even if you don’t have this problem, it’s still worth reading through the Talos post. It provides a chilling and thorough analysis of how (and why) the incident occurred.

September 15, 2017  3:19 PM

PowerShell Illuminates System Components

Ed Tittel Ed Tittel Profile: Ed Tittel
Powershell, PowerShell cmdlets, PowerShell Scripts, Windows 10

In reading over user requests for information at this morning, I saw a simple-seeming request for info there. It read “How to show SSD and RAM size using terminal.” Basically, it asked for a way to determine total RAM installed on a PC and the presence and size of SSD drives it might house. Knowing that PowerShell illuminates system components nicely, I knew there had to be a way to do this using that toolbox of cmdlets. So I turned to Google to look things up and figure it out. It took about 15 minutes all told, and shows that PowerShell is powerful juju.

1. PowerShell Illuminates System Components: Total RAM

Sure, you can use the old Windows Management Instrumentation (WMI) calls to do this — even in PowerShell — by typing

wmic computersystem get totalphysicalmemory

But I wanted something a little friendlier and easier to read, with memory displayed in GB, not actual bytes. So I turned to Google again and learned that the Get-CimInstance cmdlet could tell me what I needed with a little script manipulation. CIM stands for “Common Information Model” and is based on a computer industry standard for defining device characteristics to make them accessible to and manageable by sysadmins and management programs alike.

In this case, the basic command is Get-CimInstance -class "Cim_PhysicalMemory" | % {$_.Capacity}. But that lists the capacity of each memory module on the PC, and doesn’t add things up. It also produces the string 8589934592 when I’d like to see 8 GB instead. A little script magic whips the whole thing into proper form:

$TotalRAM=(Get-CimInstance -ClassName 'Cim_PhysicalMemory' |
Measure-Object -Property Capacity -Sum).Sum
$TotalRAM /= (1024*1024*1024)
Write-Host "$TotalRAM GB"

The first long line adds up the capacities for all memory modules on the PC. The second line divides that result by 230 to convert bytes into gigabytes. The third line outputs the calculated value followed by “GB” to tell you how much RAM it detected.

This produces the output 32 GB on my PC, which is what I wanted to see, and would do likewise for RAM on other PCs as well. One down, one more to go. Note: the first three lines in the preceding script are actually one line of script broken for display purposes here. If you want to run this script, go to the end of the first line and hit the delete key to pull up the remaining part of that line. Do that again to make the script work properly.

2. PowerShell Illuminates System Components: SSD Presence and Size

This is a little easier to solve because there’s a cmdlet specifically focused on physical disk devices. Not coincidentally, it’s named Get-PhysicalDisk. One single command line will suffice to produce the requested output, with a little selecting and filtering to provide minimal information. Here ’tis:

 get-physicaldisk | Select FriendlyName, MediaType, Size | where-object {$_.MediaType -eq 'SSD'}

Here again, seeing the string on more than one line means you need to delete spurious line breaks if you cut’n’paste it into PowerShell.

The first part of the string grabs physical disk attributes for all disks on the system (up to first pipeline symbol ‘|’). The second part of the string selects the FriendlyName, MediaType and Size attributes for those disks (up to second pipeline symbol). The third part of the string filters out any entries where the MediaType attribute is not “SSD.” The result is a listing of FriendlyName, MediaType and Size for all SSDs on the system where the string is executed. Here’s what that looks like on my production PC:

PowerShell Illuminates System Components

Three out of 8 drives on this system are SSDs.
[Click image for full-sized view.]

PowerShell Is Good Stuff!

The more you mess with PowerShell, the more you’ll come to appreciate its many capabilities. Just about any kind of Windows information or action you can think of, you can accomplish using PowerShell. The guy who posted to SuperUser could have spent his time digging into PowerShell himself and solved his issue quickly and easily. The more you learn PowerShell, in fact, the more you’ll end up using it.

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to: