潜在解决方案

潜在解决方案

当我想访问无密码网络共享时,Windows 10 会提示我输入密码。共享位于 NAS(SMB 协议)上。我可以从其他操作系统/系统访问共享,无需任何密码。我可以在提示符下输入任何内容,它都会接受。

显示其他错误:指定的登录会话不存在。它可能已被终止。

在此处输入图片描述

我尝试过的事情:

  • 在网络和共享中心->高级共享设置->所有网络->密码保护共享->关闭密码保护共享,禁用密码保护共享。
  • 在凭据管理器 -> Windows 凭据 -> Internet 或网络地址 = 共享名称上保存凭据。

以下是smb.conf来自 NAS 的要求:

[global]
dos charset = CP437
unix charset = UTF-8
display charset = UTF-8
netbios name = mynas
server string = "LinkStation"
socket options = TCP_NODELAY
max xmit = 65536
use sendfile = yes
os level = 1
wins server =

workgroup = WORKGROUP
security = user
auth methods = guest sam
passdb backend = tdbsam:/etc/samba/smbpasswd.tdb
encrypt passwords = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
unix password sync = yes
unix extensions = no
guest account = nobody
null passwords = yes
guest only = no
password level = 14
map to guest = Bad User

veto files = /.AppleDesktop/Network Trash Folder/TheVolumeSettingsFolder/.AppleDouble/.AppleDB/.com.apple.timemachine.supported/
delete veto files = yes

deadtime = 15
invalid users = mail, deamon
admin users = root
username map = /etc/samba/smbusers

log level = 1
max log size = 0

lock directory = /etc/samba/lock

dos filetimes = Yes
dos filetime resolution = No
map archive = Yes
map hidden = No
map system = No
dns proxy = No
show add printer wizard = No
host msdfs = no
disable spoolss = yes
wide links = yes
lanman auth = yes
printcap name = /etc/printcap
load printers = 

这是smbusers

# Unix_name = SMB_name1 SMB_name2 ...
root = administrator
nobody = guest pcguest smbguest

答案1

自 Windows 10 版本 1709 及更高版本起,SMB2 和 SMB3 默认禁用访客访问,因为客户端连接到强制访客或未经身份验证的凭据的 SMB 服务器。

下面引用和参考了与您的问题相关的 Microsoft 帖子的部分内容。我建议您通读其全部内容,以了解详细信息。

我还在下面发布了一些“潜在解决方案”作为答案,尽管出于安全原因,微软表示不要这样做。您应该确保您的网络已锁定,以防止相关系统遭受中间人攻击。

症状

从 Windows 10 版本 1709 和 Windows Server 2019 开始,SMB2 和 SMB3 客户端默认不再允许以下操作:

  • 来宾帐户访问远程服务器。
  • 提供无效凭据后,恢复为访客帐户。

SMB2 和 SMB3 在这些版本的 Windows 中具有以下行为:

  • Windows 10 企业版和 Windows 10 教育版不再允许用户默认使用来宾凭据连接到远程共享,即使远程服务器请求来宾凭据。

笔记: 此 Windows 10 行为发生在 Windows 10 1709、Windows 10 1803、Windows 10 1903、Windows 10 1909 以及 Windows 10 2004、Windows 10 20H2 和 Windows 10 21H1 中,只要 KB5003173 已安装。

如果您尝试连接到请求访客凭证而不是适当的经过身份验证的主体的设备,您可能会收到错误消息。

此外,如果远程服务器试图强制您使用访客访问,或者管理员启用访客访问,则 SMB 客户端事件日志中会记录以下条目:

Log Name: Microsoft-Windows-SmbClient/Security  
Source: Microsoft-Windows-SMBClient  
Date: Date/Time  
Event ID: 31017  
Task Category: None  
Level: Error  
Keywords: (128)  
User: NETWORK SERVICE  
Computer: ServerName.contoso.com  
Description: Rejected an insecure guest logon.  
User name: Ned  
Server name: ServerName

指导

此事件表示服务器尝试以未经身份验证的来宾身份登录用户,但被客户端拒绝。来宾登录不支持签名和加密等标准安全功能。因此,来宾登录容易受到中间人攻击,从而可能在网络上泄露敏感数据。Windows 默认禁用不安全(非安全)的来宾登录。我们建议您不要启用不安全的来宾登录。

原因

这种默认行为的改变是经过设计的,并且是 Microsoft 出于安全考虑所建议的。

来源


潜在解决方案

笔记:如果您进行了任何更改,请重新启动系统,然后在重新启动后重试。有时,要在 Windows 中生效,在更改注册表或组策略后需要重新启动。

第一的,使用此 PowerShell 启用、禁用或删除允许不安全的访客认证

$x = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" -Name "AllowInsecureGuestAuth";
If ($x) {
    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" -Name "AllowInsecureGuestAuth" -Value 1 -Force;
    } Else {
    New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" -Name "AllowInsecureGuestAuth" -PropertyType "DWORD" -Value 1 -Force;
    }

笔记:您可以通过将-Value 1代码更改为来撤消此操作-Value 0


第二,您可以尝试卸载KB5003173根据帖子所述,这是使此安全更改生效的更新。


第三,您可以尝试设置本地或域组策略以启用不安全的访客访问,设置如下:

  1. 打开本地组策略编辑器r (gpedit.msc)。
  2. 在控制台树中,选择计算机配置 > 管理模板 > 网络 > Lanman Workstation
  3. 对于设置,右键单击启用不安全的访客登录并选择编辑
  4. 选择已启用并选择好的

第四,按照适用的步骤如何在 Windows 中检测、启用和禁用 SMBv1、SMBv2 和 SMBv3发帖后您可以尝试启用 SMBv1。或者您可以启用 SMBv1,然后禁用 SMBv2 和 SMBv3,看看是否强制使用没有安全约束的 SMBv1。


第五,按照上述步骤设置注册表选项后,还有一件事要尝试,设置完成后重新启动,运行一个或两个命令行,但不能以管理员身份运行。

  1. 删除所有现有映射(如果有冲突)
net use * /delete
  1. 接下来运行这些变体之一,但/user:guest可能需要/user:<remoteMachineIPAddress>\guest
net use \\serverName\shareName "" /user:guest /persistent:yes 
net use \\serverName\shareName /user:guest "" /persistent:yes

使用上述两种格式之一,同时考虑制作与远程 SMB/NAS 系统的实际 IP 相匹配的注释/user:XX.XX.XX.XX\guest,这可能允许后续连接,而无需每次都重新输入凭据。

您应该通过重启进行测试,看看此解决方案在重启后是否有效。考虑将其添加为登录脚本,或将适用的逻辑放入/startupWindows 文件夹中,以便它在每次(或需要)用户登录时运行,如果在重启后需要再次运行。

批处理脚本

笔记: 将副本放入C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp目录中。

@ECHO OFF
IF NOT DEFINED MINIMIZED SET MINIMIZED=1 && START "" /MIN "%~F0" x && EXIT
net use \\serverName\shareName /user:guest "" /persistent:yes
EXIT

答案2

如果其他方法都失败了,请尝试在 Windows 登录中添加用户密码。这就是我无需凭证即可访问的方法。我最初将密码留空。添加密码后,我使用 PIN 码,就可以毫无问题地进入我的 NAS 共享。

相关内容