Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Windows Server 2008/2008 R2 (http://forum.oszone.net/forumdisplay.php?f=97)
-   -   GPO-Scripts-Startup. Скрипт отработал на DC, а на клиенте не хочет (http://forum.oszone.net/showthread.php?t=237739)

PIL123 02-07-2012 18:35 1944477

GPO-Scripts-Startup. Скрипт отработал на DC, а на клиенте не хочет
 
Доброго времени суток, коллеги!
Тестовая виртуальная свежеустановленная среда, состоящая из Windows Server 2008 R2 SP1 (Domain Controller, имя = TestDC) и клиента на Windows XP (имя = TestClient). Клиент в структуре AD расположен тут:



Есть только одна GPO (без учёта дефалтовых) прилинкованная к домену в целом. Называется "Run AIDA64 Reports"



Внутри этой политики есть только одна настройка ...\Scripts\Startup



Файл скрипта лежит в контейнере политики:



...по пути: \\Company.Local\SYSVOL\Company.Local\Policies\{DBFBD0DB-F061-4464-A206-51984B01ABB3}\Machine\Scripts\Startup\Run AIDA64 Reports.vbs

Скрипт внутри VBS-файла имеет следующий код:

Код:

dim ComputerName
    Set objNetwork = CreateObject("Wscript.Network") 
    ComputerName = objNetwork.ComputerName 
Set WshShell = WScript.CreateObject("WScript.Shell")
 
dim ObjFso
Set objFSO = CreateObject("Scripting.FileSystemObject")
If not objFSO.FileExists("\\TestDC.Company.Local\Distributives\AIDA64\Reports\"+ComputerName+".txt") Then
WshShell.Run """\\TestDC.Company.Local\Distributives\AIDA64\aida64.exe"" /R ""\\TestDC.Company.Local\Distributives\AIDA64\Reports\$HOSTNAME"" /SUM /TEXT /SILENT"
end if

Код скрипта и суть его можно почитать тут: http://forum.oszone.net/thread-219157.html (с сообщения № 5). Если коротко: скрипт проверяет нет ли в определённой сетевой папке файла с именем компьютера на котором выполняется скрипт. Если файл есть, скрипт ничего не делает, если файла нет, скрипт запускает программу AIDA64 с определёнными параметрами, которая создаёт файл в той самой определённой сетевой папке и называет его аналогично имени текущего компьютера на котором выполнялась AIDA (ну и скрипт).
Проблема: в процессе тестирования работы этой политики и выполнения скрипта, выяснилось, что скрипт работает (даёт результат в виде файла) на контроллере домена, а на клиенте не работает (результат в виде файла не даёт). Политика и скрипт в ней - одни и те же.
RSoP на клиенте говорит следующее:



GPResult на клиенте пишет это:



Чтобы исключить вероятные проблемы с сетевым доступом я изначально дал полный доступ для "Everyone" на шару и на NTFS (среда тестовая и позволяет легко это делать). Может надо ещё кому-нибудь чего-нибудь дать? Кого такого нужного Everyone не включает? По идее этот скрипт должен выполняться под SYSTEM, но в каждом компе SYSTEM свой и как дать на него разрешения в масштабах домена? Выглядит это вот так сейчас:
Шара:



NTFS для расшаренной папки:



NTFS непосредственно для папочки "Reports"? куда должны складываться файлы:



Содержимое папки "Reports". Видно, что файл лежит только от контроллера домена, т.е. и политика и скрипт на нём отработали как нужно:



В чём проблема - не пойму :-(
Помогите, пожалуйста, разобраться, чтобы скрипт отрабатывал на всех машинах к которым применена политика с ним!
Картинки кликабельны.

UPD:

Запустил вместо VBS-скрипта CMD-файл аналогичного назначения:

Код:

if not exist "\\TestDC.Company.Local\Distributives\AIDA64\Reports\%COMPUTERNAME%.txt" ( "\\TestDC.Company.Local\Distributives\AIDA64\aida64.exe" /R "\\TestDC.Company.Local\Distributives\AIDA64\Reports\$HOSTNAME" /SUM /TEXT /SILENT ) else exit
Отчёт с клиента упал куда надо:



Не знаю что и думать. Но, надо полагать, дело не в доступах к сетевым папкам. В чём ещё может быть проблема: неправильный VBS-скрипт, работающий как-то избирательно или может я его неправильно прописал (см. рис. 3)?


Время: 01:48.

Время: 01:48.
© OSzone.net 2001-