2013-01-08 83 views
3

我正在寫一個C++程序來管理Windows 7上的用戶帳戶。如何設置用戶帳戶密碼而不知道C中的舊密碼?

我想爲現有的用戶帳戶設置密碼。

我不能使用NetUserChangePassword(Netapi32.dll),因爲我沒有記錄創建用戶時設置的以前的密碼。

因此,程序必須能夠設置一個新的密碼(不知道舊密碼)。

有沒有辦法在C++中以編程方式做到這一點?

謝謝你的幫助。

+6

是這個安全漏洞是專門插入到Windows允許這種使用情況。 – RedX

+1

那麼,即使我喜歡在Linux上諷刺,root用戶可以在不知道舊密碼的情況下更改任何密碼;)。也許在Windows中有類似的東西。 – mfontanini

+0

看一下[NetUserSetInfo](http://msdn.microsoft.com/en-us/library/windows/desktop/aa370659 \(v = vs.85 \).aspx) – Romoku

回答

5

呼叫NetUserSetInfolevel參數設置爲1003

+3

我認爲應該強調,在不提供原始密碼的情況下調用'NetUserSetInfo'會使該用戶的EFS加密文件(如果有的話)無法訪問。避免這種情況的唯一方法是先前備份EFS證書或通過相同的方法恢復舊密碼。對於很多用戶來說,EFS不是一個問題,但對於那些使用它的人來說,這可能是一個非常頭疼的問題。 –

相關問題