PDA

Показать полную графическую версию : [решено] Не отрабатывает logon скрипт


nokogerra
15-08-2014, 08:13
Доброго времени суток.
Не отрабатывает .bat поставленный на вход в систему (на выход тоже пробовал). Должен выполняться от имени пользователя, административных прав не нужно. Если запустить в ручную от имени рядового пользователя - работает нормально. rsop показывает что политика применилась. Сам скрипт лежит в \\domain.local\SysVol\domain.local\Policies\{SID_объекта_политики}\User\Scripts\Logon. Насколько я знаю ложить в общедоступную шару нет необходимости, когда-то так же расположил .bat для подключения сетевых дисков и работало прекрасно. Содержание самого файла простое:
cmdow @ /HID
cd "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Cache"
del * /F /Q

Спасибо.

update: положил на общую шару, вот результат:
"\\pdc\scripts"
Указанный путь был использован при запуске CMD.EXE в качестве текущей папки.
CMD.EXE не поддерживает пути UNC. По умолчанию выбрана системная папка Windows.

C:\Windows>cmdow @ /HID
"cmdow" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

C:\Windows>cd "D:\Users\ucli-01\AppData\Local\Google\Chrome\User Data\Default\Ca
che"

C:\Windows>del * /F /Q
C:\Windows\bfsvc.exe
Отказано в доступе.
C:\Windows\DtcInstall.log
Отказано в доступе.
C:\Windows\explorer.exe
Отказано в доступе.
C:\Windows\fveupdate.exe
Отказано в доступе.
C:\Windows\HelpPane.exe
Отказано в доступе.
C:\Windows\hh.exe
Отказано в доступе.
C:\Windows\IE11_main.log
Отказано в доступе.
C:\Windows\IE9_main.log
Отказано в доступе.
C:\Windows\INSTALL.LOG
Отказано в доступе.
C:\Windows\mib.bin
Отказано в доступе.
C:\Windows\msdfmap.ini
Отказано в доступе.
C:\Windows\notepad.exe
Отказано в доступе.
C:\Windows\PFRO.log
Отказано в доступе.
C:\Windows\Professional.xml
Отказано в доступе.
C:\Windows\regedit.exe
Отказано в доступе.
C:\Windows\setupact.log
Отказано в доступе.
C:\Windows\setuperr.log
Отказано в доступе.
C:\Windows\Starter.xml
Отказано в доступе.
C:\Windows\system.ini
Отказано в доступе.
C:\Windows\TSSysprep.log
Отказано в доступе.
C:\Windows\twain.dll
Отказано в доступе.
C:\Windows\twain_32.dll
Отказано в доступе.
C:\Windows\twunk_16.exe
Отказано в доступе.
C:\Windows\twunk_32.exe
Отказано в доступе.
C:\Windows\UNWISE.EXE
Отказано в доступе.
C:\Windows\win.ini
Отказано в доступе.
C:\Windows\winhelp.exe
Отказано в доступе.
C:\Windows\winhlp32.exe
Отказано в доступе.
C:\Windows\WMSysPr9.prx
Отказано в доступе.
C:\Windows\write.exe
Отказано в доступе.
C:\Windows\_default.pif
Отказано в доступе.

C:\Windows>pause
Для продолжения нажмите любую клавишу . . .

Если запустить его с рабочего стола все отрабатывает нормально.

Petya V4sechkin
15-08-2014, 09:13
nokogerra, можно одной строкой:
del /F /Q "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Cache\*"

C:\Windows>cd "D:\Users\ucli-01\AppData\Local\Google\Chrome\User Data\Default\Cache"
C:\Windows>del * /F /Q
Это жесть!
Если у пользователя будет достаточно прав, ваш скрипт снесет содержимое папки Windows.

User001
15-08-2014, 09:25
del * /F /Q »Вот такое в скриптах лучше делать проверив, что вы в нужной папке и т.д.
Указанный путь был использован при запуске CMD.EXE в качестве текущей папки.
CMD.EXE не поддерживает пути UNC. По умолчанию выбрана системная папка Windows. »cmd: UNC-путь (http://achurr.blogspot.ru/2010/11/cmd-unc.html)Выполните с клиента \\pdc\scripts\имя_скрипта - посмотрите - выполнится или вернет ошибку.
"cmdow" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. »Она где лежит?

nokogerra
15-08-2014, 09:37
2 Petya V4sechkin
В том и дело, я не понимаю какое отношение bat имеет к каталогу windows, там только %USERPROFILE%

2 User001
Я и запускал руками из шары - выдает ту ошибку что я описал, если запустить этот же скрипт с рабочего стола - кеш Chrome удаляется нормально и никаких попыток обращения к каталогу windows нет, не понимаю какое отношение имеет %USERPROFILE% к этому каталогу. Более того я использую связанные клоны Horizon View, профиль лежит на персистентном диске с буквой D, не на системном.

Petya V4sechkin
15-08-2014, 09:43
nokogerra, сделайте одной строкой:
del /F /Q "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Cache\*"

nokogerra
15-08-2014, 09:57
действительно, помогло, спасибо. такой вывод:
"\\pdc\scripts"
Указанный путь был использован при запуске CMD.EXE в качестве текущей папки.
CMD.EXE не поддерживает пути UNC. По умолчанию выбрана системная папка Windows.

C:\Windows>del /F /Q "D:\Users\ucli-01\AppData\Local\Google\Chrome\User Data\Def
ault\Cache\*"

не понятно только почему cmdow @ /HID не работает из сетевой шары, но работает с рабочего стола.

User001
15-08-2014, 10:28
не понятно только почему cmdow @ /HID не работает из сетевой шары, но работает с рабочего стола. »UNC не устанавливается в качестве текущего каталога.
Указанный путь был использован при запуске CMD.EXE в качестве текущей папки.
CMD.EXE не поддерживает пути UNC. По умолчанию выбрана системная папка Windows. »По ссылке (http://gebaa.blogspot.ru/2009/05/bat.html) сходите.

nokogerra
15-08-2014, 11:18
Имеет ли смысл использовать %~dp0 (к тому же я не совсем понял как это работает), если каталог исполнения все равно меняется на %windir%?

User001
15-08-2014, 13:00
к тому же я не совсем понял как это работает »Там же внизу комментарий.
~dp0 - раскрывается в имя диска и путь для переменной 0 - полного пути к исполняемому файлу.
Попробуйте выполнить из сетевой папки:

@echo off
echo %cd%
echo %~dp0
echo %0
pause

если каталог исполнения все равно меняется на %windir% »Т.к. в нем нет нужных вам команд, то указывайте к ним путь, например, как описано ранее.

nokogerra
15-08-2014, 13:38
Комментарий я видел, но как я сказал не понял его.
Вот вывод теста:
"\\pdc\scripts"
Указанный путь был использован при запуске CMD.EXE в качестве текущей папки.
CMD.EXE не поддерживает пути UNC. По умолчанию выбрана системная папка Windows.
C:\Windows
\\pdc\scripts\
"\\pdc\scripts\test.bat"
Для продолжения нажмите любую клавишу . . .

Я просто не могу понять как будет выглядеть скрипт с использованием ~dp0, переменную же нужно задать. Из этого объяснения:
1. "%" - предваряет номер получаемого аргумента
2. "~d" - директива извлечения буквы диска, откуда запущен батник
3. "~p" - директива извлечения пути без номера диска к батнику
4. "0" - нулевой агумент, полный путь к запуску батника вместе с его именем.
мало что понятно. получили полный путь и букву диска, откуда запущен бат (какую букву если мы пытаемся его запустить с сетевой шары, и нам нужно не получить букву диска, а задать другую - в чем смысл этих действий-то?). лыжи у меня не едут, извините.

User001
15-08-2014, 14:11
мало что понятно. получили полный путь и букву диска, откуда запущен бат (какую букву если мы пытаемся его запустить с сетевой шары, и нам нужно не получить букву диска, а задать другую - в чем смысл этих действий-то?). лыжи у меня не едут, извините. »Суть примера была - лежит у вас в \\pdc\scripts скрипт и программа (cmdow, например). Запускаете вы его и кидает он вам предупреждение.
Указанный путь был использован при запуске CMD.EXE в качестве текущей папки.
CMD.EXE не поддерживает пути UNC. По умолчанию выбрана системная папка Windows. »
А надо вам в скрипте запустить: cmdow @ /HID »Но он не доступен: "cmdow" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом. »
Так вот чтобы в скрипте не писать \\pdc\scripts\cmdow @ /HID, можно написать %~dp0cmdow, которое и раскроется в \\pdc\scripts\cmdow. Это удобнее, т.к. каталоги меняются и т.д., а держать скрипт со всем вспомогательным добром - проще.




© OSzone.net 2001-2012