如何以編程方式更改Windows用戶名(使用某些API或命令行工具) 或者如何重命名Windows用戶?以編程方式更改一些Windows用戶名(重命名Windows用戶)
回答
您可以使用NetUserSetInfo函數更改用戶帳戶的用戶名。
如果您只想更改用戶名,請將level參數設置爲0並傳遞USER_INFO_0結構。如果您想一次更改多件事,您可以使用不同的級別。
這是我已經成功地用於更改用戶名的一個簡單的代碼位:
#include <Windows.h>
#include <LM.h>
#include <stdio.h>
#pragma comment(lib, "netapi32.lib")
int main(int argc, char ** argv)
{
USER_INFO_0 ui0;
NET_API_STATUS result;
LPWSTR command = GetCommandLineW();
wchar_t newname[21];
while (*command != L'*') command++;
command++;
ui0.usri0_name = newname;
wcscpy_s(newname, _countof(newname), L"decommiss-");
wcscat_s(newname, _countof(newname), command);
result = NetUserSetInfo(NULL, command, 0, (LPBYTE)&ui0, NULL);
printf("%u\n", result);
return result;
}
謝謝,但什麼是(lm.h)文件,是他們在.net中的一些替代品?因爲我不熟悉C++ :) –
不能幫助你,對不起,但我想有一些支持的方式直接從.net代碼調用Win32 API函數。 MSDN庫中記錄了NetUserSetInfo參數和USER_INFO_0結構。 NET_API_STATUS只是一個32位無符號整數。 –
你不能在Windows系統上明顯改變用戶的名字,因爲它對key
有很多內部資源,但是你可以改變它的DisplayName
,順便說一下,它不會影響內部文件結構,如此種類cosmetic
的變化。這很可能會在您使用多年的同一臺機器上爲其他用戶造成混淆,因此我建議不要這樣做。但是如果你想,這裏是powershell
腳本示例,該應該爲你工作:
$CurrentUserName = "Your_Domain_Name/Current_User_Name"
Get-QADUser -SearchRoot $CurrentUserName `
| Set-QADUser -DisplayName "New_User_Name" `
| FT FirstName, LastName, DisplayName, company
更詳細的說明一下這個很好的例子:
Change user DisplayName from powershell
請注意,在這裏,他們使用爲PowerShell
額外插件。
編輯
上受到另一個鏈路要澄清我的意思:
Change user name on Windows7 Professional
希望這有助於。
謝謝你,這是一個很好的答案,但我認爲你可以通過程序更改用戶名,因爲如果你按下F2,它可以從本地用戶和組更改。 –
確定,但它不會更改附加到C:\ Users \中的用戶的文件系統...檢查我編輯的帖子。 – Tigran
好的,沒事的.. 我只需要改變登錄名,我明天就試試:) –
我已經寫了一些小方法來重命名使用System.DirectoryServices.DirectoryEntry類的Windows用戶。
public bool RenameUser(string oldLoginName, string newLoginName)
{
bool renamed = false;
try
{
using (DirectoryEntry AD = new
DirectoryEntry("WinNT://" + Environment.MachineName + ",computer"))
{
try
{
using (DirectoryEntry NewUser = AD.Children.Find(oldLoginName, "user"))
{
if (NewUser != null)
{
NewUser.Rename(newLoginName);
renamed = true;
}
}
}
catch (Exception ex)
{
//TODO: Log
}
}
}
catch (Exception ex)
{
//TODO: Log
}
return renamed;
}
這也是一個有用的舔(重命名使用WMI,WMIC工具)http://www.911cd.net/forums//index.php?showtopic=23638 –
謝謝你!我設法減少你的代碼到'使用(var entry = new DirectoryEntry($「WinNT:// {Environment.MachineName}/{oldLoginName}」))entry.Rename(newLoginName);'爲我的目的,它的工作原理完美! – Maverik
- 1. 重命名/更改cygwin用戶名
- 2. 以編程方式更改創建Drupal用戶名
- 3. 以編程方式重命名Windows上的打開文件
- 4. Windows Vista以編程方式重新映射用戶目錄
- 5. 以編程方式更改Windows Shell
- 6. 以編程方式重命名plist值?
- 7. 重命名Android apk以編程方式
- 8. 以編程方式驗證登錄名(用戶名和密碼)
- 9. Windows應用商店應用:以編程方式更改語言
- 10. .NET Windows服務用戶名
- 11. gitignore我的windows用戶名
- 12. Windows XP中的用戶名
- 13. Windows域中的用戶名
- 14. Azure AD和Windows 10以及用戶名
- 15. 獲取Windows用戶名以NaCl nexe
- 16. 更改用戶名
- 17. 如何以編程方式在django中更改用戶名和密碼?
- 18. 重命名在Windows
- 19. 如何以編程方式重命名Android應用程序?
- 20. 殺死進程用戶名變量? (Windows)
- 21. 如何以編程方式檢查Tumblr用戶名可用性?
- 22. 使用用戶名/密碼以編程方式登錄到Facebook
- 23. Windows以編程方式使用Java或CMD更改系統卷
- 24. 如何使用C#代碼重命名Windows訪客帳戶?
- 25. IMAP客戶端如何以編程方式將Gmail標籤重命名爲
- 26. 重命名用戶名iSQL plus
- 27. 是否有可能以編程方式設置Windows服務的用戶帳戶?
- 28. 如何獲取和更改Windows憑據用戶名和密碼
- 29. 如何在Windows上更改git bash用戶名?
- 30. Android - 如何以編程方式通過用戶名切換用戶?
爲什麼??這是一個典型的問題!並沒有關於它的資源! –
爲什麼這降低了投票率? – Tigran
你想達到什麼目的?你想暫時登錄不同的用戶嗎? –