The easiest way to prevent Windows XP or Windows Server 2003 from beeping is to disable the Beep service.

I have scripted NoBeep.bat to disable the Beep service, and if it is started, stop it.

The syntax for using NoBeep.bat is:

NoBeep \[\\ComputerName\]

Where \\ComputerName is optional. If not specified, the action is performed on the local computer.

NoBeep.bat contains:

@echo off
setlocal
set command=sc query beep
set qry=REG ADD HKLM\SYSTEM\CurrentControlSet\Services\Beep
set stop=sc stop beep
if not \{%1\}<h1><a name="_set_command_sc_1_query_beep_if_not_1_">\{\} set command=sc %1 query beep
if not \{%1\}</a></h1>\{\} set stop=sc %1 stop beep
if not \{%1\}==\{\} set qry=REG ADD %1\HKLM\SYSTEM\CurrentControlSet\Services\Beep
@echo %qry% /V Start /T REG_DWORD /F /D 4
%qry% /V Start /T REG_DWORD /F /D 4
for /f "Tokens=*" %%a in ('%command%^|find " RUNNING"^|find "STATE"') do (
 %stop%
)
endlocal