読者の皆様、ご挨拶!
伝統的に、あまり蹴らないようにお願いします。なぜなら、 これは私の最初の投稿です。
そのため、約6か月前、タスクはドメインのユーザーからの1Cデータベースのリスト(そのうち20以上が既に離婚している)の管理を自動化することでした。
これは、便宜上だけでなく、プロジェクトのフレームワーク内でも行われ、「ロールベースのアクセスモデル」が導入されました。 つまり、このモデルの意味は、ドメイン内の各ユーザーが特定のグループ(位置に応じて名前が付けられている)のメンバーであり、情報ベースのリストを含む事前定義された特権セットを持っているということです。
なぜなら Active Directoryドメインがある場合、グループポリシーを使用してタスクを完了するのが論理的です。
グーグルはかなりの数の実装(および有料の実装)を作成しましたが、それらのすべては、ほとんどの場合、データベースのリスト(ibases.v8i)を含む事前生成ファイルになりました。 したかったのは:
a)インフォベースに接続するための設定を一元管理します(SQLデータベースを備えたクライアントサーバーバージョンがあります)。
b)ユーザーの「ロール」に従って、ユーザーが利用できる情報ベースのリストを一元管理します。
その結果、私たちの会社で6か月以上働いているソリューションについてお話します。
それでは始めましょう。
ステップ11C 8.2はibases.v8iファイルに情報ベースのリストを保存します。このようなファイルは各ユーザーのプロファイルに存在します。 このファイルの形式と動作原理は
ここと
ここで詳しく説明さ
れて
いるので、
ここでこれを繰り返す理由はありません。
また、ibases.v8iファイルと同じディレクトリに1CEStart.cfgファイルがあります。このファイルの機能は、特定の情報ベースに接続するためのパラメーターを含む個々の* .v8iファイルへのパスを含むことができることです。
起動時に、1Cは1CEStart.cfgに登録されたファイルから情報ベースへの接続のパラメーターを取得し、それらをibases.v8iに配置します。 この機能を使用します。
最初に、各インフォベースのv8iファイルを作成します。
このようなファイルを作成する最も簡単な方法は、リスト内の目的のデータベースを右クリックし、「ファイルへのリンクを保存」オプションを選択することです。

ただし、このように作成されたv8iファイルには、不要な「余分な」行が含まれていることに注意してください。 通常の操作では、次のもののみを残すだけで十分です。
[%NAME% ] Connect=Srvr="%server%";Ref="%base%"; ClientConnectionSpeed=Normal App=Auto WA=1 Version=8.2
次に、これらのファイルをローカルネットワークユーザーの公開場所に配置し、「読み取り」権限を付与する必要があります。 面倒なことはせず、ドメインコントローラーのNETLOGONフォルダーに配置しました。 これにはいくつかの理由があります。ドメインコントローラー間のディレクトリレプリケーションとフォールトトレランス(3つのコントローラーがあり、そのうちの少なくとも1つがいつでも利用可能であるため)。
ステップ2特定のADグループのユーザーのメンバーシップに基づいてインフォベースのリストを管理するため、1Cデータベースに応じて必要な数のセキュリティグループを作成します。

プレフィックス「1C_82」は必須であり、さらにその理由は明らかです。
ここで、新しく作成された各セキュリティグループの[メモ]フィールドで、対応するv8iファイルへのパスを指定します。

これはグループで終わりました。
ステップ3ユーザーがログオンするたびに次のvbsスクリプトを実行するグループポリシーを作成します。
VBSコード On Error Resume Next Const PROPERTY_NOT_FOUND = &h8000500D Dim sGroupNames Dim sGroupDNs Dim aGroupNames Dim aGroupDNs Dim aMemof Dim oUser Dim tgdn Dim fso Dim V8iConfigFile Dim dir Const ForReading = 1, ForWriting = 2, ForAppending = 8
スクリプトのロジックは次のとおりです。
1. 1Cがインストールされているかどうかを確認し、インストールされていない場合、スクリプトは終了します。
2. ibases.v8iファイルが存在するかどうかを確認し、空に上書きします(存在しない場合は作成します)。
3.ユーザーがメンバーになっているADからすべてのグループを取得します。
4. 1C_82で始まるものを除くすべてをドロップします。
5.「Notes」属性の値を取得します。
6.この属性の値をファイル1CEStart.cfgに書き込みます
途中で、ログが書き込まれます。
Windows 7の場合-C:\ユーザー\ユーザー名\ appdata \ローカル\一時\ _dbconn.log
Windows XPの場合-C:\ Documents and Settings \ username \ Local Settings \ Temp \ _dbconn.log
ステップ4グループポリシーを必要なOUまたはドメイン全体に「ハング」させます。 スクリプトが無差別に適用されないように(すべてのユーザーが1Cで作業するわけではない)、ステップ2で作成したグループのみをグループポリシーセキュリティフィルターに追加したため、スクリプトは含まれるユーザーに対してのみ機能することに注意してくださいこれらのグループの少なくとも1つで:
ステップ5役割ベースのアクセスモデルで提供される1Cグループにユーザーのグループ(読み取り位置)を含めます(ただし、1人のユーザーでも可能ですが、例外があります)。 再起動後、ユーザーは自分の位置に個別の情報ベースのリストを取得します。
まあ、それがすべてです。
ちなみに、変更を適用するには、ユーザーはログインする必要がありません。たとえば、スクリプトを電子メールで送信するなど、便利な方法でユーザーにこのスクリプトを実行させるだけです。
ご清聴ありがとうございました。この記事が誰かを助けてくれたらとても嬉しいです。