У меня есть домен Active Directory, работающий на Windows Server 2003 R2. Клиенты — это смесь Windows XP SP2, Vista и Windows 7. Я хочу запустить скрипт (пакетный файл, но, возможно, скрипт VB) на каждой машине, один раз. Я не хочу, чтобы это происходило при входе в систему, выходе из системы, запуске или завершении работы. Я просто хочу, чтобы это происходило как можно скорее и один раз.
Существует ли относительно безболезненный способ сделать это, который подойдет всем типам клиентов?
Спасибо.
ОБНОВЛЯТЬ: Я должен был упомянуть об этом изначально: многие ПК находятся за дешевыми 5-портовыми маршрутизаторами, подключенными к разъему Ethernet. Представьте себе пять аспирантов, работающих в одном офисе. Таким образом, у каждого ПК в офисе есть IP-адрес RFC1918. Я нахожусь на публичной стороне маршрутизатора, поэтому не могу подключиться к ПК напрямую. Следовательно, PsExec или WMI не будут работать. WinRM может, но на большинстве ПК он не установлен. Я думаю, что мой единственный вариант — как-то использовать GPO, может быть, запланировать задачу для запуска скрипта с сетевого диска.
решение1
Я бы сказал, используйтеpsToolspsexec.exe для удаленного запуска скрипта.
Это безболезненный процесс настройки и запуска, не требующий входа на каждую станцию и не оставляющий никаких следов впоследствии.
В ответ на все комментарии: поскольку они могут взаимодействовать с контроллерами домена, чтобы находиться в домене, вы должны иметь возможность перейти на контроллер домена и запустить скрипт Psexec оттуда.
решение2
Это звучит как работа дляpsexec. PSexec позволит вам удаленно выполнить скрипт на всех компьютерах в домене, если вы укажете '\' в качестве компьютера. Вам нужно будет добавить в свой скрипт некоторую логику, чтобы оставить в системе какое-то указание на то, что он завершен, и проверить это перед запуском.
решение3
Вы можете написать скрипт-обертку и использовать psexec для подключения к удаленным машинам и выполнения нужного вам скрипта, при условии, что он находится в месте, доступном для этих машин. Вам просто нужно иметь источник для ПК, к которым вы подключаетесь, чтобы перебирать их.
решение4
Я хочу запустить скрипт (пакетный файл, но, возможно, скрипт VB) на каждой машине, один раз. Я не хочу, чтобы это происходило при входе в систему, выходе из системы, запуске или выключении. Я просто хочу, чтобы это произошло как можно скорее и один раз. Есть ли относительно безболезненный способ сделать это, который будет работать для всех типов клиентов?
VBскрипт.
Многие ПК находятся за дешевыми 5-портовыми маршрутизаторами, подключенными к разъему Ethernet. Представьте себе пять аспирантов, работающих в одном офисе. Таким образом, каждый ПК в офисе имеет IP-адрес RFC1918.
Я удивлен, что это вообще работает. Я предполагаю, что все маршрутизаторы имеют разные подсети; в противном случае ваш домен будет в полном и абсолютном хаосе, поскольку у вас будет любое количество клиентов, пытающихся заявить права на один и тот же IP-адрес 192.168.xx...
Я нахожусь на публичной стороне маршрутизатора, поэтому не могу подключиться напрямую к ПК. Поэтому PsExec или WMI не будут работать.
Это ваша первая проблема. Вам нужно попасть «внутрь» сети каждого из них. Похоже, что удаленные ПК находятся за каким-то брандмауэром NAT, и это вызовет массу головной боли. Технически, «в идеальном мире», ваш сервер должен находиться в той же сети, что и ваши клиенты. Клиенты подключаются через VPN? Если так, то это будет ваш билет «в».
Думаю, единственный вариант — как-то использовать GPO, может быть, запланировать задачу по запуску скрипта с сетевого диска.
Это может стать проблемой, если созданный вами объект групповой политики применяется при входе пользователя в систему, учитывая, что вы указали, что не хотите, чтобы это происходило при входе пользователя в систему.
Извините, что обидел вас этим, но, учитывая характер вопроса, я должен спросить (если вы готовы ответить): зачем вам это нужно? Управляемая сеть не будет настроена таким безумным образом, и, честно говоря, с моей точки зрения кажется, что вы хотите устроить какую-то брешь в этих внутренних сетях.