在远程域控制器上创建和链接 GPO

Creating and linking GPO on remote domain controller

我试过下面的代码,但它不起作用。我有例外:

Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

这一行:

GPMGPO gpo = (GPMGPO) gpd.CreateGPO();

实际代码如下:

public void CreateAndLinkGPO()
{
    string strGPO = "Test GPO";
    string strOU = "LDAP://DC=testdc,DC=local";
    GPM gpm = new GPM();
    GPMConstants gpc = (GPMConstants) gpm.GetConstants();
    GPMDomain gpd = (GPMDomain) gpm.GetDomain(Environment.GetEnvironmentVariable("USERDNSDOMAIN"), "", gpc.UseAnyDC);
    GPMSearchCriteria searchOBJ = gpm.CreateSearchCriteria();
    searchOBJ.Add(gpc.SearchPropertyGPODisplayName, gpc.SearchOpEquals, strGPO);
    GPMGPOCollection objGPOlist = gpd.SearchGPOs(searchOBJ);
    GPMSOM gpSom = gpd.GetSOM(strOU);
    GPMGPO gpo = (GPMGPO) gpd.CreateGPO();
    gpSom.CreateGPOLink(-1, objGPOlist[1]);
}

是否有更好的创建和链接 GPO 的方法? 因为即使这段代码确实有效,我仍然必须在每台服务器上安装远程服务器管理工​​具。应用程序需要 运行 访问多个域。

我已经采用了 powershell 方式,一切都像冠军一样工作。

我的目的是为 AD 用户添加证书。但似乎你不必用 GPO 来做。相反,您可以使用 powershell 命令执行此操作。

要创建新的 AD 用户,请遵循此指南:

Create Active Directory Users PowerShell Script

要将证书分配给现有的 AD 用户,请遵循以下指南: