Use o próprio SQL para gerar seus scripts de backup e restauração. Você terá que lidar com MASTER e MSDB primeiro através dos meios documentados para obter contas de usuário, mas caso contrário, você faz algo assim (código não testado):
/* script to generate backup script */
use master
go
select 'backup database ['+ [name] +'] to DISK=''\myserver\mypath\' + [name] + '.BAK'' WITH COPY_ONLY, INIT'
from sys.databases where name not in ('master','msdb','tempdb','model')
/* generate restore script */
select 'restore database ['+ [name] +'] from DISK=''\myserver\mypath\' + [name] + '.BAK'' '
from sys.databases where name not in ('master','msdb','tempdb','model')
Execute isso no analisador de consultas, cole os resultados de cada parte em uma nova janela do editor de consultas e salve. Essa é a maneira mais segura de fazer isso, e tudo isso pode ser executado de forma programada e automatizada (com alguém monitorando o progresso, é claro). Obviamente você precisa desligar o acesso do cliente no servidor de origem antes desses backups "finais". Você terá que ajustar a parte de restauração se o layout da sua unidade no novo servidor for significantemente diferente.
A maneira mais rápida seria instalar o SQL Server com o mesmo caminho e layouts de unidade, basta simplesmente desligar o servidor de origem e copiar todos os arquivos para os mesmos locais no novo servidor (incluindo mestre, etc.). Isso funcionou para mim no passado, mas restaurar o master para um novo servidor desta maneira não é totalmente livre de problemas, dependendo dos ambientes (nem é oficialmente suportado pelo MSFT, eu acho). Ele deve funcionar contanto que você tenha a mesma edição do SQL Server, versão e service pack + nível de patch, mesmo que a origem seja de 32 bits e o destino seja de 64 bits.