I found some info on Google searches to get Windows 7 to join a Samba domain controller. I have Ubuntu 9.04 Jaunty which runs Samba 3.3.2, which I guess does not work. You need 3.3.4. Windows 7 needs a registry change:
The above need to be added to allow the join to work. Then find the key below and set those values to 0.
The Netlogon values need to be updated, or Windows 7 will not allow domain logons. You’ll get an error about credentials and no domain controller, or something like it. Adding the second two will allow the logon.
Adding the registry keys above, plus upgrading Samba, did the trick. I was able to join Windows 7 to Samba 3.3.4, but I did get a weird error about the DNS suffix being wrong. I just said OK and left it. I tried to change it several times after, too, but always get the same error. System working fine so far though!
As for upgrading Samba, you’ll have to Google that one. But here’s what I did, in a nutshell. (This is NOT a HOWTO, just a record of my experience, so if you follow this, it might break your system. Just be warned. A Samba Server book might be nice for more information.) I had a working domain controller, so I had a SAM database already with SID’s and passwords. I didn’t want to lose those. After backing up my server and Samba configs (including all the tdb files) I removed Samba 3.3.2 package from Ubuntu. Then I downloaded the Samba source tar.gz for version 3.3.4, unpacked and “./configure” and then compiled. (make && make install)
At this point I found all my tdb files and copied them into the default Samba installation, which was different than the Ubuntu package. I think the original tdb files from Ubuntu are in /var/lib/samba. I copied all that to /usr/local/samba/var/lock. (the default when compiling from source) I also setup a link from the original smb.conf in /etc/samba to /usr/local/samba/lib/smb.conf.
Now I’ve got my Windows 7 system logged in and joined to my Samba domain!