Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - удалить все файлы с раб.стола, кроме определенных ярлыков. через КД

Ответить
Настройки темы
CMD/BAT - удалить все файлы с раб.стола, кроме определенных ярлыков. через КД

Старожил


Сообщения: 346
Благодарности: 5

Профиль | Отправить PM | Цитировать


подскажите, как написать скрипт, что бы удалялось все, с рабочего стола пользователя, кроме определенных ярлыков.
скрипт предполагаю запускать через КД (Logon)

Отправлено: 09:40, 19-12-2014

 

Старожил


Сообщения: 346
Благодарности: 5

Профиль | Отправить PM | Цитировать


наконец дошли руки, т.к. вопрос встал остро
sov44 ваш скрипт не работает(
Iska ваш скрипт с пропуском определенных ярлыков работает на половину. он удаляет файлы все с раб стола, но не трогает ярлыки вообще никакие.
помогите сделать корректный скрипт пожалуйста

Отправлено: 15:44, 20-01-2015 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата santey007:
Iska ваш скрипт с пропуском определенных ярлыков работает на половину. он удаляет файлы все с раб стола, но не трогает ярлыки вообще никакие. »
А эти «никакие ярлыки» точно лежат физически на Рабочем столе пользователя, а? А не на Общем для всех пользователей Рабочем столе?
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:42, 20-01-2015 | #22


Старожил


Сообщения: 346
Благодарности: 5

Профиль | Отправить PM | Цитировать


да уверен.
1-если создаю просто файлы на раб.столе, то чистит без проблем
2-если я создаю файл на рабочем столе и делаю тут же ярлык к нему, то при запуске скрипта файл убивает и выдает сообщение (просто путь к ярлыку) и все, ярлык не удаляет. при повторном запуске скрипта уже никаких сообщении не выдает и опять же ярлыки не трогает
3-если я создаю файл на другом диске и делаю ярлык на раб стол для него, то при запуске скрипта выдает опять сообщение (просто путь к ярлыку) и все. при повторном запуске уже ничего не выдает и опять же не удаляет

Отправлено: 08:33, 21-01-2015 | #23


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата santey007:
выдает сообщение (просто путь к ярлыку) и все, »
Вы раскомментировали само удаление — как я писал в последнем абзаце вот в этом посте данной темы? Покажите Ваш код.
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:36, 21-01-2015 | #24


Старожил


Сообщения: 346
Благодарности: 5

Профиль | Отправить PM | Цитировать


сори увидел косяк, одну строку не закомментировал, а другую не раскомментировал (внизу эти 2 строки были, незаметил)

а как теперь права развесить на раб стол пользователя? что бы не сохраняли на него ничего?

Последний раз редактировалось santey007, 21-01-2015 в 11:47.


Отправлено: 11:07, 21-01-2015 | #25


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата santey007:
правильно сделал? »
Почти. Кое-что пропустили при этом .
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim objFSO
Dim objWshShell
Dim objDictionary

Dim objFolder
Dim objFile


Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objDictionary = WScript.CreateObject("Scripting.Dictionary")

With objDictionary
	.Add "C:\Program Files\Google\Chrome\Application\chrome.exe", ""
	.Add "C:\Program Files\Mozilla Firefox\firefox.exe", ""
End With

With objFSO.GetFolder(objWshShell.SpecialFolders.Item("Desktop"))
	For Each objFolder In .SubFolders
		objFolder.Delete True
	Next
	
	For Each objFile In .Files
		Select Case LCase(objFSO.GetExtensionName(objFile.Name))
			Case "lnk"
				If Not objDictionary.Exists(objWshShell.CreateShortcut(objFile.Path).TargetPath) Then
					WScript.Echo objFile.Path
					'objFile.Delete True
				End If
			Case Else
				objFile.Delete True
		End Select
	Next
End With

objDictionary.RemoveAll

Set objDictionary = Nothing
Set objWshShell = Nothing
Set objFSO = Nothing

WScript.Quit 0

И — то же самое:
Цитата:
Для удаления раскомментируйте помеченные красным строки. Чтобы не выводились сообщения, закомментируйте или удалите помеченные зелёным строки.

Последний раз редактировалось Iska, 21-01-2015 в 14:42.

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:50, 21-01-2015 | #26


Старожил


Сообщения: 346
Благодарности: 5

Профиль | Отправить PM | Цитировать


увидел косяк, исправил все ок.
еще моменты, как бы оставить файлик рдп подключения или любой другой файл или папку которую необходимо оставить? и развесить права на раб стол, что бы больше не сохраняли туда ничего?

Последний раз редактировалось santey007, 21-01-2015 в 13:31.


Отправлено: 12:08, 21-01-2015 | #27


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата santey007:
как бы оставить файлик рдп подключения »
Можно.

Цитата santey007:
или любой другой файл »
Можно.

Цитата santey007:
или папку которую необходимо оставить? »
Тоже можно.

Пробуйте (не проверялось):
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim objFSO
Dim objWshShell

Dim objDictionaryExcludeFolders
Dim objDictionaryExcludeFiles
Dim objDictionaryExcludeShortcuts

Dim objFolder
Dim objFile


Set objFSO        = WScript.CreateObject("Scripting.FileSystemObject")
Set objWshShell   = WScript.CreateObject("WScript.Shell")

Set objDictionaryExcludeFolders   = WScript.CreateObject("Scripting.Dictionary")
Set objDictionaryExcludeFiles     = WScript.CreateObject("Scripting.Dictionary")
Set objDictionaryExcludeShortcuts = WScript.CreateObject("Scripting.Dictionary")

With objDictionaryExcludeFolders
	.Add "Новая папка", ""
	.Add "Новая папка (2), ""
	.Add "Новая папка (3), ""
	.Add "От создателей Новая папка, Новая папка (2) и Новая папка (3) — Новая папка (4)", ""
End With

With objDictionaryExcludeFiles
	.Add "MyFile.txt", ""
	.Add "MyFile2.txt", ""
End With

With objDictionaryExcludeShortcuts
	.Add "C:\Program Files\Google\Chrome\Application\chrome.exe", ""
	.Add "C:\Program Files\Mozilla Firefox\firefox.exe", ""
End With


With objFSO.GetFolder(objWshShell.SpecialFolders.Item("Desktop"))
	For Each objFolder In .SubFolders
		If Not objDictionaryExcludeFolders.Exists(objFolder.Name) Then
			WScript.Echo objFolder.Path
			'objFolder.Delete True
		End If
	Next
	
	For Each objFile In .Files
		If Not objDictionaryExcludeFiles.Exists(objFile.Name) Then
			Select Case LCase(objFSO.GetExtensionName(objFile.Name))
				Case "lnk"
					If Not objDictionaryExcludeShortcuts.Exists(objWshShell.CreateShortcut(objFile.Path).TargetPath) Then
						WScript.Echo objFile.Path
						'objFile.Delete True
					End If
				Case Else
					WScript.Echo objFile.Path
					'objFile.Delete True
			End Select
		End If
	Next
End With

objDictionaryExcludeFolders.RemoveAll
objDictionaryExcludeFiles.RemoveAll
objDictionaryExcludeShortcuts.RemoveAll

Set objDictionaryExcludeFolders   = Nothing
Set objDictionaryExcludeFiles     = Nothing
Set objDictionaryExcludeShortcuts = Nothing

Set objWshShell   = Nothing
Set objFSO        = Nothing

WScript.Quit 0

Убрал, кстати, «"url"» — там была бы ошибка, для них нужна иная логика.

Цитата santey007:
и развесить права на раб стол, что бы больше не сохраняли туда ничего? »
Развешивайте. Я своё мнение на этот счёт, помнится, высказывал выше. Отрицательное.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:41, 21-01-2015 | #28


Старожил


Сообщения: 346
Благодарности: 5

Профиль | Отправить PM | Цитировать


все супер скрипт отрабатывает. вопрос: как его запустить определенным пользователям? а не всем

Отправлено: 12:02, 03-02-2015 | #29


Старожил


Сообщения: 346
Благодарности: 5

Профиль | Отправить PM | Цитировать


есть мысли?

Отправлено: 10:53, 04-02-2015 | #30



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - удалить все файлы с раб.стола, кроме определенных ярлыков. через КД

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Пропадают 5 ярлыков с раб. стола после спящего режима. Что можно сделать? Квазар Хочу все знать 9 12-05-2013 13:45
2008 R2 - есть бантик удаляет все файлы с раб стола а нужно бы поправить чтоб перемещал m151163 Windows Server 2008/2008 R2 2 14-02-2012 16:42
Подскажите, пожалуйста автоудаление ярлыков с раб. стола truvo Автоматическая установка Windows 2000/XP/2003 3 26-11-2010 13:28
CMD/BAT - [решено] Удалить все файлы из папки кроме нужных Sirimika Скриптовые языки администрирования Windows 16 12-11-2010 10:33
[решено] Не удалить копию папки Администрирование с раб стола(помогите) Ashez Хочу все знать 5 02-12-2008 22:07




 
Переход