Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Поиск, удаление, а затем копирование файла для группы пользователей (http://forum.oszone.net/showthread.php?t=325705)

lcnet 07-04-2017 12:06 2727040

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

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

Код:

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 2727043

Цитата:

Цитата lcnet
Отрабатывает без ошибок, »

Угу, угу, без ошибок:
Цитата:

C:\Мои проекты\0060\0002.vbs(8, 1) Ошибка компиляции Microsoft vbscript: Предполагается наличие инструкции


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

lcnet 07-04-2017 17:23 2727199

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

Решил с помощью 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 2727361

Цитата:

Цитата lcnet
поскольку придется выносить группу безопасности отдельно »

Зачем? Фильтрация для чего дана?!


Время: 23:44.

Время: 23:44.
© OSzone.net 2001-