【发布时间】:2019-11-09 18:47:46
【问题描述】:
我想用 C# 获取 Guest 内置帐户名。因为不同地区的语言不同,Guest 仅适用于英语版本的 Windows,例如在西班牙语 Windows 上,Guest 为Invitado。
我想要做的是获取名称并使用我获得的名称编辑帐户,例如设置密码或添加一些组。
我已经尝试过这段代码:
var sGuest = new SecurityIdentifier(WellKnownSidType.AccountGuestSid, null);
PrincipalContext systemContext = null;
systemContext = new PrincipalContext(ContextType.Machine);
guestPrincipal = UserPrincipal.FindByIdentity(systemContext, IdentityType.Name, sGuest.ToString());
我得到这个错误:
System.ArgumentNullException: 'The domainSid parameter must be specified for creating well-known SID of type AccountGuestSid.
【问题讨论】:
-
值得指出的是Display&Login Name与FileSystem中的名称不同。即,如果我重命名用户,用户个人资料文件夹通常会保留旧名称。它根本无法移动/重命名而不会冒问题。 |然而,对于 Guest 来说,应该有一个特殊的变量需要检查。它应该标有
isGuestAccount = true之类的东西。 -
另一个问题是有时文件夹名称已本地化,但仅在资源管理器中查看时。配置文件的文件夹是“用户”。它作为“用户”写入文件系统。但它显示为 Users 或 Benutzer(德语)、usuario(我希望是西班牙语)或其他类似本地化的内容。
-
是的,这都是真的,我只是想按我说的那样从该地区获取访客用户的名称。
标签: c# administrator system-administration