1

私はシカゴの大学の開発者で、Unidata 7.2 で Ellucian/Datatal Colleague をサポートしています。最近、Unix 上の Unidata から Windows Server に変換し、新しい OS に変換する必要のある多数の抽出 cron ジョブがありました。その変換中に、私は MS Windows Powershell Scripting Environment を紹介され、それを使用して、タスクが分割され、異なるマシンで非同期に実行された、手続き的に断片化されていた多くのタスクを自動化しています。

MS Sharepoint 上に構築された Ellucian Portal を実装しており、そのタスクのために、人事データから MS Active Directory 属性を更新する夜間ジョブを実行する必要があります。そのために、フラット ファイルを取得して AD を更新する Powershell スクリプトを作成しました。ただし、Powershell スクリプトの優れた点は、.Net フレームワーク オブジェクトをネイティブに操作できることです。私は何年にもわたって VB UniObjects を使用して多くのアプリケーションとユーティリティを開発してきました。これは、Powershell インターフェイスを活用し、抽出ステップを AD 更新スクリプトに直接組み込む絶好の機会だと思われます。これにより、プロセス全体を 1 つの統合されたスクリプトとして実行できます。応用。

Rocket ソフトウェアから .Net 用の U2 ツールキットをダウンロードしてインストールしましたが、Powershell の参照とインスタンス化の構文がどの Visual Studio 言語とも異なるという問題に遭遇しました。ある程度の進歩があり、U2.Data.Client 名前空間との U2 ADO 接続を確立できましたが、ネイティブ UniObjects U2.Data.Client.UO オブジェクトを適切にインスタンス化するのにまだ問題があります。

ライブラリを正しく参照することに関する単純な問題だと確信していますが、実際に .Net フレームワークを使用したことがないため、Powershell で U2 .Net ライブラリを使用する信頼できる例を見つけることができないようです。 . このフォーラムは優れたリソースのようで、ここで見つけた投稿のおかげで進歩を遂げることができました。U2 と Powershell の両方について考えや専門知識をお持ちの方がいらっしゃいましたら、魔法を実現する方法についてご意見をお聞かせいただければ幸いです。

4

2 に答える 2

1

この質問をしていただきありがとうございます。U2 Toolkit for .NET (U2NETDK) は、Windows PowerShell から非常に簡単に呼び出すことができます。同封のスクリーンショットを参照してください。私は次のことをしました:

  1. U2 Toolkit for .NET をインストールする
  2. インストールされた .NET U2NETDK アセンブリを参照する
  3. 接続オブジェクトの作成
  4. コマンド オブジェクトの作成
  5. 接続を開く
  6. ADO.NET コマンドの実行 ( SELECT FIRST_NAME, SURNAME FROM MEMBERS)
  7. データを取得します。PowerShell にデータを書き込む
  8. 接続を閉じます。

UO.NET 機能を使用する場合で、ファイルの読み取り、UniCommand、SelectList を使用する場合は、U2.Data.Client.UO.UniFile、U2.Data.Client.UO.UniCommand などを参照してください。

この例が他の U2 .NET ユーザーにも役立つことを願っています。

ここに画像の説明を入力

この例を参照してください: http://blogs.technet.com/b/threekings/archive/2008/07/18/ado-net-in-powershell-update-sql-data-example-sample.aspx

于 2012-11-12T17:35:35.410 に答える
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()

ここに画像の説明を入力

于 2012-11-19T03:02:08.643 に答える