端末Aから端末Bにリモートデスクトップで接続、端末BでDelphiアプリ(自作)起動して、その中でbat(他社)を起動するのですが
bat起動(他社)で環境変数を利用しているみたいで、リモートデスクトップだと端末Bの環境変数にアクセス権限がないのか
エラーになってしまいます。
Delphiアプリからbatを呼び出す際に、接続先の環境変数にアクセス権限をあたえて起動させる方法はありますでしょうか?
環境 windows10,Delphi 11 CE
> リモートデスクトップだと端末Bの環境変数にアクセス権限がないのかエラーになってしまいます。
リモートデスクトップ接続じゃなくて、直接端末Bを操作したときは、
Delphiアプリ(自作)からbat(他社)を起動時でエラーは出ないのですか?
igy さん
返信ありがとうございます。
直接端末Bを操作したときはエラーは発生しません。
実行した後にリモート接続を行うと問題なく操作できます、現在はスタートアップにDelphiアプリ(自作)を入れて
だましだまし使用しているのですが、スマートな方法があれば…と思い質問させていただきました。
> 環境変数にアクセス権限がないのかエラーになってしまいます。
実際のエラーメッセージにも、“アクセス権限がありません。”みたいなエラーが表示していますか?
“bat(他社)”とのことですが、実際に、環境変数にアクセスしている箇所でエラーを出しているのか、
確認は可能ですか?
外しているかもしれませんが、
リモートデスクトップ接続の接続設定をファイルに保存しているのであればですが、
https://learn.microsoft.com/ja-jp/windows-server/remote/remote-desktop-services/clients/rdp-files
によると
remoteapplicationexpandcmdline:i:value
の規定値は1ですが0に設定されていないでしょうか。
「0: 環境変数は、ローカル コンピューターの値に展開されます。」
「1: 環境変数は、リモート コンピューターの値に展開されます。」
リモートデスクトップ接続の接続設定をファイル(例えばDefault.rdp)に保存して使用している場合は、
テキストエディタで開いて
remoteapplicationexpandcmdline:i:1
に設定してみてはいかがでしょうか。
念のため
remoteapplicationexpandworkingdir:i:1
も確認したほうがいいかもです。
他にも影響するものがるかもしれません。
Delphiの内容ではない、かつ、レアな可能性なので、外していると思いますが・・・すいません。
ツイート | ![]() |