我是芝加哥一所大学的开发人员,在Unidata 7.2上支持Ellucian / Datatal Colleague。我们最近从Unix上的Unidata转换为Windows Server,并且有许多必须转换为新操作系统的提取cron作业。在转换过程中,我被介绍到MS Windows Powershell脚本编写环境,并一直使用它来自动化许多程序碎片化的任务,这些任务在不同的机器上被异步拆分和执行。
我们正在实施基于MS Sharepoint构建的Ellucian Portal,对于该任务,我们需要从HR数据中运行夜间作业刷新MS Active Directory属性。为了做到这一点,我整理了一个Powershell脚本来获取平面文件并更新AD。但是,Powershell脚本的优点在于您可以使用.Net框架对象本地工作。多年来我使用VB UniObjects开发了许多应用程序和实用程序,这似乎是利用Powershell接口并将提取步骤直接构建到AD更新脚本中的绝佳机会,因此整个过程可以作为单个集成执行应用
我已经从Rocket软件下载并安装了.Net的U2工具包,但我遇到了一个障碍,因为Powershell参考和实例化语法与任何Visual Studio语言都不同。虽然我已经能够取得一些进展,并且能够与U2.Data.Client命名空间建立U2 ADO连接,但我仍然无法正确实例化Native UniObjects U2.Data.Client.UO对象。
我确信这只是一个正确引用库的简单问题,但我以前从未实际使用.Net框架,而且我似乎无法找到使用U2 .Net的任何权威示例Powershell的图书馆。这个论坛似乎是一个很好的资源,我所取得的进展是由于我在这里发现的帖子。如果任何人对U2和Powershell都有任何想法或专业知识,我很乐意听到你是否对如何使魔术发生了意见。
答案 0 :(得分:1)
感谢您提出这个问题。 您可以从Windows PowerShell轻松调用U2 Toolkit for .NET(U2NETDK)。 请参阅随附的屏幕截图。 我做了以下事情:
如果你想使用UO.NET功能并且你想使用读取文件,UniCommand,SelectList,那么请参考U2.Data.Client.UO.UniFile,U2.Data.Client.UO.UniCommand等。
我希望这个例子也能帮助其他U2 .NET用户。
答案 1 :(得分:0)
感谢您尝试使用U2NETDK的ADO.NET和Windows PowerShell。 对于Native Access(Uniobjects API),您不需要UODOTNET.DLL。 我们在U2NETDK中嵌入了Uniobjects API。 因此,您将引用U2.Data.Client和U2.Data.Client.UO名称空间。请参见下面的脚本和屏幕截图。
Add-Type -Path "C:\Program Files (x86)\Rocket Software\U2 Toolkit for .NET\U2 Database Provider\bin\.NETFramework\v2.0\U2.Data.Client.dll"
$Connection = New-Object U2.Data.Client.U2Connection
$Connection.ConnectionString = "Database=XDEMO;User ID=administrator;Password=pass;Server=9.72.199.235;Persist Security Info=True;ServerType=universe;AccessMode=Native"
$Connection.Open()
$Session = $Connection.UniSession
$UniSelectList =$Session.CreateUniSelectList(2);
$UniFile = $Session.CreateUniFile("PRODUCTS");
$UniSelectList.Select($UniFile);
while (!$UniSelectList.LastRecordRead)
{
$sRecID = $UniSelectList.Next();
write-host $sRecID
}
$Connection.Close()