リモートデスクトップ先batの環境変数のアクセス権限について


りっぴー  2024-02-26 15:11:42  No: 151382

端末Aから端末Bにリモートデスクトップで接続、端末BでDelphiアプリ(自作)起動して、その中でbat(他社)を起動するのですが

bat起動(他社)で環境変数を利用しているみたいで、リモートデスクトップだと端末Bの環境変数にアクセス権限がないのか
エラーになってしまいます。
Delphiアプリからbatを呼び出す際に、接続先の環境変数にアクセス権限をあたえて起動させる方法はありますでしょうか?

環境 windows10,Delphi 11 CE


igy  2024-02-27 00:27:34  No: 151383

> リモートデスクトップだと端末Bの環境変数にアクセス権限がないのかエラーになってしまいます。 

リモートデスクトップ接続じゃなくて、直接端末Bを操作したときは、
Delphiアプリ(自作)からbat(他社)を起動時でエラーは出ないのですか?


りっぴー  2024-02-27 16:51:53  No: 151384

igy さん
返信ありがとうございます。

直接端末Bを操作したときはエラーは発生しません。
実行した後にリモート接続を行うと問題なく操作できます、現在はスタートアップにDelphiアプリ(自作)を入れて
だましだまし使用しているのですが、スマートな方法があれば…と思い質問させていただきました。


igy  2024-02-27 19:00:14  No: 151385

> 環境変数にアクセス権限がないのかエラーになってしまいます。 

実際のエラーメッセージにも、“アクセス権限がありません。”みたいなエラーが表示していますか?

“bat(他社)”とのことですが、実際に、環境変数にアクセスしている箇所でエラーを出しているのか、
確認は可能ですか?


mam  URL  2024-02-28 11:38:18  No: 151386

外しているかもしれませんが、
リモートデスクトップ接続の接続設定をファイルに保存しているのであればですが、
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の内容ではない、かつ、レアな可能性なので、外していると思いますが・・・すいません。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加