Media soup

Part I - About
Part II - Components
Part III - Hardware
Part IV - System
Part V - Server
Part VI - Client
Part VII - Miscellaneous
Part X - Examples


Part IV - System

1. VirtualBox MediaServer
2. OS
3. Codecs
4. Organize
5. Service Names
6. Stuff that won't run as a service
7. Power management
8. VNC

1. VirtualBox MediaServer

This page was put together 'over time' so 'some assembly may be required'. Typically, I keep notes for my own use. Then I'll rearrange them a bit, add some random rambling and throw it on the net. If you have a decent knowledge of your OS, you might be better of starting with the server and client pages...

First a warning for those interested in running virtual machines:

Running HTPC's or media servers in a virtual machine is asking for problems.

That's mostly due to lack of video support, or some weird and unpredictable behaviour of some applications. You probably want to skip this section and immediately go for the real thing, that is: get yourself a decent PC and turn it into a dedicated server.

Oh well, you have been warned. Read on...


None. (Well, okay, a box to run VirtualBox on :-))


  1. Install VirtualBox.
  2. Create or clone a new VM.
  3. I use at least 256 MB as memory setting for the VM after earlier experiments with XP on low end machines.
  4. Enable VirtualBox's 3D capabilities and set the VM's video memory to 32 MB.
  5. Set network to 'bridged'.
  6. Clone a VDI and run NewSid, or create a new VDI and install XP.
  7. Name this machine MEDIASERVER with a fixed ip address such as example
  8. Create a new user in Windows XP called 'Media' password 'media'.
  9. Create a few folders, to keep things organized.
  10. Make sure the user 'Media' can access these folders.
  11. Copy some files to these folders so we have something to test with.
  12. Check the firewall settings.
Note: I had quite some troubles copying large (amounts of) files from the host directly to the client in one batch. Perhaps I was expecting a bit too much from the virtual machine :-)

After installing and setting up your OS it's time to install all other software... Try and test one application at a time, don't go wild!

2. OS

If (when!) I fall in some specific trap OS related I'll add some notes here.


2009 Windows XP SP3

Ah, my favorite OS to date. Works well, though it's nearing end-of-life. It isn't free and you probably can't even buy it anymore. But it does work on not-the-latest hardware, with some effort :-)

Alas, Windows XP is almost dead (no more patches / updates from April 2014) and you can't buy it anymore, so it's time to look around for something newer.

Windows Vista

I cannot say anything posoitive about Vista, just skip it. It's like the 32 bits version of Windows ME.

Windows 7

You may consider Windows 7 (if you can still obtain a copy) but be aware that you might not be able to run it on onder hardware due to lack of drivers. And updates will stop in January 2020.

Windows 8

Then there's the beast called Windows 8. The Metro interface is horrible, and there are some other limitations, but unless you go for Linus it just might be your only chance... I'm going to try to upgrade my home server (currently running XP) to Windows 8, and see how things go from there.

As I started out with Windows XP, I'll focus on any major differences and add them. I don't expect too many, but still...

Windows 10

Take Windows 8, remove Privacy and add enforced updates... that's Windows 10. I'm especially worried about Windows 10 screwing up older systems by involuntary driver replacements. Microsoft should at least allow us to block driver updates, please! Anyway, if you want to run Windows it's the only game left in town...

Unfortunately, my experience with running Windows 10 Home on a home server has been... interesting...

Some notes:

1. There are tons of privacy settings to wipe. As they keep moving around check out the Internet where to find them, and what they do.

2. There is no direct acces to the startup folder, but it still works and you can find it here:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
3. Some options are easier to access from the Windows 10 settings, some via the old control panel. A direct link to Windows 10 settings:
4. Same thing for the classic control panel:
5. This is also where you find the old time favorites like naming your PC, set visual effects, virtual memory, environment variables and system protection.

6. If you are using Kodi on an Android tablet as a client then you may run into timeout errors when trying to connect over SMB. This is due to an non-installed Windows component. Go to Control Panel / Programs and Features / Turn Windows features on or off. In the list enable SMB 1.0/CIFS Server. Note that this is a security risk as the old SMB protocol is no longer safe (but if it matters on a home server is for you to decide).

Note: allowing SMB1 will reduce security of your server, as SMB is no longer considered secure!
7. Some options of Windows have been removed / hidden for the average user. Bring them back using WinAero tweaker. I immediately change the following:
  1. enable Appearence / Coloured Title Bars
  2. set Advanced Appearance Settings / Icons / Horizontal Spacing to 100
8. Modify environment variables if you like all temp files together, and want to include some folder containing batch files or utilities whenever you go fancy and use the command line...
  1. create a folder C:\TEMP
  2. create a folder C:\temp\admin
  3. create a folder C:\temp\system
  4. go to Control Panel / System / Advanced System Settings / Environment Variables
  5. change user TEMP variable to C:\temp\%username%
  6. change system TEMP variable to C:\temp\system
  7. add paths to PATH variable, for example C:\software\batch and C:\software\utils
9. Allow ICMP PING
  1. Control Panel / Network & Sharing / Windows Firewall / Advanced Settings / Inbound Rules
  2. Enable "File and Printer Sharing Echo Request ICMP4 In"


Don't ask. I'm pretty much a Windows guy, but I may be forced to go the Linux way... sigh... Will be continued once I'm either comfortable enough, or can no longer affort Windows. I would have switched to Linux a long time ago, but some of the apps I run simply don't work on Linux, and / or I have not found any alternatives yet. Still, things may improve down the line.

Update. I've decided to put some more time in Linux, as I'm fed up with Windows 10's power management. I'll return my homeserver to Windows 7, and replace it and 2019 with Linux. Good riddance, Windows 10.

3. Codecs

Only install a codec pack if you need one.

I've been using the CCCP for a while, the Combined Community Codec Pack. You'll find it here: There are other packs, and the last release of for example TVersity seems to include one itself, though I haven't tried it.

Make sure your codec pack works well on your OS and hardware. I'm still using CCCP, even on my 64 bit Windows 7 box, but there are many horror stories around.

4. Organize

Now you've collected hundreds and hundreds of files, but how do you organize them? That depends...

This may seem to be entirely a matter of taste, but there are some things to consider. Some software may offer document management features, some other software may force you to name and tag each and every file, whilst other software simply uses the folder structure to present all files to the end user.

My suggestion is to try and organise your folder / file structure as systematically as possible. Assume your server has two drives, C and D. Drive C would contain the OS and all software, and D would contain all media files. The next step would be to organise your files something like this:

The above works great if you use a single harddisk, but once you end up with a bunch of harddisks, you might adopt something like this:
D:\temp                       - generic temporary folder
D:\temp\admin                 - temporary folder for admin
D:\temp\user                  - user temporary folder
D:\temp\windows               - Windows temporary folder
D:\shared                     - shared between all users, shared as 'shared'
D:\tversity                   - TVersity programm and cache folder
E:\reader_data                - used to store cache and files for ebook readers
E:\reader_data\mobipocket     - mobipocket data files
E:\reader_data\calibre        - calibre database and files
E:\audiobooks                 - audiobooks, shared as 'audiobooks'
E:\books                      - ebooks, comics, shared as 'books'
E:\install                    - software, shared as 'install'
E:\music                      - all music files, shared as 'music'
E:\music\flac                 - all flac files (..\flac\artist - album\..)
E:\music\mp3                  - all mp3 files (..\mp3\artist - album\..)
E:\pictures                   - shared as 'pictures'
E:\video_kids                - kids movies, shared as 'video_kids'
E:\video_kids\dutch           - native dutch / dutch spoken
E:\video_kids\subtitled       - dutch subtitled
E:\video_movies               - all other movies, shared as 'video_movies'
F:\video_anime                - anime series and movies, shared as 'video_anime'
F:\video_other                - other stuff, shared as 'video_other'
F:\video_series               - television series (per name), shared as 'video_series'
F:\video_test                 - test files (weird codecs etc.) shared as 'video_test'
... or whatever piques your fancy...

Next when you set up software like TVersity, you can assign specific names / folders / paths / tags / whatever to each folder. And it would be a good idea to keep 'logical' names as close to the real paths, so accessing material through a logical path would be pretty much the same as accessing it through a file share.

Note that some software does not support a dedicated temp folder, for example TVersity. If you use an SSD or USB drive as your boot device, it may be smart to install TVersity NOT in its default place (under C:\Program Files) but on another drive (D:\TVersity or something similar).

Obviously you may want to consider more than one user, and you may not want your average user to delete or rename your files in which case make sure you give that specific user only Read Only rights.

By organizing stuff from the start, you'll have an easier time finding things back, no matter how you access them. For example, here are some devices browsing my mediaserver, either through TVersity UPNP or Windows shares.

The MyGica media player can access the shares as well as the UPNP (via TVersity) folders:

A Philips TV accessing files on DLNA (TVersity):

A PC (or HTPC) accessing Windows shares:


File tags

Some file formats allow you to enter meta data, for exmaple the MP3 file format supports all sorts of tags. Some player software can use the folder structure, but sometimes it can not so you'll be forced to check all tags in your files...

MP3's are the prime candidates for such a treatment. If your folder / file structure is consistent, you could use a program such as MP3Tag to replace the existing tags in your MP3 files.

Some AVI and MKV files seem to support their own flavour of tags, sometimes accessible through file properties, but if not I have no idea how to manipulate them.

5. Service names

If you run multiple services on your server, such as TVersity, Servioo, SqueezeServer etc. all these programs allow you to specify a name, under which they can be found on your network. Use sensible names. Here's what I might use on a server on

  • Media72 - this is the regular Windows file server
  • TVersity72 - TVersity DLNA server running on this machine
  • Serviio72 - Servioo DLNA server running on this machine
  • Squeeze72 - Logitech Media Server running on this machine

6. Stuff that won't run as a service

6.1 Windows XP

Many applications won't run as a 'service'. Blame it on Windows, or blame it on the programmer, but fact is a fact. If you want to run some programs, you have to be logged in as administrator. This obviously is a bit of a security risk, especially if you use your server for other purposes as well.

Unfortunately, there's no real and 'proper' solution. All you can do on Windows XP is allow fast user switching, then, on startup, automatically login as a specific user, execute what you need, then return to the login-screen, whilst everything you started keeps running in the background. Who said this was a perfect world?

Anything that would run as a service (and would make sense to run as a service) I set up that way. Everything else I start using a batch file.

Here's what I did:

  1. enable Windows XP fast user switching
  2. use TweakUI to automatically login as a user with administrative rights
  3. create a link to the batch file below under Start / Programs / Startup
Here's my old batch file startup.bat:
  1. rem start "AsrXTY"     /B "C:\Program Files\ASRock Utility\AXTU\Bin\AsrXTU.exe"
  2. psexec                 /d c:\software\batch\calibre_server.bat 
  3. start "SqueezeSlave"   c:\software\squeezeslave\squeezeslave.bat 
  4. start "TinyWeb"        /B C:\software\tinyweb\tinyweb.exe c:\software\homepage 
  5. start "ImageBank"      /B /D"C:\Program Files\ImageBank Server" "C:\Program Files\ImageBank Server\ImageBank Server.exe" 
  6. start "ServeToMe"      /B /D"C:\Program Files\ProjectsWithLove\ServeToMe\" "C:\Program Files\ProjectsWithLove\ServeToMe\servetome.exe" 
  7. start "Serviio"        /B /D"C:\Program Files\Serviio\bin\" "C:\Program Files\Serviio\bin\ServiioConsole.exe" 
  8. start "WallX"          /B wallx adminmark resident 
  9. rundll32.exe user32.dll, LockWorkStation
What it does:
  1. I no longer use this Asrock utility, as it sometimes was messing with my power save settings, something that I still need to work upon
  2. I use a seperate batch file to launch the Calibre content server (see here for the batch file and the use of psexec)
  3. another batch file, this time for SqueezeSlave
  4. TinyWeb provides a little 'intranet' style of page
  5. ImageBank serves the iPad images
  6. and so does ServeToMe for video
  7. Serviio is an alternative for TVersity
  8. load a wallpaper using WallX
  9. then return to the user selection screen (but keep current user logged in)
This 'quickly login, do some stuff, then logout' gave me some troubles with SqueezeSlave, so I modified the squeezeslave.bat file a little to keep it running, no matter what:
tskill squeezeslave
  cd c:\software\squeezeslave
  squeezeslave.exe -D -R -m 00:00:00:00:00:72
goto loop
It's possible to fancy up things. By inserting some delays the actual boot time decreases (ie. launching programs do not compete for resources). I also rearranged all windows to have a better quick overview of what's running and what not. And sometimes 'start' works fine, but not always and then I have to fall back on psexec.

Fooling around a bit with cmdow and nircmd (and I wouldn't bother too much with the 'wait' statements, they were just minor improvements, and don't really matter when using Wake On Lan or SSD's...) Here's an example startup batch file:

cmdow @ /TOP
start c:\software\utils\wallx.exe adminmark resident
start "ServeToMe" /B /D"C:\Program Files\ProjectsWithLove\ServeToMe\" "C:\Program Files\ProjectsWithLove\ServeToMe\servetome.exe"
nircmd wait 5000
start "ImageBank" /B /D"C:\Program Files\ImageBank Server" "C:\Program Files\ImageBank Server\ImageBank Server.exe"
nircmd wait 5000
start "iPerf" c:\software\utils\iperf.exe -s
psexec /d c:\software\batch\calibre_server.bat
start "TinyWeb" /B C:\software\tinyweb\tinyweb.exe c:\software\homepage
nircmd wait 5000
cmdow "ServeToMe" /MOV 120 120
cmdow "ImageBank Server 2.3" /MOV 180 180
cmdow "iPerf" /MOV 240 240
cmdow "Calibre Server" /MOV 300 300
cmdow "Watchdog - c:\software\batch\watchdog.bat" /MOV 360 360
cmdow "SqueezeSlave - c:\software\squeezeslave\squeezeslave.bat" /MOV 420 420
rundll32.exe user32.dll, LockWorkStation
The two interesting programs here are mircmd and cmdow.

Nircmd is a kind of all-in-one toolbox, which was many different functions. Including a very simple 'delay' function (which doesn't eat up timeslices).

Cmdow is often blacklisted as a 'hacker tool', just like netcat. Cmdow in itself is simply a little command line tool that allows you to do all sorts of things to Windows. Including moving or hiding them. It has been abused by malware programmers to hide windows from the user, hence the blacklisting.

6.2 Windows 7

Of course, since then I've learned a bit :-)

My current startup file looks like this:

rem *** immediately return to user login

rem c:\software\power_shortcuts\wizmo.exe lock
rem timeout 5

rem *** started with windows

rem squeezebox server is started with windows
rem tversity service is started with windows
rem plex server is started with windows
rem openhardwaremonitor is started with windows
rem harddisk sentinel is started with windows, it becomes active after 120 seconds
rem airvideo hd is started with windows
rem servetome is started with windows
rem apple bonjour is started with windows

rem *** not started at all

rem squeezetray requires admin rights, start manually, squeezebox server runs fine without it

rem *** started with this batch file

rem start "Task Manager"          /B taskmgr
rem start "ImageBank"             /B "C:\Program Files\PhotoStreamr Home\PhotoStreamr Home.exe"
rem psexec                        /D c:\software\batch\calibre_server.bat
rem start "TinyWeb"               /B /D c:\software\tinyweb c:\software\tinyweb\tinyweb.exe c:\software\tinyweb\homepage\
start "WallX"                 /B c:\software\utils\wallx adminmark keep resident
rem timeout 20

rem *** reorganize icons and minimize windows

rem C:\software\power_shortcuts\reicon.exe /R
rem nircmd win min stitle "photost"
rem nircmd win min stitle "servetome"
rem nircmd win min stitle "windows task"
rem nircmd win min stitle "calibre"
rem nircmd win max stitle "hardware"

I automatically log in using:

  1. Start netplwiz
  2. Clear 'Users must enter' box
  3. Ok
Keep in mind that I log in to Windows because some programs would not run as services. If you do not have that problem, then it's better NOT to auto-login. However, this machine is 'in the closet', there's no physical access, and nothing on it is of sensitive nature, so even if someone would get access to it I wouldn't be worried.

7. Power management (and Wake On Lan)

Power saving is an issue. First, make sure you won't waste too much energy by picking the right hardware...

Skip the next sections if power management is not your thing, and you've got lots of money to burn :-)

Things may not work as expected, depending on your hardware and configuration! That out of the way, here's the issue:

  1. XP itself is not the best server platform
  2. there is no way to manually set the 'load' treshold on XP before going into power saving (only 'time' can be set)
  3. many applications cannot be run as a service or need admin rights, so I need to start them as a 'background' user
  4. many applications are (somewhat, ahem) 'inefficient' (running things as Java, .NET, and more will definitely not help with resources)
In other words: this bunch of programs might make XP think it's busy. In some cases I've seen the opposite: load was so light that the server decided to shut down... (Some people are going to tell me that isn't possible, well, I saw it happen myself, so there.)

Another problem is how to wake up the machine. You cannot let your PC wake up on any network traffic as there will be other devices on your network generating network traffic. If you have a better router with an option to assign a route to redirect all traffic for a specific IP to a specific port (and filter out anything else, including 'broadcasts') this might work but I'm pretty sure (for the majority of us) it won't. It would have been great if the software applications and hardware clients would generate a WOL whenever they need some data, but alas, there's hardly any mediaplayer that's able to generate a WOL message and the same goes for 99% of the software.

So, here's the choice: either implement WOL with magic packets, and accept thatyou may have to 'wake up' your server (though it may wake up accidentally), or leave your server up and running all the time. I've calculated my own usage, and I would save 50 euro per year in energy costs by using WOL. Thus, WOL it is.

Hardware warning for 'standby'

Remember, once you go into standby, all your hardware except network card and memory is off. Or is supposed to be off. I've seen a few machines that kept their fans spinning. If that is a good or bad thing I'll leave up to you.

What is WOL?

WOL, WakeOnLan, Wake On Lan... clear as any marketing slide ever... (Check out Don McMillan!)

Most network cards offer two options for wake up: wake up on either a 'magic packet', or wake up on any traffic.

By sending a special message to your server you can switch it on. This message is a so called 'magic packet'. If your server supports 'power saving' modes (stuff called S3, S4 etcetera) and your network card supports WOL you can wakeup your server whenever it's needed.

You could opt for waking up the server on any traffic, but for all practical purposes that means your server keeps waking up all the time. Thus never goes to sleep.

Hibernation versus standby

In hibernation your machine saves all memory to the harddisk, then shuts down everything except all electronics related to WOL. Not all machines like or recover well from hibernation, you have to test this for yourself. Advantage: power outages will not bother your PC (it's off anyway) and power consumption will be fractionally lower. Disadvantage: slow restart, more wear and tear on your harddrives. Return from hibernation may spin up all your drives, even when not necessary. (On my machine it does.)

In standby mode, your machine doesn't save all memory to harddisk, but instead keeps memory alive and under power, yet shuts down pretty much everything else (except for WOL related stuff, obviously).Not all machines like or recover well from standby, you have to test this for yourself. Advantage: quick restart. Disadvantage: power failure will make you lose non-saved data. Return from standby may spin up all your drives, but then again it may not. (On my machine it spins up the boot drive just before going into and immediately after going out of standby mode, other drives stay silent.)

Your mileage may vary.

On my test-setup, using a Core i3, 4 GB Ram, on-board audio and graphics, an old power supply and 3 harddrives, I got the following power consumption figures:

  • boot up 100W
  • normal operation 55W
  • hibernate 3W, recover from hibernation 35 seconds
  • standby 5W, recover from standby 10 seconds
  • This is using regular drives. I should try again using an SSD and a better quality power supply.
    • with hibernation enabled the machine will go into hibernation, not into standby. With standby enabled and hibernation disabled it will go into standby
    • some machines may not wake up from hibernation, nor from power down, regardless of settings
    • wake up from shut down or hibernate often works under Windows 7 but not under Windows 8!
    • Windows 10 does whatever it likes when it comes to WOL and sleep... I gave up on it.

    Power management

    These settings depend on your preferences. After fooling around with them I settled for two hours, looking at the typical usage by my users (read: my family).

    (The exact location / naming schedule depends on your version of Windows, but this should give you a clue where to look.)

    1. Control Panel / Power Options / Tab 'Power Schemes'
    2. set Power scheme to 'Minimal Power Management'
    3. Turn of monitor: '15 minutes'
    4. Turn off hard disks: '30 minutes'
    5. System standby: '2 hours'
    6. System hibernate: 'Never'
    To quickly test your setup, you may consider changing the workings of your power button and have the server go into 'standby' whenever you press it. On most machines the power led will then start blinking to indicate standby mode.

    Hibernation may not make much sense, as the power difference between hibernation and standby was marginal. Still, I would have liked to hibernate after let's say 72 hours, but that isn't possible AFAIK.

    Hybrid Sleep in Windows 8...

    ... messes up everything... so...

    • Disable Hybrid Sleep!
    • Disable Hibernate!

    Windows 10

    Power management on Windows 10 absolutely stinks. No matter your settings, Windows 10 manages to ignore them. Most common problems: system doesn't go to sleep, or (even worse) system goes to sleep after WOL (unattended) wakeup. I've tried countless loggical and illogical tricks, but nothing works. Some people are lucky, some people end up in deep troubles. It all depends on hardware, software, ley lines and the roll of the dice...

    I completely gave up on Windows 10. In 2020 (When Windows 7 finally bites the dust) I will move over to Linux for my homeserver, unless something else new and grand comes along... Windows 10 though... nah. It's Vista, but worse.

    Enabling  WOL on the server

    (The exact location / naming schedule depends on your version of Windows, but this should give you a clue where to look.)

    1. Control Panel / Connections
    2. right-click on the network interface, Properties
    3. Configure
    4. Power Management
    5. turn 'Allow the computer...' ON
    6. turn 'Allow this device...' ON
    7. turn 'Only allow managment...' ON
    Some network cards do not show the 'Power Managment' tab. In those cases you have to fiddle around with the settings under the 'Advanced' tab, perhaps in combination with your BIOS settings.

    Getting the server's MAC address

    1. start a Command Prompt
    2. enter:
        C:\> ipconfig /all
    The MAC address of your network card is listed behind 'Physical Address'.

    Wake-up on the local network

    On an iPad, install mWOL by Mocha, and enter the IP address and MAC address you've found. Hit the 'Wake up' button to wake up your machine.

    On Android, install WOL by Ben Finnigan, enter the IP address and MAC address, etcetera.

    On a PC I use my own tool Wakiewakie but you can do it the hard way using mcwol or something similar.

    When using mcwol:

      C:\> mcwol 00:14:22:C5:21:F0
    With MCWOL you cannot specify a specific port, you can when using wolcmd.

    Here's an example batch file which waits until a specific machine is awake:

      mcwol 00:AA:22:C5:21:FF
      ping -n 1 -w 5000
      ping -n 1 -w 10
      if errorlevel 1 goto loop
    The result of the second ping statement is used as a loop condition. The first ping statement is just there to create a delay. Long timeouts may result in an unrecognised errorlevel.

    If you need a batch file that's a little more refined output wise, try this one: (it also seems to handle timeouts better, but better check out the Internet for proper wakeup scripts)

    @echo off
    echo *** Wake up Media4 ***
    echo - send wol to 00:AA:22:C5:21:FF
    echo - ping
    echo - repeat until server replies
    echo Trying to wake up Media72...
    mcwol 00:AA:22:C5:21:FF       > nul
    ping -n 1 -w 2000 > nul
    ping -n 1 -w 5    > nul
    if errorlevel 1 goto wakeup
    ping -n 1 -w 5    > nul
    if errorlevel 1 goto failed
    net use \\media72 xxxxxxxx /user:xxxx
    goto done
    echo ERROR: Media72 did not reply
    @echo on

    Keep the server awake

    There are multiple options to keep the server alive. Which option is the best for you depends on the situation. A few options...

    • start your applications via a batch file, and send a WOL packet just before you launch the actual application
    • send a WOL on every boot via Start / Programs / Startup
    • send a WOL using the task scheduler: Start / Programs / Accessories / System Tools / Scheduled Tasks, create a task and schedule it 'At Logon' or 'At System Startup' 
    • keep the server awake as long as the client is awake, by sending it a WOL every hour, again using the task scheduler
    • use software that supports WOL plugins, such as XBMC
    Note: under Windows XP it's hard to detect a return from standby or hibernation. Under Vista and Windows 7 such a trigger exists, but not on Windows XP. It's possible but you may have to rely on third party tools.

    The SqueezeBox server has an option to stay awake whilst music is playing. Though transcoding tools like Serviio and TVersity don't seem to have such an option, the transcoding itself should provide enough CPU load to keep the server awake.

    Unfortunately, simply serving files from a Windows share may not keep your (Windowx XP) server awake. I haven't found a good solution for this problem, server side wise. You could keep sending WOL packets as long as the client application is awake (I think XBMC has such an option). You might also have a look at the MCE Standby Tool, which offers a function Windows idle / Maximum allowed. The higher you set it, the less likely it will be for Windows to shut down. Obviously, setting it too high will keep Windows from going asleep...

    Wake-up from the Internet

    If you want to access data on the server from the Internet (because you're simply elsewhere) things can get tricky. If you're on ADSL with a fixed IP address, do this:

    1. assuming your server is on
    2. forward some port (for example 63636) from the Internet to port 9
    3. configure the WOL program on your iPad or Android to NOT use broadcast but send the magic packet to port 63636 on your public IP address
    4. your router forwards the message from the Internet and broadcasts it on your network, and your server should wake up
    Note: not all routers allow forwarding to a broadcast address.

    Wake-up from the Internet using a FritzBox

    If you own a Fritzbox router, you're not allowed to forward to anything like x.x.x.255, but the Fritzbox offers another option: 

    1. log into your router
    2. forward some port (for example 636363) from the Internet to port 9
    3. go to Home Network / Network
    4. edit the entry for your server (ie.
    5. switch 'Start this computer automatically' ON
    6. configure the WOL program on your iPad or Android to NOT use broadcast but send the magic packet to port 63636 on your public IP address
    7. your router will, on any incoming traffic routed to your server, send a WOL message to your server
    If you have the FritzBox set up to wake up your server and you have Torrent ports forwarded to your server, then your machine will probably never switch off as there's always some other uTorrent client sending you a message to see if you're still alive, which in turn triggers the FritzBox to send that WOL magic packet to your server.

    Solution: disable or manually switch on / off (the rules for) those forwarded ports. You may have to manually enable / disable those rules, enable uPNP, or accept slightly slower speeds and less sources without those ports forwarded, however in most cases you won't have to do a thing, the NAT protocol in the router will take care of it.

    This leaves you with a funny setup: local users need to wake up the server, whilst it wakes up automatically for a remote users accessing it from the Internet.Yeah, the computer industry still has to think a bit harder on this energy management / WOL stuff... (Why not implement WOL as part of Windows as a kind of fall back scenario?)

    What if it all doesn't work?

    Yeah, those things happen. I'm running into a strange issue myself, where my server goes to sleep fine if I keep the time out short (for example standby after 5 minutes works fine). Yet, when I set it up to go to sleep after 2 hours, it rarely does... One of the installed applications must be doing a periodic scan or something messing up the idle detection. (I think it was Serviio, but strange things do happen.)

    Still, I want to save some energy! So to this end I cooked up this elaborate scheme, which handles a multitude of problems... (Hey, I'm good! :-))

    1. 00:00 check for Adobe Flash updates (Task Scheduler, daily, after 5 minutes idle, only when computer is running)
    2. 00:55 shut down the SqueezeSlave client on the server (Task Scheduler, daily, unconditional, only when computer is running)
    3. 01:00 execute any Windows updates (Control Panel / Windows Update, daily at 01:00)
    4. 02:00 put server into sleep mode (Task Scheduler, daily except on Sunday, after 30 minutes idle, only when computer is running)
    5. 03:00 shutdown (Task Scheduler, daily, after 60 minutes idle, only when computer is running)
    To put the server in standby mode at 02:00 I execute the following line:
    C:\> %windir%\system32\rundll.exe powrprof.dll,SetSuspendState
    Note: with hibernation enabled the machine will go into hibernation, not into standby. With standby enabled and hibernation disabled it will go into standby.

    To shutdown the server at 03:00, I call a batch file containing the following:

    taskkill /IM javaw.exe /F /T
    net stop serviio
    taskkill /IM serviioconsole.exe /T
    shutdown.exe -s
    Either ServeToMe or ImageBank needed killing the Java engine (I forgot which one :-)) and the Serviio lines are no longer required since I uninstalled Serviio.

    So, here's what happens:

    1. If power management standby after 120 minutes works properly, the computer will go into standby, and nothing else happens. All is fine.
    2. If the computer is still on at 00:00 Adobe Flash will look for an update.
    3. If someone left SqueezeSlave playing, it will be halted at 00:55.
    4. If the computer is still on at 01:00 it will run a Windows Update.
    5. If the computer is still on at 02:00 a previous standby attempt didn't work. If it has been idling for 30 minutes it will try again, except on Sunday.
    6. If the computer is still on at 03:00 it will try a full shutdown.
    That should fix it, I hope...

    8. VNC

    If your server is somewhere where you do not have immediate and convenient access to it (attick, garage, broom closet etc.) then install a remote management tool like VNC. It allows you to remote control your server, and you definitely want that! There are many flavours of VNC. TightVNC seems to work well for many  people.

    When installing VNC on the server, install it as a 'service' to keep it running, no matter if you're logged in or not.

    Windows XP / Windows 7 / Windows 8

    • TightVNC
    • RDP
    • RemoterVNC
    • AndroidVNC