如何以编程方式更改windows用户名(使用一些API或命令行工具)或如何重命名windows用户?
检测HWND可见性更改
C# – 如何获得鼠标点击命令行EXE不使用WINFORM
尝试安装windows服务时,InstallUtil.exe被删除
如何使用windows应用程序在第三方网站上填写和提交Web表单?
捕获Main()方法中的exception
您可以使用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,command); result = NetUserSetInfo(NulL,command,(LPBYTE)&ui0,NulL); printf("%un",result); return result; }
你不能在windows系统上明显地改变用户的名字,因为它是很多内部资源的key ,但是你可以改变它的displayname ,这样不会影响到内部的file结构,所以那种cosmetic变化。 这很可能会在您使用多年的同一台机器上为其他用户造成困惑,所以我建议不要这样做。 但是,如果你想,这里是powershell脚本的例子, 应该为你工作:
$CurrentUsername = "Your_Domain_name/Current_User_name" Get-QADUser -SearchRoot $CurrentUsername ` | Set-QADUser -displayname "New_User_name" ` | FT Firstname,Lastname,displayname,company
更详细的描述请看这个好例子:
从PowerShell更改用户displayname
请注意,在这里他们使用PowerShell extraplugin。
编辑
另一个主题的链接澄清我的意思是:
更改windows7专业版上的用户名
希望这可以帮助。
我已经写了一些小的方法来使用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; }
总结以上是内存溢出为你收集整理的以编程方式更改一些Windows用户名(重命名Windows用户)全部内容,希望文章能够帮你解决以编程方式更改一些Windows用户名(重命名Windows用户)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)