%%
%%
-\section*{The Windows Version of Bacula}
-\label{_ChapterStart7}
+\chapter{The Windows Version of Bacula}
+\label{Win32Chapter}
\index[general]{Windows Version of Bacula}
-\addcontentsline{toc}{section}{Windows Version of Bacula}
-\subsection*{General}
-\index[general]{General}
-\addcontentsline{toc}{subsection}{General}
-
-At the current time only the File daemon or Client program has been tested on
-Windows. As a consequence, when we speak of the Windows version of Bacula
-below, we are referring to the File daemon only. Please note that as of
-version 1.39.20, the installer is capable of installing not just the Client
-program, but also the Director and the Storage daemon and all the other
-programs that were previously available only on Unix systems.
+At the current time only the File daemon or Client program has
+been thouroughly tested on Windows and is suitable for a
+production environment. As a consequence, when we
+speak of the Windows version of Bacula below, we are referring to
+the File daemon (client) only.
+
+As of Bacula version 1.39.20 or greater, the installer is capable
+of installing not just the Client program, but also the Director
+and the Storage daemon and all the other programs that were
+previously available only on Unix systems. These additional
+programs, notably the Director and Storage daemon, have been
+tested, but still need to be documented. As a consequence, if you
+install and use them, please test them carefully before putting
+them into a critical production environment.
The Windows version of the Bacula File daemon has been tested on Win98, WinMe,
WinNT, WinXP, Win2000, and Windows 2003 systems. We have coded to support
-Win95, but no longer have a system for testing. The Windows version of
+Win95, but no longer have a system for testing. The Windows version of
Bacula is a native Win32 port, but there are very few source code changes
to the Unix code, which means that the Windows version is for the most part
running code that has long proved stable on Unix systems. When running, it
immediately started by the operating system when the system is booted, and
runs in the background even if there is no user logged into the system.
-\subsection*{Win32 Installation}
+\section{Win32 Installation}
\label{installation}
\index[general]{Installation}
\index[general]{Win32!Installation}
-\addcontentsline{toc}{subsection}{Win32 Installation}
Normally, you will install the Windows version of Bacula from the binaries.
This install is standard Windows .exe that runs an install wizard using the
NSIS Free Software installer, so if you have already installed Windows
software, it should be very familiar to you.
-If you have a previous version Cygwin of Bacula (1.32 or lower)
+If you have a previous version Bacula (1.39.20 or lower)
installed, you should stop the service, uninstall it, and remove
the Bacula installation directory possibly saving your
-bacula-fd.conf file for use with the new version you will
-install. Current versions of Bacula do not use Cygwin and has
-far fewer files than the old Cygwin version, so it is better to
-start with a clean directory.
-
-If you have Bacula version 1.38 or lower, we recommend the same procedure
-as mentioned in the paragraph above. This is because Bacula 1.39 and
-greater installs a bit differently from previous versions. There are
-different registry keys, ... that are better cleaned up before installing
-the new version.
+bacula-fd.conf, bconsole.conf, and wx-console.conf files
+for use with the new version you will install. The Uninstall
+program is normally found in {\bf c:\textbackslash{}bacula\textbackslash{}Uninstall.exe}.
+We also recommend that you completely remove the directory
+{\bf c:\textbackslash{}bacula}, because the current installer
+uses a different directory structure (see below).
+
+Providing you do not already have Bacula installed,
+the new installer (1.39.22 and later) installs the binaries and dlls in
+c:\textbackslash{}Program Files\textbackslash{}Bacula\textbackslash{}bin
+and the configuration files
+in c:\textbackslash{}Documents and Settings\textbackslash{}All Users\textbackslash{}Application Data\textbackslash{}Bacula
+In addition, the {\bf Start\-\gt{}All Programs\-\gt{}Bacula} menu item
+will be created during the installation, and on that menu, you
+will find items for editing the configuration files, displaying
+the document, and starting wx-console or bconsole.
Finally, proceed with the installation.
\begin{itemize}
-\item You must be logged in as Administrator to do a correct installation,
- if not, please do so before continuing.
+\item You must be logged in as Administrator to the local machine
+to do a correct installation, if not, please do so before continuing.
+Some users have attempted to install logged in as a domain administrator
+account and experienced permissions problems attempting to run
+Bacula, so we don't recommend that option.
\item Simply double click on the {\bf winbacula-1.xx.0.exe} NSIS install
icon. The actual name of the icon will vary from one release version to
another.
\includegraphics{./win32-nsis.eps} winbacula-1.xx.0.exe
-\
+
\item Once launched, the installer wizard will ask you if you want to install
Bacula.
\addcontentsline{lof}{figure}{Win32 Client Setup Wizard}
\includegraphics{./win32-welcome.eps}
-\
+
+\item Next you will be asked to select the installation type.
+
+\addcontentsline{lof}{figure}{Win32 Installation Type}
+\includegraphics{./win32-installation-type.eps}
+
+
\item If you proceed, you will be asked to select the components to be
installed. You may install the Bacula program (Bacula File Service) and or
the documentation. Both will be installed in sub-directories of the install
\addcontentsline{lof}{figure}{Win32 Component Selection Dialog}
\includegraphics{./win32-pkg.eps}
+\index[general]{Upgrading}
-\item Next you will be asked to select an installation directory.
-
-\addcontentsline{lof}{figure}{Win32 Directory Selection Dialog}
-\includegraphics{./win32-location.eps}
+\item If you are installing for the first time, you will be asked to
+ enter some very basic information about your configuration. If
+ you are not sure what to enter, or have previously saved configuration
+ files, you can put anything you want into the fields, then either
+ replace the configuration files later with the ones saved, or edit
+ the file.
-\item If you are installing for the first time, you will be asked if you want
- to edit the bacula-fd.conf file, and if you respond with yes, it will be
- opened in notepad. Note, if you have installed Bacula to a drive other
- than C: you probably should prefix the installation drive name to each
- of the directory references in the bacula-fd.conf file, in particular
- the {\bf WorkingDirectory} and the {\bf Pid Directory} directives.
+ If you are upgrading an existing installation, the following will
+ not be displayed.
- Also, if you do not wish to see the full listing of all files restored
- in the job output after running a restore job, you can add {\bf ,
- !restored} to the {\bf director} directive in the {\bf Messages}
- resource.
\addcontentsline{lof}{figure}{Win32 Configure}
\includegraphics{./win32-config.eps}
-\item Then the installer will display a dialog that allows you to
- to install Bacula as a service. You should always choose to do so.
- It also permits you to start the service. Normally you should check
- the box, and any running Bacula will be shutdown and the new one started. You
- may see a DOS box momentarily appear on the screen as the service is started.
- It should disappear in a second or two:
-
-\addcontentsline{lof}{figure}{Win32 Client Service Selection}
-\includegraphics{./win32-service.eps}
-
-
-\item If everything goes well, you will receive the following confirmation:
-
- \addcontentsline{lof}{figure}{Win32 Client Service Confirmation}
- \includegraphics{./win32-service-ok.eps}
-
\item While the various files are being loaded, you will see the following
dialog:
and if there is an error, the holes in the cassette icon will change to red
\includegraphics{./error.eps}.
-If you are using remote desktop connections between your windows boxes, be
+If you are using remote desktop connections between your Windows boxes, be
warned that that tray icon does not always appear. It will always be visible
when you log into the console, but the remote desktop may not display it.
-\subsection*{Post Win32 Installation}
+\section{Post Win32 Installation}
\index[general]{Post Win32 Installation}
\index[general]{Win32!Post Installation}
-\addcontentsline{toc}{subsection}{Post Win32 Installation}
After installing Bacula and before running it, you should check the contents
-of {\bf
-c:\textbackslash{}bacula\textbackslash{}bin\textbackslash{}bacula-fd.conf} to
-ensure that it corresponds to your configuration.
+of the configuration files to ensure that they correspond to your
+installation. You can get to them by using:
+the {\bf Start\-\gt{}All Programs\-\gt{}Bacula} menu item.
Finally, but pulling up the Task Manager (ctl-alt-del), verify that Bacula
is running as a process (not an Application) with User Name SYSTEM. If this is
Administrator, and hence it will be unlikely that Bacula can access
all the system files.
-\subsection*{Uninstalling Bacula on Win32}
+\section{Uninstalling Bacula on Win32}
\index[general]{Win32!Uninstalling Bacula}
\index[general]{Uninstalling Bacula on Win32}
-\addcontentsline{toc}{subsection}{Uninstalling Bacula on Win32}
Once Bacula has been installed, it can be uninstalled using the standard
Windows Add/Remove Programs dialog found on the Control panel.
-\subsection*{Dealing with Win32 Problems}
+\section{Dealing with Win32 Problems}
\label{problems}
\index[general]{Win32!Dealing with Problems}
\index[general]{Dealing with Win32 Problems}
-\addcontentsline{toc}{subsection}{Dealing with Win32 Problems}
+
+Sometimes Win32 machines the File daemon may have very slow
+backup transfer rates compared to other machines. To you might
+try setting the Maximum Network Buffer Size to 32,768 in both the
+File daemon and in the Storage daemon. The default size is larger,
+and apparently some Windows ethernet controllers do not deal with
+a larger network buffer size.
+
+Many Windows ethernet drivers have a tendency to either run slowly
+due to old broken firmware, or because they are running in half-duplex
+mode. Please check with the ethernet card manufacturer for the latest
+firmware and use whatever techniques are necessary to ensure that the
+card is running in duplex.
+
+If you are not using the portable option, and you have VSS
+(Volume Shadow Copy) enabled in the Director, and you experience
+problems with Bacula not being able to open files, it is most
+likely that you are running an antivirus program that blocks
+Bacula from doing certain operations. In this case, disable the
+antivirus program and try another backup. If it succeeds, either
+get a different (better) antivirus program or use something like
+RunClientJobBefore/After to turn off the antivirus program while
+the backup is running.
+
+If turning off anti-virus software does not resolve your VSS
+problems, you might have to turn on VSS debugging. The following
+link describes how to do this:
+\elink{http://support.microsoft.com/kb/887013/en-us}{\url{http://support.microsoft.com/kb/887013/en-us}}.
+
+In Microsoft Windows Small Business Server 2003 the VSS Writer for Exchange
+is turned off by default. To turn it on, please see the following link:
+\elink{http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q838183}{\url{
+http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q838183}}
+
The most likely source of problems is authentication when the Director
attempts to connect to the File daemon that you installed. This can occur if
the names and the passwords defined in the File daemon's configuration file
-{\bf
-c:\textbackslash{}bacula\textbackslash{}bin\textbackslash{}bacula-fd.conf} on
+{\bf bacula-fd.conf} file on
the Windows machine do not match with the names and the passwords in the
Director's configuration file {\bf bacula-dir.conf} located on your Unix/Linux
server.
One user had serious problems with the configuration file until he realized
that the Unix end of line conventions were used and Bacula wanted them in
-Windows format. This has not been confirmed though.
+Windows format. This has not been confirmed though, and Bacula version 2.0.0
+and above should now accept all end of line conventions (Win32,
+Unix, Mac).
Running Unix like programs on Windows machines is a bit frustrating because
the Windows command line shell (DOS Window) is rather primitive. As a
\footnotesize
\begin{verbatim}
Start a DOS shell Window.
- cd c:\bacula\bin
- bacula-fd -t >out
+ c:\Program Files\bacula\bin\bacula-fd -t >out
type out
\end{verbatim}
\normalsize
+The precise path to bacula-fd depends on where it is installed. The
+example above is the default used in 1.39.22 and later.
The {\bf -t} option will cause Bacula to read the configuration file, print
any error messages and then exit. the {\bf \gt{}} redirects the output to the
file named {\bf out}, which you can list with the {\bf type} command.
\footnotesize
\begin{verbatim}
- bacula-fd -d 100 >out
+ c:\Program Files\bacula\bin\bacula-fd -d 100 >out
\end{verbatim}
\normalsize
\normalsize
then run the job, and once you have terminated the File daemon, you will find
-the debug output in the {\bf bacula.trace} file.
+the debug output in the {\bf bacula.trace} file, which will probably be
+located in the same directory as bacula-fd.exe.
In addition, you should look in the System Applications log on the Control
Panel to find any Windows errors that Bacula got during the startup process.
\normalsize
\label{Compatibility}
-\subsection*{Windows Compatibility Considerations}
+\section{Windows Compatibility Considerations}
\index[general]{Windows Compatibility Considerations}
\index[general]{Considerations!Windows Compatibility}
-\addcontentsline{toc}{subsection}{Windows Compatibility Considerations}
-
-If any applications are running during the backup and they have files
-opened exclusively, Bacula will not be able to backup those files, so be
-sure you close your applications (or tell your users to close their
-applications) before the backup. Fortunately,
-most Microsoft applications do not open
-files exclusively so that they can be backed up. However, you will need to
-experiment. In any case, if Bacula cannot open the file, it will print an
-error message, so you will always know which files were not backed up.
-For version 1.37.25 and greater, see the section below on
-Volume Shadow Copy Service.
+
+If you are not using the VSS (Volume Shadow Copy) option described in the
+next section of this chapter, and if any applications are running during
+the backup and they have files opened exclusively, Bacula will not be able
+to backup those files, so be sure you close your applications (or tell your
+users to close their applications) before the backup. Fortunately, most
+Microsoft applications do not open files exclusively so that they can be
+backed up. However, you will need to experiment. In any case, if Bacula
+cannot open the file, it will print an error message, so you will always
+know which files were not backed up. For version 1.37.25 and greater, see
+the section below on Volume Shadow Copy Service that permits backing up any
+file.
During backup, Bacula doesn't know about the system registry, so you will
either need to write it out to an ASCII file using {\bf regedit~~/e} or use a
First, the advantages are that on WinNT/2K/XP systems, the security and
ownership information is now backed up. In addition, with the exception of
-files in exclusive use by another program (a major disaster for backup
-programs on Windows), Bacula can now access all system files. This means
-that when you restore files, the security and ownership information will be
-restored on WinNT/2K/XP along with the data.
+files in exclusive use by another program, Bacula can now access all system
+files. This means that when you restore files, the security and ownership
+information will be restored on WinNT/2K/XP along with the data.
The disadvantage of the Windows backup API calls is that it produces
non-portable backups. That is files and their data that are backed up on
(not yet tested). In addition, the stand-alone tools such as {\bf bls} and
{\bf bextract} cannot be used to retrieve the data for those files because
those tools are not available on Windows. All restores must use the Bacula
-{\bf restore} command. This restriction is mentioned for completeness, but
-in practice should not create any problems.
+{\bf restore} command. As of Bacula 1.39.x, thanks to Thorsten Engel, this
+restriction is removed, and Bacula should be able to read non-portable
+backups on any system and restore the data appropriately. However,
+on a system that does not have the BackupRead/BackupWrite calls (older
+Windows versions and all Unix/Linux machines), though the file data
+can be restored, the Windows security and access control data will not be restored.
+This means that a standard set of access permissions will be set for
+such restored files.
+
As a default, Bacula backs up Windows systems using the Windows API calls.
If you want to backup data on a WinNT/2K/XP system and restore it on a
The following matrix will give you an idea of what you can expect. Thanks to
Marc Brueckner for doing the tests:
-+
-
\addcontentsline{lot}{table}{WinNT/2K/XP Restore Portability Status}
\begin{longtable}{|l|l|p{2.8in}|}
\hline
\hline {WinMe} & {WinNT} & {Works (SYSTEM permissions) } \\
\hline {WinMe} & {WinXP} & {Works (SYSTEM permissions) } \\
\hline {WinMe} & {Linux} & {Works (SYSTEM permissions) } \\
- \hline {\} & {\} & {\ } \\
+ \hline {\ } & {\ } & {\ } \\
\hline {WinXP} & {WinXP} & {Works } \\
\hline {WinXP} & {WinNT} & {Works (all files OK, but got "The data is invalid"
message) } \\
\hline {WinXP} & {WinMe} & {Works if {\bf Portable=yes} specified during backup.} \\
\hline {WinXP} & {Linux} & {Error: Win32 data stream not supported. } \\
\hline {WinXP} & {Linux} & {Works if {\bf Portable=yes} specified during backup.}\\
- \hline {\} & {\} & {\ } \\
+ \hline {\ } & {\ } & {\ } \\
\hline {WinNT} & {WinNT} & {Works } \\
\hline {WinNT} & {WinXP} & {Works } \\
\hline {WinNT} & {WinMe} & {Error: Win32 data stream not supported. } \\
\hline {WinNT} & {WinMe} & {Works if {\bf Portable=yes} specified during backup.}\\
\hline {WinNT} & {Linux} & {Error: Win32 data stream not supported. } \\
\hline {WinNT} & {Linux} & {Works if {\bf Portable=yes} specified during backup. }\\
- \hline {\} & {\} & {\ } \\
+ \hline {\ } & {\ } & {\ } \\
\hline {Linux} & {Linux} & {Works } \\
\hline {Linux} & {WinNT} & {Works (SYSTEM permissions) } \\
\hline {Linux} & {WinMe} & {Works } \\
\hline {Linux} & {WinXP} & {Works (SYSTEM permissions)}
\\ \hline
-
\end{longtable}
+Note: with Bacula versions 1.39.x and later, non-portable Windows data can
+be restore to any machine.
+
+
\label{VSS}
-\subsection*{Volume Shadow Copy Service}
+\section{Volume Shadow Copy Service}
\index[general]{Volume Shadow Copy Service}
\index[general]{VSS}
-\addcontentsline{toc}{subsection}{Volume Shadow Copy Service}
In version 1.37.30 and greater, you can turn on Microsoft's Volume
Shadow Copy Service (VSS).
reports from each of the writer program. Here they all report VSS\_WS\_STABLE, which means
that you will get a consistent snapshot of the data handled by that writer.
-\subsection*{VSS Problems}
+\section{VSS Problems}
\index[general]{Problems!VSS}
\index[fd] {Problems!VSS}
\index[general]{VSS Problems}
\index[fd]{VSS Problems}
-\addcontentsline{toc}{subsection}{VSS Problems}
If you are experiencing problems such as VSS hanging on MSDE, first try
running {\bf vssadmin} to check for problems, then try running {\bf
\end{itemize}
-\subsection*{Windows Firewalls}
+\section{Windows Firewalls}
\index[general]{Firewalls!Windows}
\index[general]{Windows Firewalls}
-\addcontentsline{toc}{subsection}{Windows Firewalls}
If you turn on the firewalling feature on Windows (default in WinXP SP2), you
are likely to find that the Bacula ports are blocked and you cannot
is purported to disable the firewall, but this command is not accepted on my
WinXP Home machine.
-\subsection*{Windows Port Usage}
+\section{Windows Port Usage}
\index[general]{Windows Port Usage}
\index[general]{Usage!Windows Port}
-\addcontentsline{toc}{subsection}{Windows Port Usage}
If you want to see if the File daemon has properly opened the port and is
listening, you can enter the following command in a shell window:
\end{verbatim}
\normalsize
-\subsection*{Windows Disaster Recovery}
+TopView is another program that has been recommend, but it is not a
+standard Win32 program, so you must find and download it from the Internet.
+
+\section{Windows Disaster Recovery}
\index[general]{Recovery!Windows Disaster}
\index[general]{Windows Disaster Recovery}
-\addcontentsline{toc}{subsection}{Windows Disaster Recovery}
We don't currently have a good solution for disaster recovery on Windows as we
do on Linux. The main piece lacking is a Windows boot floppy or a Windows boot
It looks like Bart PE Builder, which creates a Windows PE (Pre-installation
Environment) Boot-CD, may be just what is needed to build a complete disaster
recovery system for Win32. This distribution can be found at
-\elink{http://www.nu2.nu/pebuilder/}{http://www.nu2.nu/pebuilder/}.
+\elink{http://www.nu2.nu/pebuilder/}{\url{http://www.nu2.nu/pebuilder/}}.
-\subsection*{Windows Restore Problems}
+\section{Windows Restore Problems}
\index[general]{Problems!Windows Restore}
\index[general]{Windows Restore Problems}
-\addcontentsline{toc}{subsection}{Windows Restore Problems}
Please see the
\ilink{Restore Chapter}{Windows} of this manual for problems
that you might encounter doing a restore.
+section{Windows Backup Problems}
+\index[general]{Problems!Windows Backup}
+\index[general]{Windows Backup Problems}
+If during a Backup, you get the message:
+{\bf ERR=Access is denied} and you are using the portable option,
+you should try both adding both the non-portable (backup API) and
+the Volume Shadow Copy options to your Director's conf file.
+
+In the Options resource:
+\footnotesize
+\begin{verbatim}
+portable = no
+\end{verbatim}
+\normalsize
+
+In the FileSet resource:
+\footnotesize
+\begin{verbatim}
+enablevss = yes
+\end{verbatim}
+\normalsize
+
+In general, specifying these two options should allow you to backup
+any file on a Windows system. However, in some cases, if users
+have allowed to have full control of their folders, even system programs
+such a Bacula can be locked out. In this case, you must identify
+which folders or files are creating the problem and do the following:
+
+\begin{enumerate}
+\item Grant ownership of the file/folder to the Administrators group,
+with the option to replace the owner on all child objects.
+\item Grant full control permissions to the Administrators group,
+and change the user's group to only have Modify permission to
+the file/folder and all child objects.
+\end{enumerate}
+
+Thanks to Georger Araujo for the above information.
-\subsection*{Windows Ownership and Permissions Problems}
+\section{Windows Ownership and Permissions Problems}
\index[general]{Problems!Windows Ownership and Permissions}
\index[general]{Windows Ownership and Permissions Problems}
-\addcontentsline{toc}{subsection}{Windows Ownership and Permissions
-Problems}
If you restore files backed up from WinNT/XP/2K to an alternate directory,
Bacula may need to create some higher level directories that were not saved
to cease the ownership of those files and thus change the permissions.
However, a much better solution to working with and changing Win32 permissions
is the program {\bf SetACL}, which can be found at
-\elink{http://setacl.sourceforge.net/}{http://setacl.sourceforge.net/}.
+\elink{http://setacl.sourceforge.net/}{\url{http://setacl.sourceforge.net/}}.
If you have not installed Bacula while running as Administrator
and if Bacula is not running as a Process with the userid (User Name) SYSTEM,
the problem.
-\subsection*{Manually resetting the Permissions}
+\section{Manually resetting the Permissions}
\index[general]{Manually resetting the Permissions}
\index[general]{Permissions!Manually resetting the}
-\addcontentsline{toc}{subsection}{Manually resetting the Permissions}
The following solution was provided by Dan Langille \lt{}dan at langille in
the dot org domain\gt{}. The steps are performed using Windows 2000 Server but
In addition to the above methods of changing permissions, there is a Microsoft
program named {\bf cacls} that can perform similar functions.
-\subsection*{Backing Up the WinNT/XP/2K System State}
+\section{Backing Up the WinNT/XP/2K System State}
\index[general]{State!Backing Up the WinNT/XP/2K System}
\index[general]{Backing Up the WinNT/XP/2K System State}
-\addcontentsline{toc}{subsection}{Backing Up the WinNT/XP/2K System State}
A suggestion by Damian Coutts using Microsoft's NTBackup utility in
conjunction with Bacula should permit a full restore of any damaged system
To the best of my knowledge, this has not yet been tested. If you test it,
please report your results to the Bacula email list.
-\subsection*{Windows Considerations for Filename Specifications}
-\index[general]{Specifications!Windows Considerations for Filename}
-\index[general]{Windows Considerations for Filename Specifications}
-\addcontentsline{toc}{subsection}{Windows Considerations for Filename
-Specifications}
+\section{Considerations for Filename Specifications}
+\index[general]{Windows!Considerations for Filename Specifications}
Please see the
\ilink{Director's Configuration chapter}{win32} of this manual
Path/filenames longer than 260 characters (up to 32,000) are supported
beginning with Bacula version 1.39.20.
-\subsection*{Win32 Specific File daemon Command Line Options}
+\section{Win32 Specific File daemon Command Line}
\index[general]{Client!Win32 Specific File daemon Command Line Options}
\index[general]{Win32 Specific File daemon Command Line Options}
-\addcontentsline{toc}{subsection}{Win32 Specific File daemon Command Line
-Options}
These options are not normally seen or used by the user, and are documented
here only for information purposes. At the current time, to change the default
automatically once Bacula is installed. However, you may note these options in
some of the .bat files that have been created for your use.
-\subsection*{Shutting down Windows Systems}
+\section{Shutting down Windows Systems}
\index[general]{Shutting down Windows Systems}
\index[general]{Systems!Shutting down Windows}
-\addcontentsline{toc}{subsection}{Shutting down Windows Systems}
-Some users like to shutdown their windows machines after a backup using a
+Some users like to shutdown their Windows machines after a backup using a
Client Run After Job directive. If you want to do something similar, you might
take the shutdown program from the
-\elink{apcupsd project}{http://www.apcupsd.com} or one from the
-\elink{Sysinternals project}{http://www.sysinternals.com/ntw2k/freeware/psshutdown.shtml}.
+\elink{apcupsd project}{\url{http://www.apcupsd.com}} or one from the
+\elink{Sysinternals project}
+{\url{http://www.sysinternals.com/ntw2k/freeware/psshutdown.shtml}}.