Hey @DavidWind,
That’s fantastic to hear - glad the third registry key was the charm! And you’re absolutely right: no one should have to spelunk this deep into the Windows hive just to share a folder, but hey, if we’re gonna hack through digital underbrush, at least we do it in style.
As for helping others trace these issues more easily in the future, a quick diagnostic script could definitely speed things up - especially for identifying Windows build/version, SMB settings, installed KB patches, and other system tweaks that may silently cause or solve these kinds of problems.
Here’s a PowerShell script idea that checks exactly that, with output useful for troubleshooting SMB issues:
PowerShell Diagnostic Script: Get-SMBCompatibilityInfo.ps1
# Run as Administrator
Write-Host "`n=== SYSTEM INFO ===`n"
Get-ComputerInfo | Select-Object OsName, OsArchitecture, OsVersion, WindowsVersion, WindowsBuildLabEx
Write-Host "`n=== INSTALLED UPDATES ===`n"
Get-HotFix | Sort-Object InstalledOn | Format-Table -AutoSize
Write-Host "`n=== SMB PROTOCOL STATUS ===`n"
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol,SMBDirect
Write-Host "`n=== REGISTRY KEYS ===`n"
$smbKeys = @(
"HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\AllowInsecureGuestAuth",
"HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\LmCompatibilityLevel",
"HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\SMB1",
"HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\SMB2",
"HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\SMB3"
)
foreach ($key in $smbKeys) {
try {
$value = Get-ItemPropertyValue -Path ($key -replace "\\[^\\]+$","") -Name ($key.Split('\')[-1])
Write-Host "$key : $value"
} catch {
Write-Host "$key : Not Found"
}
}
Write-Host "`n=== NETWORK PROFILE ===`n"
Get-NetConnectionProfile | Format-List Name, NetworkCategory, IPv4Connectivity
Write-Host "`n=== SHARED FOLDERS ===`n"
Get-SmbShare | Format-Table -AutoSize
Write-Host "`n=== SMB Server Configuration ===`n"
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol, EnableSMB2Protocol, RequireSecuritySignature, RejectUnencryptedAccess
Write-Host "`nDone.`n"
What this script checks:
- Windows version and build
- All installed hotfixes (KBs)
- Whether SMB1, SMB2, SMB3 are enabled
- Key registry entries (AllowInsecureGuestAuth, LmCompatibilityLevel, etc.)
- Network category (Public/Private)
- Active SMB shares
- SMB server configuration (e.g. signing, encryption enforcement)
How to use:
- Open PowerShell as Administrator
- Save the script to a file (e.g.,
Get-SMBCompatibilityInfo.ps1
)
- Run:
Set-ExecutionPolicy RemoteSigned -Scope Process
.\Get-SMBCompatibilityInfo.ps1
Let me know if you’d prefer a lightweight .bat
version for non-PowerShell folks, or one that exports everything to a .txt
or .HTML
file for posting back to a thread. We can make this even easier for the next “average music streamer” before they lose their mind setting NodeType
for the sixth time.
And hey - thanks for testing every step and reporting back. That feedback loop is what makes this nerd metal-forged (a softie).
Kind Regards,