前提・実現したいこと
Windowsサービスにプログラム(ruby)を登録しました(sc create)。
プログラムの中身は共有フォルダにアクセスする処理を含んでいます。
共有フォルダのipアドレス、ユーザー名、パスワードは資格情報マネージャーに登録してあります。
発生している問題・エラーメッセージ
Windowsサービス経由でプログラムを起動した場合共有フォルダのファイルにアクセスできません。以下エラーが発生します。
Invalid argument @ rb_sysopen - //192.168.XXX.XXX/test/test.txt (Errno::EINVAL)
該当のソースコード
ruby
1test_log = open("//192.168.XXX.XXX/test/test.txt").read
試したこと
・直接プログラムを起動した場合は共有フォルダにアクセスできます。エラーは発生しません。
・ネットワーク上に存在しないipにアクセスしようとすると、別の以下エラーが発生します。
No such file or directory @ rb_sysopen - //192.168.XXX.YYY/test/test.txt (Errno::ENOENT)
・共有フォルダのファイルにアクセスする処理(File.open("//192..."))の前に
system("net use //192.168.XXX.XXX/test PASSWORD /user USERNAME")
の処理を加えるとWindowsサービス経由でもアクセス可能になります。
補足情報(FW/ツールのバージョンなど)
ruby 2.5.1
Windows 10
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/02 01:14
2021/08/02 09:09
2021/08/04 11:19