Войти

Показать полную графическую версию : Поиск, удаление, а затем копирование файла для группы пользователей


lcnet
07-04-2017, 12:06
Приветствую всех!
Есть задача. Нужно сделать скрипт, который бы удалял определенные файлы у всех пользователей, а затем копировал бы файлы пользователям определенной группы безопасности.

Я вижу начало как-то так:


Dim FSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
strAllUsersDesktop = WshShell.SpecialFolders("AllUsersDesktop")
'Если файл существует, Удаляем его
IF objFSO.FileExists(strDesktop & "buh8.rdp") Then File.Delete strDesktop & "\"
End If
Set objShell = Nothing
Set objFSO = Nothing


Отрабатывает без ошибок, но почему-то файл "buh8.rdp" не удаляется
Еще не могу понять, как мне продолжить скрипт и копировать файл "buh8.rdp" только определенной группе домена, например "пользователи 1с"
В скриптах не силен, так что сильно не пинайте.
Заранее всем спасибо.

Iska
07-04-2017, 12:17
Отрабатывает без ошибок, »
Угу, угу, без ошибок:
C:\Мои проекты\0060\0002.vbs(8, 1) Ошибка компиляции Microsoft VBScript: Предполагается наличие инструкции

Используйте предпочтения групповых политик для распространения buh8.rdp.

lcnet
07-04-2017, 17:23
Это слишком просто...
А если честно, то не вариант, поскольку придется выносить группу безопасности отдельно, а на ней уже много чего завязано и переписывать кучу уже имеющихся скриптов не хочется.

Решил с помощью UserLogon VBS'а и Powershell'a
Удаление через Powershell, копирование файла через VBS

powershell.exe Remove-Item "c:\users\Public\Desktop\Торговля.rdp"


On Error Resume Next

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
strAllUsersDesktop = WshShell.SpecialFolders("AllUsersDesktop")

set objNetwork = CreateObject("Wscript.Network")
strComputer = lcase(objNetwork.ComputerName)
strUser = lcase(objNetwork.UserName)
set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
set fso = CreateObject("Scripting.FileSystemObject")
set objSysInfo = WScript.CreateObject("ADSystemInfo")

'используя ADSI получаем список групп, в которые входит пользователь
ADSpath = "WinNT://" & objNetwork.UserDomain & "/" & objNetwork.UserName
set ADSobj = GetObject(ADSpath)
RDPfile = strDesktop & "\Торговля.rdp"
RDPfileExists = false
for each group in adsobj.groups
select case group.name
case "Клиенты 1c"

'Копируем файл
objFSO.CopyFile "\\test.local\SysVol\test.local\Policies\{D71FB3F7-A087-485F-94B8-83E97CA9CDE9}\User\Scripts\Logon\Торговля.rdp", strDesktop & "\"

end select

Next

Set objShell = Nothing
Set objFSO = Nothing
Сделал помесь бульдога с носорогом ))
Может конечно и криво, но работает ))

Iska
08-04-2017, 00:22
поскольку придется выносить группу безопасности отдельно »
Зачем? Фильтрация для чего дана?!




© OSzone.net 2001-2012