CMD/BAT - [решено] Удаление файла с рабочих столов по сети

Аватара пользователя
Roman_Ko

Re: CMD/BAT - [решено] Удаление файла с рабочих столов по сети

Сообщение Roman_Ko »

Roman_Ko, потому и логон-скрипт, что там ничего допиливать не нужно. А в этом случае как? Нужно:разрешить отложенное исполнение переменных окружения;запросить раздел реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList и разобрать полученное в цикле;для каждого полученного пути загрузить куст и посмотреть на параметр Desktop аналога HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders загруженного куста;не забыть выгрузить куст.Плюс ко всему, не забываем, что за машиной кто-то уже сидит, и его куст уже подгружен в HKU — и это надо учесть.



И это — минимум. Теоретически это можно уместить в одну очень длинную строку, но заморитесь играться с кавычками, операторными скобками и прочей радостью пакетных файлов. И всё это вместо банального:



Код:

Код: Выделить всё

Option Explicit
Dim strFileName
Dim strFullFileName
strFileName = "file.exe"
With WScript.CreateObject("Scripting.FileSystemObject")
	strFullFileName = .BuildPath(WScript.CreateObject("WScript.Shell").SpecialFolders("Desktop"), strFileName)
	If .FileExists(strFullFileName) Then
		.DeleteFile strFullFileName, True
	End If
End With
WScript.Quit 0


Цитата Roman_Ko:



Вопрос решён благодаря наводящим вопросам от Iska

Вот рабочий вариант
CMD/BAT - [решено] Удаление файла с рабочих столов по сети




Не решён. Профили могут быть расположены не в %HomeDrive%, не в Users, вообще на разных разделах, папка Рабочего стола именоваться не Desktop, может лежать вовне папки профиля пользователя.
Аватара пользователя
Roman_Ko

Re: CMD/BAT - [решено] Удаление файла с рабочих столов по сети

Сообщение Roman_Ko »

И вновь Вы оказались правы, я действительно не учел многих важных вещей.

Приятно с Вами общаться. Спасибо.
Аватара пользователя
Roman_Ko

Re: CMD/BAT - [решено] Удаление файла с рабочих столов по сети

Сообщение Roman_Ko »

Цитата Roman_Ko:



Задача решается разными способами. Но в данном случае интересен вариант через psexec.
CMD/BAT - [решено] Удаление файла с рабочих столов по сети




так это я ж сразу написал:



логон скриптом накапливаете текстовый файл, где каждая строка путь к этому несчастному файлу на рабочем столе.

а потом вашим любимым psexec по этому списку шарахатете удаление. Или наоборот )))



А в
Цитата Roman_Ko:



for /f "tokens=1" ^%%a in ('dir /B "%HomeDrive%\Users"'^)
CMD/BAT - [решено] Удаление файла с рабочих столов по сети




добавил бы на всякий пожарный delims=*
Ответить

Вернуться в «Скриптовые языки администрирования Windows»