Win32 SSH で ForceCommand を介してカスタム スクリプトを使用すると、SFTP が起動しません。

Win32 SSH で ForceCommand を介してカスタム スクリプトを使用すると、SFTP が起動しません。

ユーザーが SSH 経由でログインしたときに電子メール アラートを送信するスクリプトを作成しました。これは ForceCommand によってトリガーされます。ターミナル ウィンドウを開くと正常に動作しますが、SFTP は動作しません (Bitvise ログには「SFTP チャネルが開かれました」と表示されますが、SFTP ウィンドウは表示されません)。スクリプト ファイルに何か不足しているのでしょうか。

sshd_config から:

#Run command at login
ForceCommand c:\ProgramData\ssh\login.bat

スクリプトはこちら(login.bat)

@echo off

REM For colored text; see :colorEcho below
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do     rem"') do (
  set "DEL=%%a"
)

ipconfig /all
echo:
REM Get current date and time
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a%%b)
call :colorEcho a0 "User %LOGNAME% connected to %COMPUTERNAME% from %SSH_CONNECTION% at %mydate%_%mytime%"
REM Send alert that user has connected.
c:\BatchFiles\EmailMessage\EmailMessage.exe -s "New Connection to %COMPUTERNAME%" -b "User %LOGNAME% connected to %COMPUTERNAME% from %SSH_CONNECTION% at %mydate%_%mytime%"
echo:
echo:

REM Send original command from SSH so shell will start
cmd %SSH_ORIGINAL_COMMAND%

REM This provides for colored text
:colorEcho
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1i

ありがとう!

関連情報