微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

术语“Get-ADFineGrainedPasswordPolicySubject”未被识别为命令行开关从 powershell 在 C# 中执行时

如何解决术语“Get-ADFineGrainedPasswordPolicySubject”未被识别为命令行开关从 powershell 在 C# 中执行时

我有一个奇怪的问题。完全不知道在这种情况下该怎么做。

虽然我可以创建细粒度的策略并使用“Add-ADFineGrainedPasswordPolicySubject”命令行开关应用这些策略,但没有任何问题。但是,虽然这些命令行开关是从 C# 程序中引用的,但它开始抱怨 Get-ADFineGrainedPasswordPolicySubjectAdd-ADFineGrainedPasswordPolicySubject 作为“术语 Get-ADFineGrainedPasswordPolicySubject”未被识别为命令行开关或函数

我真的不知道。我已经导入了“Active Directory”模块,但仍然一直抛出异常。

没有在互联网上的某处找到任何解决方案,有点卡住了。

请参考以下源代码

using (var powerShell = PowerShell.Create())
{
      powerShell.Commands.AddCommand("Import-Module").AddArgument("ActiveDirectory");
      powerShell.Invoke();
      powerShell.Commands.Clear();

      powerShell.Commands.AddCommand(new Command("Get-ADDefaultDomainPasswordPolicy",true));
      ICollection<PSObject> defaultDomainPasswordPolicyOutput = powerShell.Invoke();

      if (defaultDomainPasswordPolicyOutput != null)
      {
          defaultDomainPasswordPolicyOutput.ToList().ForEach(policy =>
          {                           
                var newFineGrainedpolicyCmdLet = $"New-ADFineGrainedPasswordPolicy -Name preppedPolicy -Precedence 1";

                powerShell.Commands.AddCommand(new Command(newFineGrainedpolicyCmdLet,true));
                powerShell.Invoke();

                Console.WriteLine("Error Count : {0}",powerShell.Streams.Error.Count);                                                               

                 var fineGrainedPolicySubjCmdLetASked = $"Get-ADFineGrainedPasswordPolicySubject -Identity preppedPolicy";

                 powerShell.Commands.AddCommand(fineGrainedPolicySubjCmdLetASked);
                 powerShell.Invoke();                               

                 var fineGrainedPolicySubjCmdLet = $"Add-ADFineGrainedPasswordPolicySubject -Identity preppedPolicy -Subjects S-ahpOneserver";

                 powerShell.Commands.AddCommand(fineGrainedPolicySubjCmdLet);
                 powerShell.Invoke();                                                            
           });
        }
        else
        {
            Console.WriteLine("Policies dont found.");
            Console.ReadLine();
         }
   }
}
catch(Exception ex)
{
    Console.WriteLine("Inside exception area : ");
    Console.WriteLine("Exceptions {0}",ex);
    Console.ReadLine();

}

该程序可以在具有 .NET 环境的 Windows Server 2012 R2 上运行,并在那里抛出上述异常。

知道如何摆脱这种情况吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。