• ベストアンサー

VBA でActiveDirectory 上のフォルダにアクセスする。

VBA でActiveDirectory 上のフォルダにアクセスする。 ●利用環境 OS:WinXP ソフト:Access+SQLServer ActiveDirectory(以下AD)に参加していない端末からAD上のフォルダにアクセスする際に、IDとパスワードを聞かれます。この端末を利用して、ACCESSのVBAからADにアクセスしたいのですが、VBA実行時にADのIDとパスワードを聞くようにしたいのですが、やり方がわかりません。 ご教示くださいますようお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

APIのWNetAddConnection2を使う方法です。 Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" _ (lpNetResource As NetResource, _ ByVal lpPassword As String, _ ByVal lpUserName As String, _ ByVal dwFlags As Long) As Long Private Type NetResource   dwScope As Long   dwType As Long   dwDisplayType As Long   dwUsage As Long   lpLocalName As String   lpRemoteName As String   lpComment As String   lpProvider As String End Type Private Const RESURCETYPE_ANY = &H0 Private Const CONNECT_INTERACTIVE As Integer = &H8 Private Const NO_ERROR = 0 Private Sub hoge()   Dim Ret As Long   Dim NetRes As NetResource   NetRes.dwType = RESOURCETYPE_ANY   NetRes.lpLocalName = vbNullString NetRes.lpRemoteName = "ぱす"   NetRes.lpProvider = vbNullString   Ret = WNetAddConnection2(NetRes, vbNullChar, vbNullChar, CONNECT_INTERACTIVE)   If Ret = NO_ERROR Then     MsgBox "接続成功"   End If End Sub

tochou4848
質問者

お礼

ありがとうございます!非常に助かりました!

関連するQ&A

  • ActiveDirectoryのリプレース作業

    現在 ActiveDirectoryサーバが1台あり、ドメインを構築しております。(test.net とします。) そのActiveDirectoryに、端末が300台つながっており、ユーザ等の一元管理をしています。 今回ADサーバが老朽化したこともあり、リプレースすることになりました。 旧ADサーバから、新ADサーバに、から利用していたユーザーアカウント情報をそのまま使えるように新ADサーバに移行したいと思っています。 どういう手順を踏んで、旧サーバのAD情報(ユーザーID)を新ADサーバに移行すればいいのでしょうか?なるべくユーザーに影響を与える範囲・手間を小さくして移行したいと考えています。 一からユーザーを新ADサーバで作り直して、300台参加しなおす。という方法しか思いつきません。 こんなことすると、色々なアプリで影響が出るとわかっているのですが…。 ご教示お願いします。 旧サーバOSは、2008Enterprise。 新サーバOSは、2008R2です。 端末は、WindowsXP、Windows7が50%ずつです。

  • 共有フォルダにアクセスできない

    以下環境を作成しております。 <環境> [testドメイン] Windows2008Server(AD)←WindowsXP(クライアント、ドメイン参加) [ワークグループ環境] Windows7 Ultimate 64bit 以上3台が同じルーター(NEC)に繋がっております。 今回、「XPをドメインからぬきました。」 その後、XP端末をワークグループでログインし、7の共有フォルダ(=\\192.168.11.200)にアクセスしにいくと 「\\192.168.11.200にアクセスできません。このネットワークリソースを使用するアクセス強化がない可能性があります。アクセス許可があるかどうかこのサーバーの管理者に問い合わせてください。指定されたサーバーは、要求された操作を実行できません。」 とエラーが出るのです。 [わかっていること] 1.XPを再びドメインに参加させて、\\192.168.11.200 を実行するとなぜか、ユーザー/パスワード入力ダイアログが出てきて、正しい情報を入れると共有フォルダが見える。 2.Windows7(=192.168.11.200)に、別のVista端末(ドメイン未参加)から、\\192.168.11.200 を実行すると、これも7の共有フォルダが表示される。 3.別のXP端末を用意(ドメイン未参加)し、7端末(\\192.168.11.200)にアクセスしに行こうとすると、これも同じエラーが表示される。 4.XP端末は、ドメイン参加前は、普通に\\192.168.11.200 と実行すれば、7の共有フォルダを見ることが出来た。 ドメインに加入した端末から、ワークグループの7端末にアクセスすることで、 ワークグループの7の設定が変わったりするのでしょうか? 上のわかった点から考えるとそれしか思いつかないのですが・・・。 どなたか、 「XPをワークグループに降格させた状態で、7の共有フォルダを見る方法」 または、「なぜこうなっているのかの原因を知っている方」がおられましたら ご教授のほうよろしくお願いします。

  • ActiveDirectoryのグループでのアクセス権

    ActiveDirectoryのグループについて教えてください。 ActiveDirectoryでユーザーアカウントを作成しました。(彼にA) これをBグループのメンバーに登録しました。 ドメイン参加しているファイルサーバの共有フォルダのアクセス権を Bグループにフルコントロールで付与しました。 ところが、ユーザーAは、そのフォルダにアクセスしようとすると 「アクセスが拒否されました」となります。 ちなみに、フォルダのアクセス権にBではなく、ユーザーA自身を フルコントロールできるようにすると、きちんとアクセスできます。 共有フォルダを複数の人でアクセスできるにするには、 グループではなく、ユーザーひとりひとりを登録しないと いけないのでしょうか。

  • 共有フォルダの設定(ActiveDirectory)

    ActiveDirectoryでネットワークを構築しています。 user1さんは、domain\user1、もしくは domain\share という共有アカウントで ログインして作業を行っています。 (domain\shareのアカウントは他の人も利用しています。) サーバ上に、user1さんのみアクセスできる共有フォルダを作成したいため、 domain\user1 のみが接続できる共有フォルダを作成しました。 domain\user1というアカウントでログインしていれば接続できますが、 domain\shareでログインしていると当然、エラーが発生します。 (domain\shareのアカウントは他の人も利用しているため、共有フォルダの権限には追加できません) user1さんが、domain\user1にログインし直すことなく、共有フォルダに接続できる 方法は何かないでしょうか? イメージとしては、ID・パスワードの認証画面が出て、domain\user1のID・パスワードを 入力すれば、接続できるような方法がないかなと思っています。 よろしくお願いいたします。

  • Access2000のVBAでエクセルマクロ実行

    お世話になります。 Access2000のVBAでエクセルのマクロとアクセルのマクロを 交互に実行したいと思っております。 (1)エクセルのマクロ1を実行 (2)アクセスのマクロAを実行 (3)エクセルのマクロ2を実行 と交互に実行したいのです。 下記のサイトなどを参考に試みたのですが、 http://www.nurs.or.jp/~ppoy/access/access/acX005.html (1)を実行している途中に (2)が進んでしまいます。 どのようにすれば、(1)が終わってから(2)と、前の処理が 終わってから次の処理に進むことが出来るのでしょうか? Access2000のVBAから指示をかけたいので、 Access2000のVBAのコードで教えて頂ければと 思います。

  • 共有フォルダをアクセスできません

    通常は一般ユーザ権限でドメインに参加している2台のPC-AとPC-Bがあります。 どちらのOSもWindows XP Pro SP2です。 一般ユーザ権限でドメインに参加しているPC-B上の共有フォルダを、ローカルコンピュータの管理者権限でログインしたPC-AからPC-Bをアクセスしようとすると(ネットワーク全体からたどってPC-Bをクリック)、ユーザIDとパスワードを聞いてきます。 PC-Aのコマンドプロンプトでnet view \\PC-Bを実行すると「システムエラー5が発生しました。アクセスが拒否されました。」になります。 このユーザIDとパスワードを聞いてこないようにさせるためには、どうすればよいか、 教えていただけませんか? PC-Bに共有フォルダを作成するために、一般ユーザ権限でフォルダを作成して、共有させるためにショートカット「共有とセキュリティ」で、フォルダのプロパティを呼び出して、「このフォルダを共有する」をオンにして、アクセス許可ボタンを押して共有アクセス許可をEveryoneにフルコントロールを与えました。また、セキュリティタブを押して、Everyoneにフルコントロールを与えました。 また、フォルダ・オプションの「簡易ファイルの共有を使用する(推奨)」をオンにしています。

  • WinXP 共有フォルダ/プリンタのアクセス制限について

    WinXP Pro SP2を共有ファイル/共有プリタンサーバとして使用しております。現在、共有フォルダにはアクセス制限を設けており、他のPCからはID/パスワード入力するよう設定しております。その際、他のPCから共有プリンタを使用する時、先に共有フォルダにアクセスしてID/パスワードを設定し、共有フォルダにアクセス出来る状態でないと印刷出来ません。共有プリンタに関してはアクセス制限を設けたくないのですが、そのような設定は可能でしょうか?まとめますと、 共有フォルダ -> アクセス制限を設けたい(ID/パスワード要求) 共有プリンタ -> アクセス制限を設けたくない(誰でも印刷出来る) の設定をしたいと考えております。

  • ActiveDirectoryでシステム毎の管理

    ActiveDirectoryでシステムごとの利用可否の管理は可能でしょうか? うちの会社ではPCのログインにはActiveDirectoryのドメインによる認証を行っていますが、 業務システムのID/パスワードはシステム毎に異なり、それぞれユーザが覚える必要があります。 ActiveDirecoryで、PCのログインIDだけでシステム毎の利用可否を判定する認証機能を提供することは可能でしょうか? あるいは、それを実現するにはID管理用の認証基盤システムを別途構築する必要がありますか? 基本的な質問で恐縮ですが、よろしくお願いします。

  • Windows2000におけるサーバに対するアクセス制限に関して。

    お世話になっております。下記の環境において、サーバ のアクセス制御が出来るか質問です。 ■サーバ環境:Windows2000Server □クライアント:Windows2000 の環境でDomain参加、ユーザーは、ActiveDirectoryで ユーザーIDは管理されています。 また、サーバは、 -1. プロキシィーサーバ -2. 共有フォルダが存在するサーバが数台 -3. ADサーバ などがあります。今、ActiveDirectoryにあるGroupを 作成しその下にユーザーを作成します。 そのGroupは、上記2/3のサーバにはアクセスできず、 IEでプロキシィーサーバのみ使用できるように、設定 をすることが出来るのでしょうか?Groupポリシィー などを作成することによって制御できるでしょうか? 共有フォルダが存在するサーバが、幾つもあり、サーバ 側のフォルダのセキュリティーの設定では、大変なので、 ActiveDirectoryの方で出来るか知りたく書き込みしました。 以上、宜しくお願い致します。

  • ACCESSからSQLServerのデータを取得したい

    SQLServerが利用できない環境にデータを持っていくため、以下のようなシステムを考えております。(テーブルのリンクは不可・手動でのデータのエクスポートは不可) 1.ACCESSのフォームに「データベース名」「テーブル名」を入力し、実行ボタン押下 2.ADOでSQLServerに接続 3.指定のテーブルと同じ構造のテーブルをACCESSに作成 4.SQLServerのデータをACCESSにINSERT ここで質問なのですが、ACCESSは自分のデータベースとSQLServerのデータベースに同時に接続できますか? 同時接続した場合のACCESS/SQLServerの書き分けはどのようになるのでしょうか。