Тема: CMD/BAT: Не отрабатывает удаленно .BAT скрипт
Ситуация такая, есть батник:
@ECHO OFF
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
takeown /F %WINDIR%\Web\Screen\ /R /A /D Y
ICACLS %WINDIR%\Web\Screen\ /grant %USERDOMAIN%\%USERNAME%:F
copy /B \\10.40.0.4\Software\logonui.jpg %WINDIR%\Web\Screen\img100.jpg
copy /B \\10.40.0.4\Software\logonui.jpg %WINDIR%\Web\Screen\img105.jpg
takeown /F %PROGRAMDATA%\Microsoft\Windows\SystemData
icacls %PROGRAMDATA%\Microsoft\Windows\SystemData /grant:r %USERDOMAIN%\%USERNAME%:F
icacls %PROGRAMDATA%\Microsoft\Windows\SystemData /grant:r %USERDOMAIN%\%USERNAME%:F
icacls %PROGRAMDATA%\Microsoft\Windows\SystemData /setowner %USERDOMAIN%\%USERNAME%
takeown /F %PROGRAMDATA%\Microsoft\Windows\SystemData\* /R /D Y
icacls %PROGRAMDATA%\Microsoft\Windows\SystemData\* /grant:r %USERDOMAIN%\%USERNAME%:(OI)(CI)F
icacls %PROGRAMDATA%\Microsoft\Windows\SystemData\* /grant:r %USERDOMAIN%\%USERNAME%:(OI)(CI)F
icacls %PROGRAMDATA%\Microsoft\Windows\SystemData\* /grant:r SYSTEM:(OI)(CI)F
icacls %PROGRAMDATA%\Microsoft\Windows\SystemData\* /inheritance:e /T
icacls %PROGRAMDATA%\Microsoft\Windows\SystemData\* /setowner %USERDOMAIN%\%USERNAME% /T
del /Q %PROGRAMDATA%\Microsoft\Windows\SystemData\*
set "RegPath=HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList"
for /f "delims=" %%i in ('reg query "%RegPath%"^|findstr /ibc:"%RegPath%\S-"') do (
reg query "%%i" /v "ProfileImagePath"|findstr /iec:"%UserProfile%" >nul &&set "SID=%%~nxi"
)
cd %PROGRAMDATA%\Microsoft\Windows\SystemData\%SID%\ReadOnly\LockScreen_*
for %%i in (LockScreen___*.jpg) do (
set FILENAME=%%i
echo !FILENAME!
copy /y C:\Windows\logonui.jpg
del /Q /F !FILENAME!
ren "logonui.jpg" !FILENAME!
)
Если его запускать локально от имени Администратора - все прекрасно отрабатывает. Если запуская удаленно через psexec - не отрабатывается цикл, я так понимаю, переменные, заключенные в !var!. Пишет не найден путь...Не пойму куда копать...psexec запускается так (с ключами cmd уже по разному игрался, бестолку):
C:\>psexec64 \\IT -u Администратор -p password cmd.exe /V:ON /E:ON /C "c:\windows\logon_old.bat"