![]() |
Удаление файла с рабочих столов по сети
Доброго времени суток! Помогите с решением задачки.
Необходимо удалить файл (например, file.exe) с рабочих столов всех пользователей в сети домена. Условия - профили пользователей могут находиться как на диске С так и на D и т.д. Для выполнения задачи необходимо применять psexec Накатал примерный батник (выполняется из под админа в домене) Код:
@echo off Пробую вариант с объявлением переменной %%a (`dir /B "%HomeDrive%\Users"`) Код:
@echo off |
Roman_Ko,
через логон скрипт не хочешь решить эту проблему? там %userprofile% корректно покажет где надо удалять. ну или хотябы насобираешь пути профелей, а потом пройдешься по ним своим скриптом? |
Цитата:
А так - да, можно, например так Код:
On Error Resume Next |
Цитата:
Код:
WScript.Echo WScript.CreateObject("WScript.Shell").SpecialFolders("Desktop") |
Всё отлично, хорошо, спасибо, я ценю Вашу помощь. Но уважаемые форумчане, Вы пытаетесь помочь решить задачу немного не тем способом, которым было запланировано решить задачу изначально.
Давайте отмотаем немного назад :) Подскажите где синтаксическая ошибка в батнике? Код:
@echo off |
Ошибка не в «батнике», а в том, что Ваш psexec.exe выполняется не в контексте пользователя, сидящего за удалённой машиной. И — ничего, что %HomeDrive% берётся с той машины, где исполняется пакетный файл, а? Ничего, что на удалённой машине вообще может быть не Vista+? Какой смысл в переборе каталога Users на локальной машине? В общем, у Вас тут сборная непонятная солянка.
Чем Вам так не нравится тот же logon-скрипт? |
Цитата:
Задача решается разными способами. Но в данном случае интересен вариант через psexec. Интересен потому, что если его "допилить", то удаление нужного файла из нужного места на удаленной машине (машина на win, домен) возможно по одному вашему клику, т.е. оперативное удаление. Цитата:
Но, выявив все локальные профили, можно выполнить команду на удаление в каждом профиле интересующего нас файла, если таков найдется конечно. Цитата:
|
Цитата:
Цитата:
Исходя из заявленного Вами: Цитата:
Код:
psexec.exe \\%%i cmd.exe /c del /a /s /f /q c:\Users\file.exe |
Цитата:
Цитата:
|
Вопрос решён благодаря наводящим вопросам от Iska
Вот рабочий вариант Код:
@echo off |
Roman_Ko, потому и логон-скрипт, что там ничего допиливать не нужно. А в этом случае как? Нужно:
И это — минимум. Теоретически это можно уместить в одну очень длинную строку, но заморитесь играться с кавычками, операторными скобками и прочей радостью пакетных файлов. И всё это вместо банального: Код:
Option Explicit Цитата:
|
И вновь Вы оказались правы, я действительно не учел многих важных вещей.
Приятно с Вами общаться. Спасибо. |
Цитата:
логон скриптом накапливаете текстовый файл, где каждая строка путь к этому несчастному файлу на рабочем столе. а потом вашим любимым psexec по этому списку шарахатете удаление. Или наоборот ))) А в Цитата:
|
Время: 12:00. |
Время: 12:00.
© OSzone.net 2001-