Работая с WorkerRole, у меня есть две определенные задачи запуска. В первом правила брандмауэра, загрузка и установка cygwin и вызов сценариев powershell выполняются из файла .cmd.
Проблема, которую я вижу, заключается в том, что «иногда» она не выполняется. Я могу запустить развертывание, и оно будет работать, а другое — нет. Журналы ничем не помогают.
Я попытался убедиться, что кодировка файла правильная, но, похоже, проблема не согласуется.
Файл .cmd выглядит следующим образом:
netsh advfirewall firewall add rule name="SSH" dir=in action=allow service=any enable=yes profile=any localport=22 protocol=tcp
IF EXIST C:\alreadySetup\NUL GOTO ALREADYSETUP
mkdir c:\alreadySetup
mkdir e:\approot\uploads
set remoteuser=user
set remotepassword=password
net user %remoteuser% %remotepassword% /add
net localgroup Administrators %remoteuser% /add
.\Startup\ntrights.exe +r SeServiceLogonRight -u "%remoteuser%"
.\Startup\ntrights.exe +r SeServiceLogonRight -u "Administrators"
netsh advfirewall firewall add rule name="SSH" dir=in action=allow service=any enable=yes profile=any localport=22 protocol=tcp
powershell -executionpolicy unrestricted -file .\Startup\DownloadBlob.ps1
c:\cygwin\bin\dos2unix.exe e:\approot\Startup\startSSHd.sh
schtasks /CREATE /TN "StartSSHd" /SC ONCE /SD 01/01/2020 /ST 00:00:00 /RL HIGHEST /RU %remoteuser% /RP %remotepassword% /TR "c:\cygwin\bin\bash --login /cygdrive/e/approot/startup/startSSHd.sh" /F
icacls d:\windows\system32\tasks\StartSSHd /grant:r Administrators:(RX)
schtasks /RUN /TN "StartSSHd"
schtasks /CREATE /TN "CopyAndCleanupSFTPFiles" /SC MINUTE /SD 01/01/2000 /ST 00:00:00 /RL HIGHEST /RU %remoteuser% /RP %remotepassword% /TR "e:\approot\Startup\CopyAndCleanupSFTPFiles.cmd" /F
schtasks /RUN /TN "CopyAndCleanupSFTPFiles"
:ALREADYSETUP
Следует отметить, что когда он не запускается, папка ужеSetup даже не создается, что является первой частью скрипта.