几个星期以来,我一直在寻找一种方法来实现这一目标;这基本上是发布的问题在 Stack Overflow 上差不多两年前,但那里的答案不起作用,我觉得这个问题更适用于超级用户(它本身没有关于如何从命令行完成此操作的问题,我找不到)。微软或技术网很有用,但我找不到命令netsh
。
我的部署脚本有一个如下所示的块:
echo Updating service settings...
sc config fdPHost start= auto >nul
sc start fdPHost >nul
sc config FDResPub start= auto >nul
sc start FDResPub >nul
sc config SSDPSRV start= auto >nul
sc start SSDPSRV >nul
sc config upnphost start= auto >nul
sc start upnphost >nul
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=Yes >nul
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa /v everyoneincludesanonymous /t REG_DWORD /d 1 /f >nul
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v restrictnullsessaccess /t REG_DWORD /d 0 /f >nul
net user guest ""
在其他地方有这样的块:
net share ExampleFolder="C:\ExampleFolder" /grant:Everyone,Read >nul
net share Desktop="%USERPROFILE%\Desktop" /grant:Everyone,Read >nul
icacls "C:\ExampleFolder" /grant Everyone:(OI)(CI)R /T /Q >nul
icacls "%USERPROFILE%\Desktop" /grant Everyone:(OI)(CI)R /T /Q >nul
最终目标是让这个网络上的所有设备能够互相看到,并且没有密码的用户能够复制/修改所有其他计算机的桌面和示例文件夹上的文件。我需要做的唯一一件事是这些块无法完成,那就是切换位于此处的密码保护共享选项:
Control Panel\All Control Panel Items\Network and Sharing Center\Advanced sharing settings
虽然现在将任何潜在的良好/有效的答案实现到我的部署包中已经太晚了,但我现在很好奇,想提出一个问题并可能给它一个赏金(当选项可用时)。正如标签所暗示的那样 - 我正在寻找一种纯命令行(cmd.exe)方法来在 Windows 10 上完成此操作,在某些时候可能会将其添加到批处理文件中。此部署位于中型、隔离的 LAN 上 - 因此请不要对上述设置从安全角度的含义感到太难过。
答案1
此功能依赖于本地来宾帐户:
NET USER Guest /ACTIVE:YES
通常就足以让它工作了。
如果之前没有禁用密码保护共享,则需要更改另一个注册表参数:
[HKEY_LOCAL_MACHINE\SECURITY\Policy\Accounts\{GUEST_USER_SID}\ActSysAc]
@=hex(0):41,00,00,00
禁用密码保护的共享
[HKEY_LOCAL_MACHINE\SECURITY\Policy\Accounts\{GUEST_USER_SID}\ActSysAc]
@=hex(0):c1,00,00,00
再次启用它
可以使用 WMIC 找到 SID:
WMIC USERACCOUNT WHERE "NAME='Guest'" GET SID