检查设备上安装了哪个用户配置文件

Check Which user profile is mounted on device

我想检查分配给我的机器的用户配置文件是漫游还是本地我如何使用 C# 检查它以及它在注册表中是否有任何条目。

谢谢你的进阶

我想一种方法是调用 win32 api 函数 GetProfileType

为了使用它,您必须将其声明为一种方法并像这样使用 DllImport attribute

[DllImport("Userenv.dll", EntryPoint = "GetProfileType", SetLastError = true, CharSet = CharSet.Auto)]
public static extern bool GetProfileType(out ProfileType dwflags);

由于我没有看到标志值的描述,您将不得不自己测试它。一旦您确定了为哪种配置文件类型返回了哪个值,您可能想要创建一个如下所示的枚举:

[Flags]
public enum ProfileType : uint
{
    Local = 0x00,
    Temporary = 0x01,
    Roaming = 0x02,
    Mandatory = 0x04
}

用法:

ProfileType profileType;

if (!GetProfileType(ref profileType))
{
  // Error handling here...
}

if (profileType.HasFlag(ProfileType.Local))
{
  // We have a local profile...
}

有关不同 User profiles 的详细信息,请查看以下链接:

更新:哦……好像已经有人完成了。我已经用(大概)正确的值更新了我的答案并将问题标记为重复。