Eu me deparei com um problema semelhante. Aparentemente, pegar um diretório recursivo com smbget faz uso da variável de ambiente $ USER atual. Definir essa variável para o mesmo nome de usuário que foi passado para smbget contorna isso, mas ainda não funciona para Cron Jobs.
Esse problema está documentado aqui: link
Aqui está um trecho do meu script
pUSER=$USER # store previous user
USER=$username # new username
smbget -R -v -U -u "$username" "smb://server/c$/directory"
USER=$pUSER # restore previous username
Isso funciona via linha de comando, mas não quando chamado pelo cron, muito confuso.
Espero que isso ajude alguém.
EDITAR
Depois de revisitar isso, percebi que o mesmo poderia ser feito usando o smbmount. O código abaixo é um exemplo que funciona mesmo se chamado de crontab.
username=myuser
domain=corp #optional domain prefix
PASS=password123
smbmount \\fileserver\sharename /mnt/somedir -o user=$username,password=$PASS,dom=$domain
cp -R -u -v /mnt/somedir/* /destination_directory
umount /mnt/somedir