- PR -

aspからネットワークプリンタへの印刷

1
投稿者投稿内容
セルカー
ベテラン
会議室デビュー日: 2004/04/08
投稿数: 70
投稿日時: 2009-03-27 00:25
Win2003R2、IIS6.0の環境です。

WORKGROUPのサーバから、ドメイン環境のサーバのネットワークプリンタ(仮想プリンタ)に出力して、ネットワークプリンタのサーバに電子帳票を出力するという処理を行いたいのですが、うまくできません。

プログラムの起動はaspからexeをキックして、直接ネットワークプリンタに出力する動きなのですが、印刷のできない旨がexeからのログファイルに残っていて、結果として印刷できていません。

aspからの起動と同じコマンドを、サーバーからAdministratorsグループのユーザでログインして直接実行すると、うまく出力されます。ところがIISの匿名アクセス時のユーザも同じユーザにしても、うまく出力されません。

ネットワークプリンタ側のログには、exeを直接実行した場合はドメインユーザ、aspからの起動の場合はIISの匿名アクセス時の指定ユーザで動かしていることになっている、ということなので、asp経由で起動したときも、プリンタをドメインユーザで動かしている、ということにできれば解決すると思うのですが、プリンタの起動ユーザを変更するということはできるものなのでしょうか?そもそも、なぜ、直接プログラムを起動した場合に、そのユーザではなく、ドメインユーザでアクセスしていることになってしまうのでしょうか?
デューン
大ベテラン
会議室デビュー日: 2004/04/21
投稿数: 174
お住まい・勤務地: Tokyo
投稿日時: 2009-03-27 10:36
正確な話は実際にみてみないとなんともですが、

・プリンタの起動ユーザを変更するということはできるものなのでしょうか?
exeをどう起動しているかにもよりますが、
コマンドならrunas
ProcessクラスならProcessStartInfo.password
を使用すればいけると思います。


・なぜ、直接プログラムを起動した場合に、そのユーザではなく、ドメインユーザでアクセスしていることになってしまうのでしょうか?
コンピュータがそのドメインユーザのIDとパスワードを覚えてるだけじゃないかと思います。

引用:

ところがIISの匿名アクセス時のユーザも同じユーザにしても、うまく出力されません。


ここの意味合いを私が勘違いしてるかもしれませんが、
IISの匿名アクセスを認証ユーザとしてアクセスするように変更したということでしょうか?
その場合はプロファイルが読み込まれてないからなのかもしれません。


(ただその前にユーザに権限を与えるのは極力避けたほうが良いでしょう)

# 2003とのことなので大丈夫だと思いますが、UACがあった場合どうなるのかはわかりません。


#追記

[ メッセージ編集済み 編集者: デューン 編集日時 2009-03-27 10:39 ]
セルカー
ベテラン
会議室デビュー日: 2004/04/08
投稿数: 70
投稿日時: 2009-03-27 10:49
ありがとうございます。

>ところがIISの匿名アクセス時のユーザも同じユーザにしても、うまく出力されません。

すみません、言葉足らずでした。
ここの意味合いとしては、IISのWebサイトのプロパティの中の[ディレクトリセキュリティ]タブから[編集]を開いて、匿名アクセスユーザー名をAdministratorsグループのユーザーにしたということです。
デューン
大ベテラン
会議室デビュー日: 2004/04/21
投稿数: 174
お住まい・勤務地: Tokyo
投稿日時: 2009-03-27 10:57
引用:

セルカーさんの書き込み (2009-03-27 10:49) より:

ここの意味合いとしては、IISのWebサイトのプロパティの中の[ディレクトリセキュリティ]タブから[編集]を開いて、匿名アクセスユーザー名をAdministratorsグループのユーザーにしたということです。



なるほど。了解です。


その場合でもやはりプロファイルを読み込んでないからだと思います。
(予想の範疇で申し訳ありませんが) 具体的には

・AdministratorsのユーザAで、人がログインした場合
ユーザAでプリンタにアクセスする際に、過去にWindowsに覚えさせたユーザー名、パスワード(ユーザAのユーザ名、パスワードではなく、認証要求のダイアログがでて入力したユーザ名とパスワード)が自動で使用され印刷できた。

・AdministratorsのユーザAを匿名アクセス時のユーザに設定してブラウザからアクセスした場合
プリンタにアクセスしようとしたタイミングで認証を要求され、IISがユーザAのユーザ名、パスワードを差し出すが拒否された。

ということではないかと。

まよんが
常連さん
会議室デビュー日: 2007/05/20
投稿数: 22
投稿日時: 2009-03-27 14:02
ASPとありますがASP.NETの事でしょうか?
でしたら実行ユーザーはASPNETと言うユーザーで動いています。
匿名アクセスユーザーとは別です。

ASP.NETユーザーの変更はweb.configで行えます。
セルカー
ベテラン
会議室デビュー日: 2004/04/08
投稿数: 70
投稿日時: 2009-03-27 17:55
返信ありがとうございます。

>・AdministratorsのユーザAで、人がログインした場合
>ユーザAでプリンタにアクセスする際に、過去にWindowsに覚えさせたユーザー名、パ>スワード(ユーザAのユーザ名、パスワードではなく、認証要求のダイアログがでて入>力したユーザ名とパスワード)が自動で使用され印刷できた。

>・AdministratorsのユーザAを匿名アクセス時のユーザに設定してブラウザからアクセ>スした場合
>プリンタにアクセスしようとしたタイミングで認証を要求され、IISがユーザAのユー>ザ名、パスワードを差し出すが拒否された。

たしかに、ユーザAでネットワークプリンタを追加したのですが、その際にドメインユーザ、パスワードが要求されました。再起動したら、消えるものかと思っていたのですが、やはり前回入力時の情報を覚えている、と考えるのが自然ですよね・・・
IISからでも覚えている情報を自動的につかってくれればよいのに・・・(´・ω・`)

ちなみにASPは、VBの文法で書かれたaspです。ASP.NETではありません。
念のためにASPNETユーザもAdministratorグループに加えています。


ドメイン側にasp経由時のユーザと同じ名前のユーザを加えてもらうことで、印刷することが可能となり、とりあえずひと段落付くことはできましたが、根本的な解決ではない気がします・・・
1

スキルアップ/キャリアアップ(JOB@IT)