Windows 2008 Server の 16 ビット アプリケーションからの印刷エラー

Windows 2008 Server の 16 ビット アプリケーションからの印刷エラー

Windows 2008 Server で古い 16 ビット アプリケーションを実行しようとすると問題が発生します。アプリケーションは Windows 2003 Server までは問題なく実行されていましたが、いずれかから印刷しようとすると、すべて印刷エラーが表示されます (プリンタ ドライバを作成できません / TERM エラー / など)

  • LPT1 ポートは NET USE LPT1 \ServerName\SharedPrinter 経由で共有プリンタにリダイレクトされます。
  • DIR > LPT1 (またはプリンタへの任意のシェル リダイレクト) は正常に動作しています。
  • 管理者アカウントを使用しているので、権限の問題ではないはずですよね?

この動作を再現するために、C (DOS 用 TCC 1.01) で小さなテスト プログラムを作成しました。XP / 2003 Server では問題なく動作しますが、2008 Server ではハンドルが開いている (5) と表示されますが、そのハンドルに書き込もうとするとエラーが発生します (書き込みエラー、デバイス LPT1 の書き込みエラー、中止、再試行、無視、失敗)

#include <io.h>
#include <fcntl.h>
#include <sys\stat.h>

int main(void)
{
 int handle, status;
 char* sbuff;

 handle = open("LPT1", O_WRONLY, S_IFBLK);
 printf("%d\n", handle);

 if (!handle)
 {
    printf("open failed\n");
    exit(1);
 }

 sbuff = "[print test]\n";
 write(handle, sbuff, strlen(sbuff));

 close(handle);
 getch();

 return 0;
}

何か手がかりは?

TIA、パブロ

答え1

私は思うこのスレッド問題を解決します。重要なステップは、ネット使用の代わりにプリンター プーリングを使用することです。

2) プリンタのプロパティを開く (Vista では管理者として開く)

3) 「プリンタ プーリング」をオンにします ([ポート] タブの下)

4) すでに選択されているもの(USBなど)に加えて、「LPT1:」も選択します。

5) 「適用」をクリック

関連情報