Linux – Is there no SMB/CIFS client component in Windows

cifslinuxsmbwindowswindows-vista

I know that Windows acts as an SMB/CIFS server by default. So one can easily access Windows files from another machine in the network with a proper SMB client. But what if I want to do the opposite and access the SMB server on that other machine with the Windows machine?

In other words, is it true that Windows only has the SMB server component, and not the client component?

I am using Windows Vista SP2. The way I have tried accessing the SMB server from Windows is by going to Computer, and then Network. I can see all the devices in the network, even my TV shows up, but not the Linux-based STB that hosts the SMB server. Is this normal behavior in Windows?

However, I am able to access the STB simply by using my Android phone in combination with the ASTRO file manager and the SMB module for it. I am even able to connect it to the Windows machine this way, not just the Linux-based STB. I can even copy files from my Linux-based STB to my Windows-based PC, all from a handheld Android device. But I have no luck accessing anything from the Windows machine… what gives?

The way I figure is that Windows simply lacks the SMB/CIFS client component. Am I right? And if so, where do I obtain a SMB client that runs on Windows? The most clients I've seen on Google are for Linux.

Best Answer

No, it is not true. Windows uses SMB as its primary file sharing protocol, and includes SMB/CIFS client capabilities in almost all Windows versions since Windows for Workgroups 3.1. (Microsoft also distributed stand-alone clients for earlier versions of Windows and even MS-DOS, named "Microsoft Network Client" or "Microsoft LAN Manager" depending on versions.)

The reason your PC's browser doesn't see the shares on the STB may be an issue to do with workgroup names: when using the old "NetBIOS" network browsing protocol, Windows only displays hosts within the same workgroup, although other hosts can still be accessed by name. (Note that network browsing is not part of SMB, and is not required for SMB to work.)

Try accessing the SMB server directly by its name. Open a command-prompt window and try a command like:

  • net view \\servername to view visible shares;

  • dir \\servername\sharename to list a share's contents;

  • net use s: \\servername\sharename to map a share to a drive letter.

Also try changing servername to the STB's IPv4 address.

Related Question