的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