public override RunResult Run(DataRow input, DataTable dataTable, DataObjectStore store, Type codeBehind, Workflow.UpdateTableDelegate updateTableDelegate) { DDIHelper.CheckDataTableForSingleObject(dataTable); DataRow dataRow = dataTable.Rows[0]; if (!(dataRow[base.IdentityVariable] is ADObjectId)) { throw new NotSupportedException("Currently we don't support Back-Link look up based on the UMC type Identity!"); } if (this.EnableFilter) { base.Command.AddParameter("Filter", string.Format("{0} -{1} '{2}'", this.LinkProperty, this.FilterOperator, DDIHelper.ToQuotationEscapedString(((ADObjectId)dataRow[base.IdentityVariable]).DistinguishedName))); } RunResult runResult = new RunResult(); PowerShellResults <PSObject> powerShellResults; base.ExecuteCmdlet(null, runResult, out powerShellResults, false); if (!runResult.ErrorOccur) { List <ADObjectId> list = new List <ADObjectId>(); foreach (PSObject psobject in powerShellResults.Output) { if (!this.EnableFilter) { ADObjectId adobjectId = (ADObjectId)psobject.Properties[this.LinkProperty].Value; if (adobjectId != null && adobjectId.Equals(dataRow[base.IdentityVariable])) { list.Add(psobject.Properties["Identity"].Value as ADObjectId); } } else { list.Add(psobject.Properties["Identity"].Value as ADObjectId); } } dataRow[this.OutputVariable] = list; } return(runResult); }