ネットワークドライブをログイン中以外のアカウントに登録するには?

解決


TR_140  2009-12-28 11:45:24  No: 143041  IP: 192.*.*.*

自分なりに調べてみたものの方法がみつからなかったので力を貸してください。

環境:
WindowsXP Pro VB6

やりたいこと:
ネットワークドライブの割り当てを現在ログイン中以外のアカウントのネットワークドライブに登録したい。
ログイン中のアカウントに追加する方法しか見つかりませんでした。

よろしくお願いします。

編集 削除
オショウ  2009-12-29 06:22:27  No: 143042  IP: 192.*.*.*

意味が解らん・・・

WindowsOSは、シングルユーザーログオンが基本
ログオンしている自身以外のアカウントで接続
したいとは?

ネットワーク的に言えば、相手の共有リソース
へのアクセスで、認証する際のID・PWDを自アカ
ウント以外で認証して接続なら可能だと思いま
すが、そういう意味じゃ〜ない?

> ログイン中のアカウントに追加する方法しか見つかりませんでした。

    って、どういうAPI使ったの?
    WNetAddConnection2 とか使ったんでしょか?

以上。

編集 削除
はな  2009-12-29 23:49:00  No: 143043  IP: 192.*.*.*

現在はVB6のプログラムでインターネットには接続できません。
解決ですね。

編集 削除
将星  2010-01-03 06:47:35  No: 143044  IP: 192.*.*.*

>現在はVB6のプログラムでインターネットには接続できません。
>
それはお前のスキルが低いからだろ。www
インターネット関係ないしな。

>ネットワークドライブの割り当てを現在ログイン中以外のアカウントのネ
>ットワークドライブに登録したい。
>
質問は意味の通じるように書け。
ユーザー切り替えで別ログオンしているユーザーにネットワークドライブを
割り当てたいのか?認証する際のID・PWDを自アカウント以外で認証なのか?

編集 削除
TR_140  2010-01-04 11:43:50  No: 143045  IP: 192.*.*.*

ご回答をいただいたみなさんありがとうございます。

どうも質問の仕方が悪いようで申し訳ありません。

>ユーザー切り替えで別ログオンしているユーザーにネットワークドライブ
>を割り当てたいのか?

そのとおりです。

MapNetworkDriveを使用すると自アカウントのネットワークドライブを割り
当てすることはできると思うのですが、ログイン中以外のアカウントに
ネットワークドライブを割り当てたいという意味です。

他アカウントから接続したいのではなく他人のアカウントにネットワーク
ドライブを他人のアカウント認証で割り当てしておきたいということです。

例)ユーザーA(自分のアカウント)よりプログラムを実行
    ↓
    ユーザーB(他人のアカウント)のネットワークドライブへ割り当て(ユーザーBで認証)

説明が下手で申し訳ありませんがお願いします。

編集 削除
オショウ  2010-01-04 12:40:45  No: 143046  IP: 192.*.*.*

> MapNetworkDriveを使用すると自アカウントのネットワークドライブを割り
> 当てすることはできると思うのですが、ログイン中以外のアカウントに
> ネットワークドライブを割り当てたいという意味です。

    まだ、解らん・・・
    割り当てたいと言うことはよく解り解りましたが、自PC側
    の状態としては、どういう意味ですか?

    認証自体は、WNetAddConnection2やMapNetworkDriveでも、
    自分と違うユーザー・パスワードを渡せますが・・・
    ネットワークドライブを自PC側のログオンしていない
    他ユーザーに割り付けたいと言うことですか?

    ログオンしていないユーザー情報は、基本的にユーザー
    プロファイルが読み込まれていない、レジストリ情報も!
    なので、『できない』と言うのが一般的です。

    が、ユーザーの偽装ロジックとしては、技術的に可能で
    す。

    大雑把に書きます。(大雑把すぎて解らないと思いますが)

    ログオンしていないユーザーのプロファイルを自プロフ
    ァイルに連結します。
    プロファイルではなく・・・レジストリ情報になります!

    で、それ自体を行うプログラム(インスタンス)別のEXE
    を、CreateProcessAsUserで、認証情報はログオンしてい
    ないユーザー情報で行います。

    ただ、連結しておきたい期間、そのCreateProcessAsUser
    したプロセス(スレッド)は、生きていないといけない
    のが、ミソです。終了するとレジストリの連結情報が破棄
    されてしまうからです。

    基本的には、C++でバリバリ書くレベルの機能なんですが
    OS側のユーザーの管理方法と動作原理、権限の偽装等、
    高レベルな知識が無いと、多分、できないと思います。

    それらを調べるだけで、結構な時間を要すると思いますが
    全くできないことではないように思います。

※  そのものズバリを私もやったこと無いですが、他ユーザー
    権限で動作させるプログラムはいろいろやったことあるの
    で、可能ではないかと思います。

    ただ権限偽装があるので、Windowsサービスで作るのが遠回り
    ですが、技術的近道でもあります。

    理由は、できるレベルに近づけば自ずと解ってくると思いま
    す。

※  悪意のある方が悪用すれば・・・
    と言うことを考慮しています。
    頑張って下さい!

以上。

編集 削除
TR_140  2010-01-04 17:23:09  No: 143047  IP: 192.*.*.*

何度も申し訳ないです。

>ネットワークドライブを自PC側のログオンしていない
>他ユーザーに割り付けたいと言うことですか?
>
そのとおりです。

VBでは難しそうですね。
もう少し調べてみてみますがあきらめてスタートアップに
ネットワークドライブを割り当てるVBSに変更できるか検討
してみます。

編集 削除
TR_140  2010-01-04 17:24:28  No: 143048  IP: 192.*.*.*

ご回答いただいたみなさまありがとうございました。

編集 削除