Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Автоматизация администрирования

Автор: rosalin
Дата сообщения: 05.06.2006 16:17

Цитата:
Ребята, добрый день, пролез почти по всем страницам этого раздела, но не нашел подобных скриптов поика и удаления файлов по маске
Что нужно:
Скрипт, bat или cmd - не важно который при запуске будет сканировать все папки на наличие указанных файлов по маске и удалять их,


Присоединяюсь к просьбе!!!!
Автор: FreemanRU
Дата сообщения: 05.06.2006 16:34
powertim
rosalin
а del *.mask чем не устраивает?
Автор: powertim
Дата сообщения: 05.06.2006 16:37
в том то и дело, что я не знаю как писать рекурсивный опрос
Можеть всетаки у кого есть рабочий вариант скрипта, Плиз огромный !!!
Автор: FreemanRU
Дата сообщения: 05.06.2006 16:41
powertim
Издеваешься? Зачем тебе рекурсия?????

Цитата:

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Freeman>del /?
Deletes one or more files.

[no]DEL [/P] [/F] [/S]
[/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names[/no]

names Specifies a list of one or more files or directories.
Wildcards may be used to delete multiple files. If a
directory is specified, all files within the directory
will be deleted.

/P Prompts for confirmation before deleting each file.
/F Force deleting of read-only files.
/S Delete specified files from all subdirectories.
/Q Quiet mode, do not ask if ok to delete on global wildcard
/A Selects files to delete based on attributes
attributes R Read-only files S System files
H Hidden files A Files ready for archiving
- Prefix meaning not

If Command Extensions are enabled DEL and ERASE change as follows:

The display semantics of the /S switch are reversed in that it shows
you only the files that are deleted, not the ones it could not find.
[/q]

Прежде чем спрашивать всякую ерунду, изучите возможные варианты, может это и с правду ерунда...
Автор: powertim
Дата сообщения: 05.06.2006 16:46
попробую, Спасибо

Добавлено:
Ребята, я вот что нашел, но это работает полностью, если есть админовские права в Винде.

Помогите дописать полностью рабочий вариант этой идеи
Есть предложение. К примеру:
У каждого пользователя на своем рабочем компе есть папка с файлами (которые мы так или иначе скопируем туда). Называется например - С:\Scan_del
Туда помещаем:
1. CMD файл - delfiles.cmd (скрипт привожу ниже)
2. runasp_setup.exe - "RunAs Professional Description" - альтернатива стандартному RunAs, но с возможностью ввода имени и пароля - сразу (так как стандартный RunAs позволяет только автоматом вводить - имя)
3. и скрипт например - RunDelF.cmd - который будет запускаться либо через Logon, либо другим путем - на ваше усмотрение. Что он будет собой представлять - ВОТ ТУТ НУЖНА ВАША ПОМОШЬ ГОСПОДА !!! не откажите

при запуске его (RunDelF.cmd)
1. Происходит установка RunAs Professional
2. окончание установки RunAs Professional
3. запуск delfiles.cmd под Логином и паролем админа используя уже RunAs Professional
и все !!!

ВОТ ПРИМЕР РАБОЧЕГО СКРИПТА (УДАЛЕНИЯ ФАЙЛОВ ПО МАСКЕ в просмотренных всех папках)

::====delfiles.cmd=====
:: @echo off
setlocal ENABLEDELAYEDEXPANSION

:: Корневая папка
set folder=C:\Documents and Settings\%username%
::Расширения файлов, которые нужно удалить
:список через запятую)
set extensions=.tmp,.bak,.tbk,.err,.gpr
Echo Following extensions will be deleted: %extensions%
Echo in folder %folder% and subfolders of %folder%
Echo.
pause
:: Удаляем файлы по маске в корневой директории
for %%k in (%extensions%) do (echo Deleting files *%%k in folder %folder%)&(del /q /f "%folder%"\*%%k)
:: Удаляем файлы по маске в поддиректориях
for /f "delims=" %%i in ('dir /b /s /l /ad %folder%') do (
pause
for %%k in (%extensions%) do (echo Deleting files *%%k in folder %%i)&(del /q /f "%%i"\*%%k)
)
--------------------------------------------------------------


А вот описание RunAsP.exe

Step by Step
Installexample

Copy the file RunAsP.exe to the system folder.

Register the ".Rap" - files with typing "runasp / register" at the command prompt.
(This step will be also processed when you start RunAsP without parameters.)
The user which starts this operation needs to have rights to access the registry on HKLM!!!

Start RunAsP
A dialog window appears.

Domain:
The logon domain can be the network domain or just the computer name.
You are able to use environment variables (i.e. %computername% or %userdomain%)

User:
Input the username.
You can use environment variables, too.

Password:
Password

Program to run:
Define the path to the application that you want to run with the new user privileges.

Logon with profile:
If this box is checked RunASP will logon to the system with the profile.
This option is only necessary when an access to the user's profile is needed.

Now click on the run - button to check the login procedure

All settings can be saved encrypted (> 128 Bit) to a file.
Use the button "Save .Rap - File". If you don't specify a password RunAsP will ask you later during the start of the .Rap - files.


Now exit the program.

With a double - click on the .Rap - file a login procedure starts.
The in the .Rap - file specified application starts with the assigned user rights.
For every step you do in the application you have this special rights. If you close the started application this rights will get lost.

You can start a .Rap - file with a double - click or optionally via the command line.
Command: RunAsp c:yourfilename.rap
This option is helpful if you would like to use RunAsP in Scripts etc.


Some RunAs Professional usage samples

RunASP is a powerful application. It would take a lot of time to write down the various purposes of this tool. That is why only the main aspects are mentioned following.

You use a program that needs special user rights and you won't assign this rights to your users?
With RunASP you are able to create a .Rap - file with the path to a application which you are able to start with different login informations.
The user only needs to click on the .Rap - file and the application will be started with the new user rights. This is all possible without login off from the system. When you close RunASP the new user rights will get lost.
Outside the application the user possesses his regular rights. This rights won't
be affected.

Your helpdesk team must have access to Client PC's (i.e. via remote connection with
PC Anywhere or VNC)? To modify system settings on the remote machine easily you are
able to create a folder with prepared .Rap - files. The helpdesk team has now the
ability to start every application which is needed without having a lot of work.

RunAsP can be used to install applications in the silent mode (mostly setup.exe /silent)
with administrative rights.

Remark!!!
With both RunAS and RunASP you don't have the chance to open a new explorer window
directly.
Use instead the simple command:
c:program filesInternet Exploreriexplore.exe /c:
The internet explorer will start and open the default path c:.
By changing one level in the upper direction you get full access to the work place.
Автор: Yourbill
Дата сообщения: 05.06.2006 17:33
powertim
Использую обычную комманду DEL с ключем /S и /Q
типа
del /s /q d:\*.tmp
что означает - удалить все файлы с расширением *.tmp на диске D и во всех папках это диска не задавая вопрос на подтверждение удаления...
Ну а дальше действуй по анологии.

P.S. Почитай справку виндовую по ком. строке - там все доступно описано, для таких простых опереций тебе этого хватит с головой.

Добавлено:
powertim
Создай батник с коммандой дел и поставь его в шедулер под админским аккаунтом и укажи когда этот батник запускать - типа когда стартует комп- это чтобы удалить файлы к которым нет доступа обычному пользователю, а в домашней папке у него доступ есть так, что смело добавляешь такой батник в авторан юзеру... Нафига все эти сложности, что ты написал, я так и не понял?
Автор: FreemanRU
Дата сообщения: 05.06.2006 17:46
powertim

Цитата:
Нафига все эти сложности, что ты написал, я так и не понял

+1... мы не ищем легких путей??? Зачем два раза вызывать del?

Если надо вызвать удаление ручками - шедулер можно сделать вызываемым. Т.е. простой юзер может запустить задание в шедулере. Делается в безопасности.

Далее. Зачем тебе RunAs, если ты хочешь удалять под пользователем в его же профиле??
Если что - пользователь ВЛАДЕЛЕЦ своей папки с профилем, и соотвественно может делать там что хочет.

Короче советов ты слышать не хочешь. и думать тоже.
Автор: rosalin
Дата сообщения: 06.06.2006 08:36
Уважаемые All

Может всетаки у кого то есть идеи по поводу скрипта с настройками на маску
для удаления файлов....
Очень надо
Автор: FreemanRU
Дата сообщения: 06.06.2006 09:51
rosalin
ааааа..... и ты туда же.....

Цитата:
del *.mask /s /q

И ВСЁ..... никаких скриптов, ничего... просто берем и удаляем!
Автор: Yourbill
Дата сообщения: 06.06.2006 11:49
powertim
К тому же непонятно в каком виде храниться админский пароль для RunAs??
Ну и для тренировки в пользовании встроенными командами винды, создай текстовик с масками удаляемых файлов типа:

Код:
*.tmp
*.bak
*.log
Автор: powertim
Дата сообщения: 06.06.2006 16:24
СПАСИБО ВСЕМ, вы правы, мы не ищем легких путей. НО Я ОДНОЗНАЧНО БЛАГОДАРЕН.
Автор: serstr
Дата сообщения: 07.06.2006 11:45
Люди!!!
Помогите решить такую вот задачку.
Можно ли по средствам VBS получить текущий резмер mailboxa, каждого узера в AD?
И если можно, то подскажите как?

Забыл добавить Exchange Server - 2000!
Автор: Vby
Дата сообщения: 07.06.2006 13:23
serstr

On Error Resume Next
Dim cComputerName
Const cWMINameSpace = "root/MicrosoftExchangeV2"
Const cWMIInstance = "Exchange_Mailbox"
cComputerName = "server"

Dim strWinMgmts        ' Connection string for WMI
Dim objWMIExchange    ' Exchange Namespace WMI object
Dim listExchange_Mailboxs    ' ExchangeLogons collection
Dim objExchange_Mailbox        ' A single ExchangeLogon WMI object


strWinMgmts = "winmgmts:{impersonationLevel=impersonate}!//"& _
cComputerName&"/"&cWMINameSpace
Set objWMIExchange = GetObject(strWinMgmts)

If Err.Number <> 0 Then
WScript.Echo "ERROR: Unable to connect to the WMI namespace."
Else


Set listExchange_Mailboxs = objWMIExchange.InstancesOf(cWMIInstance)

If (listExchange_Mailboxs.count > 0) Then


For Each objExchange_Mailbox in listExchange_Mailboxs


WScript.echo "MailBox: "& objExchange_Mailbox.MailboxDisplayName & " " & "Size = " & _
objExchange_Mailbox.Size
'
Next
Else

WScript.Echo "WARNING: No Exchange_Mailbox instances were returned."
End If
End If

Автор: serstr
Дата сообщения: 07.06.2006 14:55
Проблема в том что Exchange 2000! НЕ поддерживает WMI!!!
Автор: AleXeyS55
Дата сообщения: 09.06.2006 11:37
Подскажите пожалуйста, можно ли редствами VBS создать и отправить письмо?
Автор: Sk1f
Дата сообщения: 09.06.2006 11:39
Думаю как бы сделать получше, быстрее и проще такое задание:.
Есть группа. Нужно считать пользователей с нее. И потом пользоваталей воссоздать в другом домене.
Можно было бы считать пользователей - создать отдельную OU, в ней создать копии нужных пользователей. А потом считать эту OU с помощью ldifde.

Но на рабочем домене такие операции делать не хочется. И поэтому предлагается считать пользователей и потом их добавить в какой-то текстовой файл. И уже с этого файла считывая sAMAccountName и DisplayName. Создать пользователей.

Пользователей считал, но проблема с добавлением в файл и потом считывания с него.
Может быть лучше не в текстовый, а excel, чтобы потом меньше проблем было с поиском sAMAccountName и соответсвующих ему DisplayName!
Автор: Oldster
Дата сообщения: 09.06.2006 12:14
AleXeyS55

Цитата:

////////////////////////////////////////////////////////////////////////////
// JScript
//Этот скрипт предназначен для отправки e-mail с компьютера,
//на котором не установлен SMTP-протокол
///////////////////////////////////////////////////////////////////////////
objEmail = WScript.CreateObject("CDO.Message");
objEmail.From = "from@domain.ru";
objEmail.To = "to@domain.ru";
objEmail.Subject = "Бла-Бла-Бла";
objEmail.Textbody = "Test";
objEmail.AddAttachment("attach.txt");

objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2;
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.domain.ru"
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25;
objEmail.Configuration.Fields.Update();

objEmail.Send();

это на JS но переписать на VBS - легко
Автор: Sk1f
Дата сообщения: 09.06.2006 12:19
Автор: AleXeyS55
Дата сообщения: 09.06.2006 12:26
Oldster
Спасибо Сейчас попробую

Добавлено:
Oldster
А как быть если у меня этот скрипт надо запускать в локальной сети и ссылки типа http://schemas.microsoft.com/cdo/configuration/smtpserverport наверное ничем не помогут? И логин с паролем тоже нужны обязательно для отправки.
Автор: FreemanRU
Дата сообщения: 09.06.2006 13:01
AleXeyS55

Цитата:
ссылки типа

Это не ссылка, а указание на схему CDO. Схема встроена в CDO, который в своб очередь есть на любой машине с ОС начиная с Windows 2000
Автор: Sk1f
Дата сообщения: 13.06.2006 10:44
Всем скорейшего вечера.
И есть вопрос -


Цитата:

...
Function CrFolder(path)

Set objFolder = objFSO.CreateFolder(path)
CreateFolderDemo = objFolder.Path
End Function

RootFolder = "\\test\test_folder\"

oFolder = RootFolder & "" & username
Call CrFolder(oFolder)
...


Дальше еще на эту папку накладываются ограничения по правам доступа с помощью процедуры subinacl и xcacls. Возникает вопрос, так можно сделать?




Автор: urel
Дата сообщения: 13.06.2006 16:16
я делаю так

Цитата:
wshell.Run "cmd.exe /c md " & DirName,0,True
wshell.Run "cmd.exe /c ""echo y| CACLS " & DirName & " /e /p " & objUser.sAMAccountName & ":C",0,False


конечно папку можно и через fso сделать, но как есть =)
Автор: tanay
Дата сообщения: 13.06.2006 16:32
Такой вопрос.
На сервере есть винчестер и RAID-массив.
На винчестере один загрузочный системный раздел.
RAID виден как единый раздел, и подключен как каталог с диску "С", т.е. его как отдельный логический диск не видно.

Стоит вопрос о мониторинге свободного места на разделах.
Скрипт написал, но не знаю как определить размер свободного места на разделе, не подключенном как логический диск.
Что делать? Помогите.

Вариант с назначением буквы диска для раздела не подходит, так как таких серверов очень много.
Автор: GaDiNa
Дата сообщения: 13.06.2006 18:33
Друзья.
Не хочу постить дублей, поэтому прошу взглянуть на это:
" На терминальном сервере, в админской консоли, надо запустить reg-файл под профилем пользователя.. "
" возможность редактровать NTUSER.DAT с командной строки"

http://forum.ru-board.com/topic.cgi?forum=62&topic=7381&start=140#2
Автор: Refugee
Дата сообщения: 13.06.2006 23:06
GaDiNa
запускаешь в цикле по юзерам что-то вроде:
reg LOAD HKU\User path_to_ntuser.dat
regedit /s myreg.reg
reg UNLOAD HKU\User

// в myreg.reg надо [HKEY_USERS\User\....
Пользователи, естественно, должны быть разлогинены.
Автор: urel
Дата сообщения: 14.06.2006 10:19
tanay
Из азбуки:

Цитата:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colDiskDrives = objWMIService.ExecQuery _
("Select * from Win32_PerfFormattedData_PerfDisk_LogicalDisk Where " _
& "Name <> '_Total'")

For Each objDiskDrive in colDiskDrives
Wscript.Echo "Drive Name: " & objDiskDrive.Name
Wscript.Echo "Free Space: " & objDiskDrive.FreeMegabytes
Next
Автор: tanay
Дата сообщения: 14.06.2006 11:29
Спасибо.
Прежде чем спросить, я искал решение, но дело в том, что в Win2k это не работает.

============================
Supported Platforms:
Windows Server 2003, XP - Yes
Windows 2000, NT 4.0, 98 - No

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colDiskDrives = objWMIService.ExecQuery _
("Select * from Win32_PerfFormattedData_PerfDisk_LogicalDisk Where " _
& "Name <> '_Total'")

For Each objDiskDrive in colDiskDrives
Wscript.Echo "Drive Name: " & objDiskDrive.Name
Wscript.Echo "Free Space: " & objDiskDrive.FreeMegabytes
Next
============================

Может, еще будут какие-нибудь соображения?
Автор: FreemanRU
Дата сообщения: 14.06.2006 13:21
tanay
[more=Enumerate Volume Properties]

Код:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Volume")
For Each objItem In colItems
WScript.Echo "Automount: " & objItem.Automount
WScript.Echo "Block Size: " & objItem.BlockSize
WScript.Echo "Capacity: " & objItem.Capacity
WScript.Echo "Caption: " & objItem.Caption
WScript.Echo "Compressed: " & objItem.Compressed
WScript.Echo "Device ID: " & objItem.DeviceID
WScript.Echo "Dirty Bit Set: " & objItem.DirtyBitSet
WScript.Echo "Drive Letter: " & objItem.DriveLetter
WScript.Echo "Drive Type: " & objItem.DriveType
WScript.Echo "File System: " & objItem.FileSystem
WScript.Echo "Free Space: " & objItem.FreeSpace
WScript.Echo "Indexing Enabled: " & objItem.IndexingEnabled
WScript.Echo "Label: " & objItem.Label
WScript.Echo "Maximum File Name Length: " & objItem.MaximumFileNameLength
WScript.Echo "Name: " & objItem.Name
WScript.Echo "Quotas Enabled: " & objItem.QuotasEnabled
WScript.Echo "Quotas Incomplete: " & objItem.QuotasIncomplete
WScript.Echo "Quotas Rebuilding: " & objItem.QuotasRebuilding
WScript.Echo "Serial Number: " & objItem.SerialNumber
WScript.Echo "Supports Disk Quotas: " & objItem.SupportsDiskQuotas
WScript.Echo "Supports File-Based Compression: " & objItem.SupportsFileBasedCompression
WScript.Echo
Next
Автор: Sk1f
Дата сообщения: 15.06.2006 09:07
urel как всегда спасибо .
Автор: rosalin
Дата сообщения: 15.06.2006 14:16
Помгите найти скрип который максимально бы ограничивал пользователя и разрешал бы запускать только программы 1с ,word ,excel
А создаваемые документы можно было бы сохранять на примапеном сетевом диске

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Зеркалирование дисков Win2000


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.