的Windows Vista和Windows 7在网络和共享中心此开关。它默认情况下处于启用状态,即使它们与Everyone共享(如公用文件夹),也可以防止未经身份验证的共享访问。我需要教我的应用程序打开和关闭自动。怎么样? 我怀疑在注册表中有一个值对此负责,但我不知道如何找到它。如何以编程方式打开或关闭密码保护共享?
回答
出口完整的寄存器作为1.reg,转分享(或关闭,如果它是打开的),出口2.reg和检查有何区别?
为了能够使用diff
实用,在Win9X/NT4 registration files (*.reg)
导出文件-format
这些文件只显示HKEY_USERS中MuiCache和MRUListEx(无论那些)的变化。请注意,我正在查找的交换机是系统范围的,应该位于HKEY_LOCAL_MACHINE中。 – CannibalSmith 2010-01-13 14:15:54
好吧,显然它不在reg :( – Kimvais 2010-01-13 16:02:24
@CannibalSmith:MRUListEx是针对“最近使用过的(MRU)”项目,因此它们会在包含您最近使用过的东西的列表中显示更高。 – 2010-01-19 14:26:15
这是在注册表中只是不一定在你期待的地方(这是在SAM)。从我可以告诉所有设置确实启用或禁用来宾帐户,所以,只需启用或禁用该帐户即可。
你没有说你编程您使用的语言,所以这里是一些简单的C代码,以使一个账户,如果你需要什么,我相信有很多各地通过谷歌。
#include <LM.h>
#pragma comment(lib, "Netapi32.lib")
BOOL EnableUser(LPCWSTR lpUserName, BOOL bEnable)
{
BOOL bRet = FALSE;
DWORD dwLevel = 1008;
LPUSER_INFO_1 ui1;
USER_INFO_1008 ui1008;
NET_API_STATUS nStatus;
nStatus = NetUserGetInfo(NULL, lpUserName, 1, (LPBYTE*)&ui1);
if(nStatus == NERR_Success)
{
ui1008.usri1008_flags = ui1->usri1_flags;
if(bEnable)
{
ui1008.usri1008_flags &= ~UF_ACCOUNTDISABLE;
}
else
{
ui1008.usri1008_flags |= UF_ACCOUNTDISABLE;
}
nStatus = NetUserSetInfo(NULL, lpUserName, dwLevel, (LPBYTE)&ui1008, NULL);
NetApiBufferFree(ui1);
if(nStatus == NERR_Success)
{
bRet = TRUE;
}
}
return bRet;
}
您的代码既不会禁用密码保护共享,也不会启用来宾帐户,我会逐步确保所有API调用返回0.此外,通过控制面板手动启用来宾帐户不会影响密码保护共享。 – CannibalSmith 2010-01-18 08:41:31
可能为时已晚:),但对于其他人希望有用。
以下步骤工作就好,我(它的工作对W8消费者预览太)。
将其关闭:
1 - 通过运行
净用户客体/活性启用访客帐户:是
2 - 通过运行获取访客用户SID,例如,
wmic useraccount where name ='guest'get sid
3 - 获取到注册表文件夹HKLM \ SECURITY写访问
4 - 修改下面的项,其中$ SID是在点2中获得的SID,来:
[HKEY_LOCAL_MACHINE \ SECURITY \策略\帐户\ $ SID \ ActSysAc]
@ =十六进制(0):41,00,00,00
5 - 重新启动机器(到现在为止,我没有找到更好的办法使更改生效)
到再次打开:
[HKEY_LOCAL_MACHINE \ SECURITY \策略\帐户\ $ SID \ ActSysAc]
@ =十六进制(0):c1,00,00,00
然后重新启动
这里是一个PowerShell脚本实现paolos回答。这是糙米,因为它允许每个人写访问特定的注册表键([7]部分指定此与REGINI语法),并使用在C文件:\根,但工作完美无瑕:
# Get guest user id
$SID = & "wmic" "useraccount" "where" "name='guest'" "get" "sid" "/Value" | Out-String
$SID = $SID.Trim().Substring(4)
# Generate regini script
$PATH = "\Registry\Machine\Security\Policy\Accounts\" + $SID + "\ActSysAc"
$PATH + " [7]`r`n" + $PATH + "`r`[email protected] = REG_NONE 4 0x41 0x00 0x00 0x00" >> "C:\firstrun.regini"
# Execute regini script
& "regini" "C:\firstrun.regini"
乘坐看看这个文件(disable_password_protected_sharing.bat)
@echo off
echo 12- get sid gust variable
for /f "delims= " %%a in ('"wmic useraccount where name='guest' get sid"') do (
if not "%%a"=="SID" (
set sid_guest=%%a
goto :loop_end
)
)
:loop_end
echo 13- create script for regini
@echo \Registry\Machine\SECURITY [1 5 7 11 17 21]> x
@echo \Registry\Machine\SECURITY\policy [1 5 7 11 17 21]>> x
@echo \Registry\Machine\SECURITY\policy\accounts [1 5 7 11 17 21]>> x
@echo \Registry\Machine\SECURITY\policy\accounts\%sid_guest% [1 5 7 11 17 21]>> x
@echo \Registry\Machine\SECURITY\policy\accounts\%sid_guest%\ActSysAc [1 5 7 11 17 21]>> x
echo 14- add permission for machine/security
net user guest /active:yes
regini x
del x
@echo Windows Registry Editor Version 5.00 > y.reg
@echo [HKEY_LOCAL_MACHINE\SECURITY\Policy\Accounts\%sid_guest%\ActSysAc] >> y.reg
@echo @=hex(0):42,00,00,00 >> y.reg
reg import y.reg
del y.reg
shutdown -r
它工作在Windows7
我测试了保罗的在Windows 7回答首页没有成功的罚款。 前比较.reg
提取的注册表和关闭密码保护的共享后,我注意到,在3个值修改:
[HKEY_LOCAL_MACHINE\SECURITY\Policy\Accounts\S-1-5-21-3207962671-1026919178-1165869658-501\ActSysAc] REG_NONE
值的第一个字节从c1
变更为41
(该SID是来宾帐户的SID)
[HKEY_LOCAL_MACHINE\SECURITY\SAM\Domains\Account] REG_BINARY "F"
值的17字节从3b
改为从15
变更为14
(0x1F5
3c
[HKEY_LOCAL_MACHINE\SECURITY\SAM\Domains\Account\Users\000001F5] REG_BINARY "F"
值的57字节是T客人的姓名值的YPE)
我试图改变只有第一个值由Paolo所示。即使重启后,这也没有改变密码保护共享。
[HKEY_LOCAL_MACHINE\SECURITY\SAM\Domains\Account\Users\000001F5] REG_BINARY "F".
我成功的另一个Windows 7的电脑进行测试: 但是,只有第三值14
和15
之间切换时,57字节,当我取得过成功。
- 1. 如何以编程方式在Windows 7中打开/关闭密码保护共享?
- 2. 如何在.NET中以编程方式密码保护pdf?
- 3. 如何以编程方式关闭打开的jquery.reveal.js模式框?
- 4. 如何以编程方式打开/关闭定时器
- 5. 如何以编程方式在Android中打开/关闭通知?
- 6. 如何在WP7上以编程方式打开/关闭WiFi
- 7. 如何以编程方式打开/关闭按钮?
- 8. 如何以编程方式打开和关闭layout_behavior行为?
- 9. 如何使用VB.NET打开受密码保护的共享网络文件夹?
- 10. 密码保护开关
- 11. 检测3gb开关是否以编程方式打开或关闭
- 12. 如何在ubuntu上以编程方式共享ssh密钥?
- 13. 以编程方式关闭任何打开的灯箱?
- 14. 共享完成后,如何关闭LinkedIn共享页面(共享它的方式打开新页面)?
- 15. 以编程方式开启/关闭GPS
- 16. 如何打开Word文档选择并以编程方式打印受保护
- 17. Matlab PARFOR循环可以以编程方式打开/关闭吗?
- 18. 如何以编程方式关闭UISearchDisplayController?
- 19. 如何以编程方式关闭BalloonTip?
- 20. 如何关闭McAfee以编程方式
- 21. 如何以编程方式访问受密码保护的网站?
- 22. 如何以编程方式忽略密码保护的Excel工作表
- 23. 是否可以通过编程方式打开/关闭3V3?
- 24. 以编程方式打开/关闭RaspberryPi USB端口
- 25. VBA不会关闭以编程方式打开的工作簿
- 26. 以编程方式关闭/打开网络
- 27. iOS 5:以编程方式打开和关闭蓝牙
- 28. 以编程方式打开和关闭数据绑定?
- 29. android在2.2中以编程方式打开和关闭GPS?
- 30. 以编程方式打开和关闭控制台
是否要在Win7上的“控制面板\所有控制面板项目\网络和共享中心\高级共享设置”中启用“共享,以便网络访问的每个人都可以读写公共文件夹中的文件”? – nick 2010-01-14 01:26:54
不可以。我想启用/禁用密码保护共享。这是从底部开始的第二个设置。 – CannibalSmith 2010-01-14 12:10:47