First, please be aware that when Windows won't resolve a computer name, it is still possible to access a system using an IP address directly providing the systems are on the same subnet and the Firewall allows it (which is in 99% of most cases where it worked before but no longer does).
For example, Steve's PC name is "Steves-PC" and his laptop name is "Laptop". When an UNC path (Universal Naming Convention path) resolves properly, typing in \\steves-pc into File Explorer will resolve the computer name to an IP address, and the same for any other machine on the network. Services such as Remote Desktop Protocol (RDP) use the same method to resolve computer names.
However, if the name resolution is broken, then things stop working. One way around this is to look at the IP address of each system and access it using the IP address. So, \\steves-pc might resolve to 192.168.0.5, which can be entered in as \\192.168.0.5 in File Explorer and Remote Desktop.
You can find out which IP is assigned to each PC by clicking Start, then type in "CMD";' wait for "CMD.EXE" or "Command Prompt" to appear, click it, then type in "ipconfig" and press Enter. The IP address of the computer will be revealed.
That said, this IP addresses in this manner is not convenient, and IP addresses on the network can change. But in an "emergency" situation when you just want it to work, an IP address is a quick way out.
In my testing, starting the first three services in the list: Function Discovery Provider Host (FDPHost), Function Discovery Resource Publication (FDResPub), and Network Connections (NetMan) made the Remote Desktop Protocol (RDP) and File Explorer resolve the computer names.
I hope that helps!
(Infopackets.com)