Showing posts with label Windows 7 tweaks. Show all posts
Showing posts with label Windows 7 tweaks. Show all posts

Friday, August 29, 2014

Windows Update error 80246002



This error started appearing in Windows 7 a few days ago, some say due to the update KB2982791 (unconfirmed yet).

If you were affected by this error - here's how to fix it (so far).

First of all - what doesn't work:

  • Uninstalling the KB2982791 update.
  • Deleting the SoftwareDistribution folder contents inside the Windows folder (this used to work for me in previous Windows Update errors).
  • Renaming the Download subfolder of the SoftwareDistribution folder.
  • Restoring the system to an earlier state may not fix this problem.
  • Running the Windows Update Troubleshooter may not fix this problem.
  • Applying the KB947821 patch may not fix this problem.

What does work (confirmed by many cases, including my own experience with this error):

You need to manually set the DNS addresses (of a well known public DNS server, such as Google DNS) for your network connection to successfully get rid of the update error. 

1. Go to Network and Sharing center inside Control Panel.
2. Click "Change Adapter Settings" on the left side pane. 
3. Right click the network connection you're currently using to be connected to the internet.
4. Choose Properties.
5. Double click "Internet Protocol Version 4 (Tcp/IPv4)"
6. Change "Obtain DNS Server Address automatically" to "Use the following DNS server addresses" - enter 8.8.8.8 as Preferred DNS server, and 8.8.4.4 as Alternate DNS server.
7. OK all of the windows. 
8. Now either restart the machine and check your updates again, or run the ipconfig /flushdns command inside the command prompt in elevated mode.


After this procedure - Windows Update should start searching for updates, it will take a while, so be patient. Eventually you will be presented either with more updates, or the statement that there are no newer updates.



Tuesday, May 20, 2014

Sync network folders to OneDrive automatically

A few weeks ago I have written a post about synchronizing your OneDrive local folder to a network folder, in this post, however, we will talk about synchronizing server folders to the OneDrive folder automatically using a Robocopy script.

First off let's create sub-folders inside your OneDrive sync folder that will represent your network shares. For example if we have a server named Server and shared folders on it named Folder1 and Folder2 - we shall create them as subfolders inside our OneDrive sync folder, as:
(assuming the system partition is C:)

C:\Users\username\OneDrive\Folder1 (and other shared folders)
or
C:\Users\username\OneDrive for Business\Folder1 (and other shared folders)

Then, after all of our subfolders are created, we create a batch script containing:

@echo off

 robocopy "Source network folder" "Destination OneDrive Sub-folder" /MIR /COPY:DT /MON:1

We will have to create a Robocopy command like this for each one of the network folders that needs to be synced with OneDrive.

If the server requires credentials, you will have to add a line before the Robocopy command:
net use \\servername /USER:username password

After the Robocopy command you might want the script to log out, using the following command:
net use \\servername /d

This is a syncing script, that's why we're using the /MIR switch, this means that if we delete the file in the source folder, the file will soon be deleted in the destination folder. If you wish to copy files and not sync them, you can use /E /COPY (or /COPY:DT) instead of /MIR.

I also should mention that /COPY:DT switch in the above script is optional, it instructs Robocopy to preserve the files' Date and Time stamps but not attributes. I just prefer using it in this situation for better stability.

Now we can save the script as a BAT or a CMD file and run it (preferably in elevated mode) to see how it works. The script will never close unless the command prompt is closed manually, so this may create an annoyance to the user. That's why it may be a good idea to automate it's execution and keep it hidden from the user.

To do that we go into Task Scheduler and create a task to run this script. I recommend the trigger being the user's logon. Because if the trigger is a certain time of day - there may be duplicates of the same process, because the process never stops anyway.

Make sure you set the SYSTEM account as the account running the task, and mark it Hidden. This will allow the script to run invisibly in the background. This starts the cmd.exe and robocopy.exe processes and they only take a few hundred kilobytes in memory.





Tuesday, April 29, 2014

Turn an IBM X3100 M4 Server into a workstation.



This is a neat little server that comes from IBM that officially doesn't support Windows 7. In this post I will guide you through making it run Windows 7 using the built in LSI Raid controller and a RAID mode.
If you decide to use AHCI mode however, it becomes easier (as it is supported by Windows 7), but you will be missing a performance (or stability) increase you'll get with the RAID.

The LSI raid controller on this server does not have drivers that support Windows 7 - only Windows Server 2008 (R2). There's also a great many driver packages available from IBM for this controller, so choosing the right one is quite time consuming. After 4 different failed driver packages I finally found the right one that would enable the RAID controller inside the Windows 7 installation PE. I have uploaded it HERE.
Just unrar and copy it onto a flash drive and browse to it during the installation (when it fails to find any hard disks).

Once the system finishes installing - most of the drivers will be installed, the only ones that won't be are the Chipset and the onboard video (Matrox G200ER2). Download the driver for it here.
Chipset drivers are available here.

Monday, March 10, 2014

Sync files to OneDrive and a local server together automatically.

I have always thought that keeping valuable data in more than one place is essential to productivity. So it's always best practice to sync your files to an external location, especially in the work environment. A good stable sync is what we will talk about in this post.

Recently, I migrated one of the companies that I work for to Office 365. As some of you may know - Office 365 packages come with the OneDrive service that provides 25GB of online storage.
So up until the migration - the users' data was automatically synchronized to the in-house file server (using Offline Files). There is a great many ways to synchronize data from a user's machine to a network location - from using Offline Files, to scripting, to third party software. In this scenario I will talk about synchronizing to both a local network location and a cloud service (OneDrive for Business in this case) without using any third party software.

First, let me point out that OneDrive currently provides one sync folder on the computer where everything that you want synced has to go. You cannot designate other folders to be synchronized to OneDrive unless you copy them to the sync folder and continue to work from there. So let's say you do that but you'd still want the same data synchronized to your local file server. And you don't want to use third party software that may create system instability, or load it up.
So, we're going to accomplish this task by using a Robocopy monitoring script that will be running invisibly in the background. All the time.

So we create a batch script that will contain the following:

@echo off
robocopy "Source OneDrive Folder" "Destination network folder" /MIR /COPY:DT /MON:1

Now (assuming your system partition is C:), your source OneDrive folder is usually located at

C:\Users\username\OneDrive
or
C:\Users\username\OneDrive for Business

Your destination should be a local folder or a network share. Don't forget the quotation marks.

You might also need your shared folder credentials if the share is password protected, so to log into the share correctly the script would have to present the correct credentials. To do that you will have to add a line that logs into the share (before the Robocopy command):

net use \\servername /USER:username password

After the Robocopy command you might want the script to log out, using the following command:

net use \\servername /d

This is a syncing script, that's why we're using the /MIR switch, this means that if we delete the file in the source folder, the file will soon be deleted in the destination folder. If you wish to copy files and not sync them, you can use /E /COPY (or /COPY:DT) instead of /MIR.

I also should mention that /COPY:DT switch in the above script is optional, it instructs Robocopy to preserve the files' Date and Time stamps but not attributes. I just prefer using it in this situation for better stability.

Now we can save the script as a BAT or a CMD file and run it (preferably in elevated mode) to see how it works. The script will never close unless the command prompt is closed manually, so this may create an annoyance to the user. That's why it may be a good idea to automate it's execution and keep it hidden from the user.

To do that we go into Task Scheduler and create a task to run this script. I recommend the trigger being the user's logon. Because if the trigger is a certain time of day - there may be duplicates of the same process, because the process never stops anyway.

Make sure you set the SYSTEM account as the account running the task, and mark it Hidden. This will allow the script to run invisibly in the background. This starts the cmd.exe and robocopy.exe processes and they only take a few hundred kilobytes in memory.


You can also check out my post on how to sync network shares to OneDrive automatically.

Friday, January 10, 2014

How to optimize Windows 7 for an SSD drive




As some of you may know, an SSD drive has a limited lifespan of around 100-1000 written terabytes (here's an interesting link that shows some statistics on SSD lifespans). Therefore it is best practice to minimize the amount of data written daily onto it, especially if it's a system disk.

Here I will show how to move the most data intensive system folders to another drive, and to tweak the system to write less onto your SSD operating system drive, under Windows 7.

It is important to note that if you care about the lifespan of your SSD drive, it is always a good idea to have an additional drive in your configuration (another (less valuable) SSD or another HDD drive) to store your user files and to minimize the load on the main SSD drive.

First we start by moving the default pagefile to your other drive's partition by going into Start > right click on Computer > Properties > Advanced System Settings > Advanced (tab) > Under "Performance" click on Settings > Advanced (tab) >  Click on "Change" under Virtual Memory. This will open a new window called "virtual memory" where "Automatically manage paging file size for all drives" will be checked. Uncheck the box near that sentence and click on your system partition shown in the list of all partitions. Now click on "No Paging File" radio button and click on "Set". This will remove the pagefile from your system partition. Now, some people who have 16GB RAM or more in their machine leave Windows running without a pagefile, but I do not recommend it because some problems may happen, such as when explorer.exe suddenly bloats to over 15GB of RAM.
Now click on a different partition (located on your other drive) and click on "System managed size" radio button, and click on "Set" to enable it. Click OK and restart your system. Once you boot back, you will see that your system partition has more free space than before, on the account of us moving the pagefile to another partition.

Next we should disable Hibernation, which also create a temp file on your system partition (which CANNOT be moved) called hiberfil.sys. We do this by going into command prompt in elevated mode and running:

powercfg.exe /hibernate off

This will immediately disable hibernation and erase the hiberfil.sys file. If you must put the computer to sleep - use sleep mode if your motherboard supports it correctly, or simply turn off your machine. Your SSD is fast enough to boot real quick with no need for sleep mode.

Next - we move on to the system's temp folder, user's temp folder and temporary internet files.

First off, we should create a main temp folder on the secondary hard drive. Let's call it MainTemp. Inside it - create a folder for the system's temp files, let's call it SysTemp. Now for the user's temp files - UserTemp.

To change the system's and user's default temp folder location go into Start > right click on Computer > Properties > Advanced System Settings > Advanced (tab) > Environment Variables...
Here you will see two fields that show User Variables and System Variables. User variables will usually only cover TMP and TEMP entries, which you should both change to the path you crated on that other drive to the user's temp folder that we called UserTemp.
In the system variables, scroll down to the same TEMP and TMP entries, and change their paths both to the new folder we've created on the other drive, called SysTemp.
So if the other drive's partition is D, then the user's TMP and TEMP should point to D:\MainTemp\UserTemp
And the system's TMP and TEMP should point to D:\MainTemp\SysTemp.

After restarting, these changes should be enacted.

Now, we move on to the Temporary Internet Files.

With Internet Explorer it's quite easy to change the temp folder location.
First we should add another folder under our MainTemp folder on the secondary drive, let's call it IETemp.

Then, go into IE, click on the Alt button on the keyboard, this will bring up the menus. Click on Tools, Internet Options, under Browsing History click on Settings, click on Move Folder and navigate to the newly created temp folder on that other drive. Click on OK, it will ask you to save new location and reboot, click on Yes, and the computer will reboot.

Google Chrome however does not let the user easily change the location of the temp folder.
Let's again create a new temp folder for Chrome on our secondary drive, let's call it ChromeTemp under Maintemp.

What we have to do is create a shortcut to Chrome on the desktop (if it's not already there), and right click it and choose Properties. This will bring up a window with the shortcut settings. In the "Target" field we have to add a command that will point Chrome to the new temp folder we created earlier.
The existing path is something like this:

"C:\Program Files\Google\Chrome\Application\chrome.exe"

We want to change it to:

"C:\Program Files\Google\Chrome\Application\chrome.e­xe" --disk-cache-dir="D:\MainTemp\ChromeTemp"

Click OK to save the new shortcut changes.

So now using this new shortcut - Chrome will store all the temporary files on the secondary drive.

Hopefully these tweaks should free up more space on your SSD and let it live longer.