トップ回答者
Windows2008R2でExcelVBAからrsh起動時に「内部コマンドまたは外部コマンド・・として認識されていません」でエラーになる

質問
-
Windows2008R2にSUAをインストールしてrshコマンドが使用できる環境を作成しました。コマンドプロンプト(管理者)にてrshを実行した場合は正常に動作しますが、Excel VBAからrshを含んだバッチファイルを起動すると「'rsh'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」とメッセージが出力されrshが実行されません。
・バッチファイルの記載は以下です。
rsh IPアドレス -l ログイン名 "ls”
・上記rshをコマンドプロンプトで実行すると問題なく実行されます。
・バッチファイルの記載をrshからecho %path%等のコマンドに変更した場合は、問題なくechoが実行されます。
・Excel VBA,バッチファイルは管理者権限のついたユーザで作成しています。
本問題に対して対処方法がご存知の方はアドバイスをお願いします。
2012年11月9日 2:43
回答
-
自分も気になって、Windows Server 2008 R2にSUAをインストールして調べてみました。
(普段はCygwin使っていますけど)Excelのマクロから動かして動くには動いたのですが、ちょっと気になる事がありました。
ls コマンドについですが、実際にはSUA\binのlsではなく、SUA\commandのls.exe が動いているようです。
SUA\binにもSUA\commandにもPATHは通っているため、実行は可能でした。対してrshコマンドですが、こちらはSUA\binのrshが動いていて、こちらはPATHが通っていてもフルPATHを
指定するか、カレントディレクトリをSUA\binにしないとエラーになりました。以上の事から、Excelから動かすバッチファイルですが、CDコマンドでカレントディレクトリを
SUA\binフォルダに移動してからrshコマンドを実行してみてはどうでしょうか?
なお、SUA\binとSUA\commonに対するアクセス権も考えたのですが、コマンドプロンプトでは
動いているようなので、問題はないと思います。
2012年11月12日 6:44
すべての返信
-
CatTail 様
返信ありがとうございます。
Windows\SUA\binをパスに追加していますが、内部コマンドまたは外部コマンド~認識されていませんが出力されます。バッチファイルでの指定をrshからls,pwd(共にWindows\SUA\bin下のコマンド)に変更したところ、lsは正常に動作しましたが、pwdはrshの時と同じ結果でした。
また、rshをフルパス(Windows\SUA\bin\rsh)で指定しても、外部コマンド~認識されていませんでrshが起動できませんでした。
startコマンドでも試してみました。DOSプロンプトからだとバッチファイル(rsh)を実行できましたが、ExceVBAからだとrshが起動できません。
難解です。
2012年11月9日 13:47 -
ITAYA様
返信ありがとうございます。
以前お知らせしたフルパスの記述が間違っていました。実際は以下です。
C:\Windows\SUA\bin\rsh IPアドレス -l ログイン名 コマンド
環境変数のpathにC:\Windows\SUA\bin\は追加しています。
rshと同じフォルダにあるlsコマンドの場合は、フルパスを指定しなくても正常に動作します。
DOSプロンプトでは正常に動作するrshコマンドがExcelVBAから起動した場合に、エラー
(内部コマンドまたは外部コマンド~認識されていません)になるのかが不思議です。
セキュリティなど何か関係あるのでしょうか?(ExcelVBA等のプログラムからrshは実行できないようになっているとか・・・)
2012年11月10日 13:39 -
自分も気になって、Windows Server 2008 R2にSUAをインストールして調べてみました。
(普段はCygwin使っていますけど)Excelのマクロから動かして動くには動いたのですが、ちょっと気になる事がありました。
ls コマンドについですが、実際にはSUA\binのlsではなく、SUA\commandのls.exe が動いているようです。
SUA\binにもSUA\commandにもPATHは通っているため、実行は可能でした。対してrshコマンドですが、こちらはSUA\binのrshが動いていて、こちらはPATHが通っていてもフルPATHを
指定するか、カレントディレクトリをSUA\binにしないとエラーになりました。以上の事から、Excelから動かすバッチファイルですが、CDコマンドでカレントディレクトリを
SUA\binフォルダに移動してからrshコマンドを実行してみてはどうでしょうか?
なお、SUA\binとSUA\commonに対するアクセス権も考えたのですが、コマンドプロンプトでは
動いているようなので、問題はないと思います。
2012年11月12日 6:44