API単位でのアカウント実行 – プログラミング – Home

API単位でのアカウント実行
 
通知
すべてクリア

[解決済] API単位でのアカウント実行


GON
 GON
(@GON)
ゲスト
結合: 21年前
投稿: 17
Topic starter  

::CopyFileで、別マシン(WindowsXP)の共有フォルダに¥¥でファイルをコピーしたいで
す。
しかし、アカウントの認証に失敗して、ファイルコピーできませんでした。
コピー元マシンとコピー先マシンにはadministrator/adminとユーザがいます。
そこで、このPG(A)を起動する別のPG(B)をかまして、
Bでadministrator/adminのアカウントを取得して、administratorでAを実行することで
、別マシンへのファイルコピーに成功しました。

しかし、以下のようにしたいです。
・Aはシステムアカウントで直接サービス起動する。
・Aの中でadministrator/adminアカウントを取得して、administratorとしてCopyFileAPI
を実行する。

この用にAPI単位で、アカウント実行する方法があるようでしたらご教授ください。

環境:WINXP
   VC6.0


引用未解決
トピックタグ
kure
 kure
(@kure)
ゲスト
結合: 19年前
投稿: 48
 

API単位ではありませんが、
スレッド単位でユーザーを偽装することが可能です。

手順は以下のとおり。

1. LogonUserでユーザートークンを取得
2. ImpersonateLoggedOnUserでユーザーを偽装
3. なんらかの処理を実行
4. RevertToSelfで偽装を解除

ドメインを組んでいる場合はドメインユーザーアカウントを
ImpersonateLoggedOnUserにその情報を指定できますし、
そうでない場合でもローカルとリモートに同名・同パスワードの
ユーザーを作成して、その情報でアクセスすることが可能です。


返信引用
GON
 GON
(@GON)
ゲスト
結合: 21年前
投稿: 17
Topic starter  

スレッド単位で偽装できればOKです。
ありがとうございました。
ちなみに、サービス起動したプログラムで¥¥コピーする方法は他にありますか?


返信引用
kure
 kure
(@kure)
ゲスト
結合: 19年前
投稿: 48
 

SHFileOperationを使うとか、
CreateFileして自前でReadFile,WriteFileするくらいでしょうか。


返信引用
GON
 GON
(@GON)
ゲスト
結合: 21年前
投稿: 17
Topic starter  

理解しました。
ありがとうございます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました