C# Microsoft.Win32.TaskScheduler方式创建任务计划程序报错: System.ArgumentException: (12,21):UserId:Account

发布时间 2023-08-17 10:56:10作者: log9527

使用Microsoft.Win32.TaskScheduler创建任务计划程序可参考本人之前的一篇文章:https://www.cnblogs.com/log9527blog/p/17329755.html

最新发现个别账户使用Microsoft.Win32.TaskScheduler创建任务计划程序报错:System.ArgumentException: (12,21):UserId: Account

  1. 一种情况是账户名过长(有可能日语空格字节数太多导致)
  2. 反编译TaskService.RootFolder.RegisterTaskDefinition方法,因为账户原因,所以定位账户入参的去向

     再反编译User的构造函数,发现报错的账户最终会执行NTAccount.Translate

     所以把这段逻辑拿出来,传入账户名,发现抛异常了,查询微软官方文档

     

    IdentityNotMappedException(身份未映射异常)是指当一个用户的身份在系统中无法被映射为一个有效的标识时,抛出的异常。这通常发生在以下情况下:

    1. 用户的账户已被删除或禁用;
    2. 用户没有被授权访问某个资源或执行某个操作;
    3. 用户的标识信息(如用户名或密码)不正确;
    4. 该用户的身份在系统中没有被配置。

    解决此问题的方法包括检查用户的帐户状态,确保用户有权访问所需资源,验证用户的标识信息是否正确,并确保该用户的身份在系统中正确地配置。

但是对比另一个账户除了名称,没有任何区别,所以怀疑是该账户名与系统的一个域名相同导致,具体原因有大佬知道了麻烦告知