Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Часть 2

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

ShriEkeR (23-05-2011 23:06): Автоматизация администрирования. Часть 3  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114

   

FreemanRU



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
 

                               Коллеги-администраторы  ....  


Часть 2я

Часть 1
Думаю каждый из вас сталкивался с необходимостью выполнять некие несложные рутинные операции, на котороые уходит много драгоценного времени.
 Например, создать определенную структуру каталогов для каждого пользователя домена, изменить некие параметры в профилях всех или части пользователей, изменить полномочия/владельца однотипных файлов в разных каталогах т.д.  
Я, как сисадмин, тоже не раз был вынужден делать все это.  Руками делать это тоскливо и муторно, как вы понимаете. Должен заметить, что по неким "религиозным" убеждениям я всегда старался избегать любых отношений с бейсиком и его производными. Еще мой отец учил меня не иметь с ним никаких дел. Буквально. А теперь я учу своего сына тому же. Но, тем не менее, полностью избежать этого, по всей видимости, невозможно, тем более, что бейсик от M$ сейчас уже далеко не та "лапша", которой он был изначально, а современный структурированный язык, нашедший множество применений. Похоже, что для меня в очередной раз настала пора выучить еще что-то. Знаете, как курильщик много раз безуспешно пытается бросить курить, так и я не раз пытался подступиться к изучению VBScript, но пока никак не одолел. Лень, знаете ли. А инструмент в делах административных был бы весьма пользительный, должен заметить, для быстрого написания всякого рода скриптов.

 
    Внимание   !  !  !  

  • Поскольку данный топ весьма не мал, не забывайте  использовать "версию для печати" для более удобного поиска по теме. А также МЕГА ПОИСКОВИК от NEPa

  • Дабы не раздувать топ,  примеры своих  скриптов  заключаем в тег  "more"

Консольные команды. Командный интерпретатор

Windows Script Host (WSH) &  VBScript  &  JScript


Вышеперечисленные буки можно  взять здесь

    ТOOLS :
  1. Autoit+readme.rus
  2. Scriptologic
  3. AutoMate
  4. KIXTART
  5. nnCron-Планировщик с поддержкой скриптового языка --  РЕКОМЕНДУЮ
  6. WGET, GREP, GETMAIL, BLAT for Windows замечательные консольные утилиты
  7. 4dos/4nt -- отличная замена стандартного коммандного интерпретатора  
  8. JudoScript - java подобный скриптовый язык с исходниками
  9. VBS2EXE - утилита для компиляции vbs и js скриптов в exe выдранная из пакета PrimalScript

    Дружественные темы :
  1. Автоматическая (unattended) установка Windows
  2. Интересные команды при работе с Linux
  3. Отличный сайт по скриптингу, и не только
  4. Использование KIX
  5. Использование WMI
  6. Программирование "удобняшек" на VBScript

 
Подробнее...
Создается по материалам данного топа

 
Надеюсь данная тема будет полезна для Вас.
 Предложения по реформированию шапки принимаю в ПМ Jovanotti

 

Всего записей: 3794 | Зарегистр. 16-07-2004 | Отправлено: 17:27 11-12-2006 | Исправлено: Smitis, 12:30 20-08-2008
el_verdugo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YURETS777, а в каком режиме  происходит установка? Если режим -qn, то попробуйте режим -qb

Всего записей: 121 | Зарегистр. 10-02-2006 | Отправлено: 02:21 10-02-2009
YURETS777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А где этот режим указывается ?
Я MSI поставил как особое, и в разделе модификация указал схему установки, подготовленную в ОРК.
 
   
 

Всего записей: 2161 | Зарегистр. 29-04-2005 | Отправлено: 10:12 10-02-2009
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
YURETS777

после стартапа - поставь на логон ) или если реально хоца посмотреть как идет процесс инст, мона попробовать поиграть с ключами инсталлера, но может не проканать  
 
Добавлено:

Цитата:
el_verdugo

да уж вы батенька реальный геморойщик, ну допустим само событие вы поймаете, но и все: вам самому затем прийдется стирать или переименовывать + это будет очень тормозно, а если запись того чего не нада тоже автоматизированна, то вы просто подвесите комп ЫЦ.
 + аудит и на целый жесткий диск (С: .... Х мона поставить, но опять тормоза.  
Проце настроить правильно права доступа к диску и усе будет хороше ).
 
Добавлено:
а вообще: смотреть за типом создаваемых объектов из проги, лучше всего не скриптовыми методами а откомпилированными прогами лучше всего загружаемыми как дрова, вот тада тормозов не будет. Есть разные проги платные реализ подобный доступ к среде ) - это не дешовый продукт.  
 
Добавлено:
Для обей инфы по безопасности в винде мона посмотреть http://msdn.microsoft.com/en-us/library/aa374860(VS.85).aspx

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 11:05 10-02-2009
YURETS777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так стартап выполняется после MSI-ки, а мне нужно до.
Я уже так пробовал, 20 минут ставится MSI-ка а потом всплывает мой банер из стартапа
Весь смысл банера, чтобы пользователи во время исталляции MSI-ки не вырубали комп, а то потом ручками править реестр геморно
 

Цитата:
после стартапа - поставь на логон ) или если реально хоца посмотреть как идет процесс инст, мона попробовать поиграть с ключами инсталлера, но может не проканать  


Всего записей: 2161 | Зарегистр. 29-04-2005 | Отправлено: 13:00 10-02-2009
el_verdugo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YURETS777, тогда смотри в OPK, где и какие галочки ставил, там должны быть режимы...
YNY, на сайте серого форума http://forum.script-coding.info/viewtopic.php?id=563 есть инфа, как можно следить за ОДНОЙ директорией... а за диском получается нереально...
 
по ссылке выше и еще по другой имеющейся информации пытался сделать постоянную подписку на какое-нибудь событие, но чего-то не получается, где моя ошибка?
 

Код:
Set oWmi = GetObject("WinMgmts:{impersonationLevel=impersonate}!//./root/cimv2")
 
If WScript.Arguments.Count>0 Then
oWmi.Get("__EventFilter.Name='myFileMon'").Delete_
oWmi.Get("CommandLineEventConsumer.Name='myMonEvent'").Delete_
WScript.Echo "Service was Deleted"
WScript.Quit
End If
 
Set oWmi = GetObject("WinMgmts:{impersonationLevel=impersonate}!//./root/cimv2")
Set oFilter = oWmi.Get("__EventFilter").SpawnInstance_
oFilter.Name = "myFileMon"
oFilter.QueryLanguage = "WQL"
oFilter.Query = "SELECT * FROM __InstanceCreationEvent WITHIN 3 WHERE TargetInstance ISA 'Win32_LogicalDisk'"
 
oFilter.Put_ (wbemChangeFlagCreateOrUpdate Or wbemFlagReturnWhenComplete)
 
cmd = "cmd.exe /k echo [%TargetInstance.Caption%]"
Set oConsumer = oWmi.Get("CommandLineEventConsumer").SpawnInstance_
oConsumer.Name="myMonEvent"
oConsumer.WindowTitle="EVENT"
oConsumer.CommandLineTemplate=cmd
WorkingDirectory="C:\\"
oConsumer.RunInteractively=True
oConsumer.Put_ (wbemChangeFlagCreateOrUpdate Or wbemFlagReturnWhenComplete)
 
Set oFilter = oWmi.Get("__EventFilter.Name='myFileMon'")
Set oConsumer = oWmi.Get("CommandLineEventConsumer.Name='myMonEvent'")
 
Set oBinding = oWmi.Get("__FilterToConsumerBinding").SpawnInstance_
oBinding.Filter = oFilter.Path_.Path
oBinding.Consumer = oConsumer.Path_.Path
oBinding.Put_ '(wbemChangeFlagCreateOrUpdate Or wbemFlagReturnWhenComplete)
WScript.Echo "Service was Installed"

Всего записей: 121 | Зарегистр. 10-02-2006 | Отправлено: 03:14 11-02-2009
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Скрипт ищет в реестре по части имени и удаляет в зависимости от того является ли приложение MSI, или EXE uninstaller.
Мозгов не хватает как через строковые переменные проверять, если параметр QuietUninstallString = "/SILENT", то подставлять с QuietUninstallString: unins000.exe" /SILENT (inno), нет такого параметра просто брать из UninstallString?
В данном варианте если не MSI, то постоянно UninstallString=x & " /silent"

Код:
'==========
On Error Resume Next
'Option Explicit
 
Dim strComputer, strMSI, MSIapp, App, AppToRemove, objShell, COMPUTERNAME, objEmail, DisplayN, Uninst, Publ, QuietUninstallString
strComputer = "."
set objShell = CreateObject("WScript.Shell")
 
'========================================
 
AppToRemove = "skype"
 
strMSI = UninstallString(AppToRemove)
 
If strMSI<>"" then
 
    'wscript.echo strMSI
    objShell.Run strMSI    
End If
 
function UninstallString(strProductName)
    dim strComputer, oReg, strKeyPath, arrSubKeys, subkey, x
    Const HKEY_LOCAL_MACHINE = &H80000002
    strComputer = "."
     
    Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
 
    ' Get array of subkeys under uninstall registry entry
    strKeyPath = "SOFTWARE\microsoft\windows\currentversion\uninstall"
    oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
     
    For Each subkey In arrSubKeys
        x=FindUninstallString(subkey, strProductName)
        if x<>"" then
            if LCase(Left(x,7))="msiexec" then
                ' Check msiexec for parameters...
                if InStr(1,x,"/I")>0 then x=Replace(x, "/I","/X")
                if InStr(1,x,"/quiet")<1 then x=x & " /quiet"
                if InStr(1,x,"/noreboot")<1 then x=x & " /noreboot"
            end if
             
            UninstallString=x & " /silent"
            'wscript.echo x  & " /silent"
            exit function
        end if
    Next
     
     
end function
 
function FindUninstallString(strKey, strProductName)
    dim DisplayName, Publisher, UninstallString, search, QuietUninstallString
    On Error Resume Next
    DisplayName=objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strKey & "\DisplayName")
    Publisher=objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strKey & "\Publisher")
    UninstallString=objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strKey & "\UninstallString")
    QuietUninstallString=objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strKey & "\QuietUninstallString")
    search = Instr(1, DisplayName, strProductName, 1)
     
    ' Get uninstall string
    if search>0 Then
        if UninstallString="" then UninstallString="MsiExec.exe /X" & strKey
        FindUninstallString = UninstallString
 
            DisplayN=objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strKey & "\DisplayName")
    Publ=objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strKey & "\Publisher")
    Uninst=objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strKey & "\UninstallString")
 
    end if
end function
 


Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 09:07 11-02-2009 | Исправлено: abasov, 09:17 11-02-2009
YURETS777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Этот вариант не подходит, т.к. используется AccordWinNet и он блокирует вывод сообщений об инсталляции MSI, нужно именно прикрутить банер, чтобы он работал до загрузки MSI
 
el_verdugo

Цитата:
тогда смотри в OPK, где и какие галочки ставил, там должны быть режимы...


Всего записей: 2161 | Зарегистр. 29-04-2005 | Отправлено: 10:04 11-02-2009
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
el_verdugo

1 - мона, но тормоза просто повесят все если не писать сразу на с++ и т.п., причем для  
2 - в твоем примере слеши стоят по ходу не в ту сторону.
 Я же говорил что на скриптах это геморой, т.к. и менее серьёзные задачи порой выполняются не сразу....
 
Добавлено:

Цитата:
YURETS777

обычно при загр компа пишется на прямоугольнике:
"идет применение групповых политик ...."
или
"установка ....."
так что не понятно с какова выключать комп.
Если же ничего не пишется то возмона вы хотели: опубликовать вместо инсталлить или то, что устанавливается имеет файл ответов-редактируйте его, или УСТАНОВЩИК несет ключи в себе и тут ничего не поделать )  
 
 
Добавлено:
раньше приведено много примеров того как читать из реестра ищите!

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 13:06 11-02-2009
YURETS777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В том то и дело что на всех станциях стоят винлогоны и ничего не пишется, надписи "идет применение групповых политик ...."  НЕТ.
На XP-шных проблем нет но их мало, основная масса 2000-ые.
 

Цитата:
обычно при загр компа пишется на прямоугольнике:
"идет применение групповых политик ...."
или
"установка ....."
так что не понятно с какова выключать комп.
Если же ничего не пишется то возмона вы хотели: опубликовать вместо инсталлить или то, что устанавливается имеет файл ответов-редактируйте его, или УСТАНОВЩИК несет ключи в себе и тут ничего не поделать )  
   


Всего записей: 2161 | Зарегистр. 29-04-2005 | Отправлено: 15:08 11-02-2009
el_verdugo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YNY, если под этим

Цитата:
el_verdugo  
2 - в твоем примере слеши стоят по ходу не в ту сторону.

ты имел ввиду эту

Цитата:
Set oWmi = GetObject("WinMgmts:{impersonationLevel=impersonate}!//./root/cimv2")

строку, то здесь все равно, какие слэши ты используешь, прямые или обратные... а если нет, то какую именно строку ты имел ввиду???

Всего записей: 121 | Зарегистр. 10-02-2006 | Отправлено: 02:20 12-02-2009 | Исправлено: el_verdugo, 02:21 12-02-2009
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вторую где set, т.к. обычно везде в другую сторону слеши
если интересуют как на яз высокого уровня производится мониторинг, то см функцию FindFirstChangeNotification  
 
Добавлено:

Цитата:
В том то и дело что на всех станциях

а кокой сервиспак на 2к стоит?
 
Добавлено:
на крайняк, если быстро надо, то тут ранее был вопрос про то как известить пользователей о том, что идет процесс обновления и как вариант было предложено отображать готовую веб страницу в эт время (см стр-ы ранее)

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 09:21 13-02-2009
WSQ2



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кто подскажет, как определить режим работы сетевой карты параметры speed и duplex.
 
Просмотрел всё что нашел в WMI  -  нет такого параметра.

Всего записей: 9 | Зарегистр. 21-11-2008 | Отправлено: 01:02 16-02-2009
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
кто подскажет, как определить режим работы сетевой карты параметры speed и duplex

WSQ2
 
Дело в том что различные адаптеры этот параметр определяют по разному. Т.е. непроходимо адаптировать под свои условия.
для примера:
 

Код:
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
 
' This is the base registry key for NICs
 
strKeyPath = "SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\00"
strValueName = "DriverDesc"
 
'Set up a couter for at least 30 different entries in the key
for strcount=0 to 30
 
if strcount<10 then
strcount="0"&strcount
end if
 
'Read the value of the nic description
 
oReg.GetstringValue HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
'objfile.WriteLine "Device description: " & strValue
 
'compare to identified string values and set value accordingly.
 
if instr(strvalue,"Intel")> 0 And InStr(strValue,"Wireless")<=0 then
strValueName = "SpeedDuplex"
'oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strNICSpeed
WScript.Echo strNICSpeed
Select Case strSpeed
Case 0:
WScript.Echo "Intel NIC with Auto Detect settings"
Case 1:
WScript.Echo "Intel NIC with 10Mbps/Half Duplex settings"
Case 2:
WScript.Echo "Intel NIC with 10Mbps/Full Duplex settings"
Case 3:
WScript.Echo "Intel NIC with 100Mbps/Half Duplex settings"
Case 4:
WScript.Echo "Intel NIC with 100Mbps/Full Duplex settings"
Case 5:
WScript.Echo "Intel NIC with Auto Negotiate 1000Mbps settings"
Case Else
WScript.Echo "Intel NIC with Unknown Setting"
End Select
end If
 
'You might need to change the below as per the above select cases.
 
if instr(strvalue,"Broadcom") then
strValueName = "RequestedMediaType"
''strvalue="0" 'set auto
strValue = "6" 'set 100 full
oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
end if
 
if strvalue = "3Com EtherLink XL 10/100 PCI TX NIC (3C905B-TX)" then
strValueName = "Duplexmode"
''strvalue="Hardware Default" 'set auto
strValue = "Full Duplex" 'set 100 full
oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
strValueName = "MediaSelect"
''strvalue="Auto Select" 'set auto
strValue = "100BaseTx" 'set full
oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
end if
 
 
if strvalue = "3Com EtherLink 10/100 PCI For Complete PC Management NIC (3C905C-TX)" then
strValueName = "media_type"
''strvalue="Autoselect" 'set auto
strValue = "100FULL" 'set 100 full
oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
end if
 
 
if strvalue = "3Com EtherLink XL 10/100 PCI For Complete PC Management NIC (3C905C-TX)" then
strValueName = "Duplexmode"
''strvalue="Hardware Default" 'set auto
strValue = "Full Duplex" 'set 100 full
oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
strValueName = "MediaSelect"
''strvalue="Auto Select" 'set auto
strValue = "100BaseTx" 'set full
oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
end if
 
if strvalue = "3Com 3C918 Integrated Fast Ethernet Controller (3C905B-TX Compatible)" then
strValueName = "Duplexmode"
''strvalue="Hardware Default" 'set auto
strValue = "Full Duplex" 'set 100 full
oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
strValueName = "MediaSelect"
''strvalue="Auto Select" 'set auto
strValue = "100BaseTx" 'set full
oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
end if
 
if strvalue = "Accton EN1207D-TX PCI Fast Ethernet Adapter" then
strValueName = "DuplexMode"
''strvalue="1" 'set auto
strValue = "5" 'set 100 full
oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
end if
 
if strvalue = "Accton EN1207F Series PCI Fast Ethernet Adapter" then
strValueName = "MediaType"
''strvalue="0" 'set auto
strValue = "4" 'set 100 full
oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
end if
 
if strvalue = "Compaq NC3123 Fast Ethernet NIC" then
strValueName = "SpeedDuplex"
''strvalue="0" 'set auto
strValue = "4" 'set 100 full
oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
end if
 
if instr(strvalue,"FE57") then
strValueName = "LinkSelection"
''strvalue="0200" 'set auto
strValue = "0100" 'set 100 full
oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
end if
 
if instr(strvalue,"Realtek RTL8139") then
strValueName = "Duplex Mode"
''strvalue="1" 'set auto
strValue = "5" 'set 100 full
oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
end if
 
if strvalue = "Realtek RTL8139/810x Family Fast Ethernet NIC" then
strValueName = "Duplex Mode"
''strvalue="1" 'set auto
strValue = "5" 'set 100 full
oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
end if
 
 
if instr(strvalue,"VIA") then
strValueName = "ConnectionType"
''strvalue="0" 'set auto
strValue = "2" 'set 100 full
oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
end if
 
if strvalue = "Xircom Ethernet Adapter 10/100" then
strValueName = "LineMode"
''strvalue="0" 'set auto
strValue = "2" 'set 100 full
oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
strValueName = "LineSpeed"
''strvalue="0" 'set auto
strValue = "2" 'set full
oReg.SetStringValue
HKEY_LOCAL_MACHINE,strKeyPath&strcount,strValueName,strValue
end if
 
 
next

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 11:08 16-02-2009
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Никак смртри инфу по Win32_NetworkAdapter
 
 
 
 
 
Добавлено:
-- в WMI я имел ввиду

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 12:31 16-02-2009
YURETS777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SP4
 
А банер-веб-страница грузится после MSI
Мне нужно ее прикрутить к MSI либо сделать так, чтобы MSI ставился после стартапа, но как это сделать пока никто не знает.
 

Цитата:
а кокой сервиспак на 2к стоит?  


Всего записей: 2161 | Зарегистр. 29-04-2005 | Отправлено: 16:04 16-02-2009
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
YURETS777

я часть твоего скрипта с 50 стр поставил на автозапуск (на комп) через ммс (т.к. ща нет сервера под рукой) и страничка появилась до приглашения ввести пароль правда слип в 200 - слишком много, а вот если на логон юзера, то хз что вперед, но тож отображается, посмотри что у тя в boot.ini, в реестре есть возмоность  
 
Не показывать сообщения при запуске и выходе из системы
(XP) [ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System ].  
 
Создайте здесь параметр «DisableStatusMessages» (dword) и присвойте ему значение «1», чтобы не показывать сообщения при запуске и выходе из системы (сохранение параметров, загрузка личных параметров, запуск Windows и т.д.), или значение «0», чтобы показывать сообщения.  
______________
 
Показывать выполняемые команды при запуске и выходе из системы
(XP) [ HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System ].  
 
Создайте в этом ключе параметр с именем «verbosestatus» (dword), или модифицируйте существующий, чтобы показывать выполняемые команды при запуске и выходе из системы. Поможет быстро выяснить, на запуск чего система тратит много времени и если возможно, отключить не нужные сервисы. Значения:  
 
«1» — показывать,  
«0» — стандартная загрузка.  
 
 
Добавлено:
а прикрутить еще проще, посмотри свой скрипт, выложи на шару то че устанавливать и уперед  
 
Добавлено:
DisableStatusMessages реально блокирует сообщения  (сохранение параметров, загрузка личных параметров, запуск Windows, установка... и т.д.) сам проверил в 2000!

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 11:52 17-02-2009 | Исправлено: YNY, 13:18 17-02-2009
testir



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите разобраться .. Нужно в cmd скрипте по маске *.jpg *.mp3 искать файлы на диске и удалять, при этом имеется некий список каталогов, которые трогать нельзя, т.е. ничего в них не удалять а пропускать.. напишите кто знает как сделать такое,
заранее спасибо!

Всего записей: 15 | Зарегистр. 14-02-2007 | Отправлено: 16:04 17-02-2009
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
testir
было уже не раз, ищите. и задача тривиальна
на vbs не подойдет?
 

Код:
Option Explicit
'err.raise 1, "Achtung!", "для запуска закоментировать строку генерации ошибки"
'1) Задать папки для поиска в массив aFolders, например "C:\","E:\"
'2) задать расширения файлов в массив aExtensions, например  "mp3","avi","wma"
'3) задать путь и файл для логирования LogFileName1 , например "d:\temp\i.txt"
'см. дальше по тексту...
 
 
'Сценарий сканирует указанные каталоги и удаляет в нем файлы с указанными расширениями
'9 дек 2004
'
 Dim LogFileName1
 'dim NameFileOfMessage    
 dim TextOfMessage
 
Dim aFolders    'массив каталогов
Dim aExtensions    'массив расширений файлов
 
dim file1
dim FileOfMessage
 
'1) Задать папки для поиска в массив aFolders, например aFolders = Array("C:\","E:\")
aFolders = Array("D:\")
 
'2) задать расширения файлов в массив aExtensions, например  aExtensions = Array( "mp3","avi","wma")
aExtensions = Array(  "id","nsf")
 
Dim fso
 
 
'3) задать путь и файл для логирования LogFileName1 , например LogFileName1 = CStr("d:\temp\i.txt")
LogFileName1 = CStr("c:\Log_Delete_Incoming.txt")
 
'
'4) пункт убран
'
 
'5)текст сообщения, которое будет в файле в папке где был удалён файл
TextOfMessage = CStr("Администрация предупреждает: ")
 
 
Set fso = CreateObject("Scripting.FileSystemObject")
Set file1 = fso.OpenTextFile(LogFileName1,8,true)
 
Dim i
file1.WriteLine "----------- начало поиска --------------" & cstr(Date()) & "|" & cstr(Time())  
For i = 0 To UBound(aFolders)  
   If fso.FolderExists(aFolders(i)) Then
 on error resume next
 Err.Clear
 
     Dim folder
     Set folder = fso.GetFolder(aFolders(i))
     Dim file
     For Each file In folder.Files
   if Err then  
     file1.WriteLine "---> " & cstr(Date()) & "|" & cstr(Time()) &"!!! ->!Ошибка при доступе к папке!<- " &folder  
  exit for  
 End If
       If IsKnowExtensions(file) Then  
 
        Set FileOfMessage = fso.OpenTextFile(folder+"\"+file.name+".txt",8,true)
        FileOfMessage.WriteLine (TextOfMessage)
        FileOfMessage.WriteLine ("файл '"& file.name & "' изъят до выяснения обстоятельств...")
        FileOfMessage.close
        file.Delete True
       end if
   
 
     Next
     dim subFolder
     For Each subFolder In folder.SubFolders
  if Err then  
  exit for  
end if
       ScanSubFolder subFolder
     Next
 
 
   end if
Next
file1.WriteLine "----------- конец поиска --------------" & cstr(Date()) & "|" & cstr(Time())  
file1.close
 
 
Function IsKnowExtensions(file)
    Dim strExtensions
    strExtensions = fso.GetExtensionName(file.Path)
    Dim i
    For i = 0 To UBound(aExtensions) '- 1
        If ucase(strExtensions) = ucase(aExtensions(i)) Then
            'msgbox "!"
            file1.WriteLine (cstr(Date()) & "|" & cstr(Time()) &" был Удалён : " & file.Path  )  
 
            IsKnowExtensions = True
            Exit Function
        End If
    Next
    IsKnowExtensions = False
End Function
 
 
Sub ScanSubFolder(folder)
 
 Dim file
 on error resume next
 Err.Clear
 For Each file In folder.Files
    if Err then  
      file1.WriteLine "---> " & cstr(Date()) & "|" & cstr(Time()) &"!!! ->!Ошибка при доступе к папке!<- " &folder
 Err.Clear  
      exit sub
    end if    
    If IsKnowExtensions(file) Then  
 
      Set FileOfMessage = fso.OpenTextFile(folder+"\"+file.name+".txt",8,true)
      FileOfMessage.WriteLine (TextOfMessage)
      FileOfMessage.WriteLine ("файл '"& file.name & "' изъят до выяснения обстоятельств...")
      FileOfMessage.close
      file.Delete true
    end if
 Next
 Dim subFolder
 For Each subFolder In folder.SubFolders
   ScanSubFolder subFolder
 Next
End Sub

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 20:31 17-02-2009 | Исправлено: abasov, 20:48 17-02-2009
testir



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
abasov
На vbs тоже можно, нужно чтобы поиск был и по вложенным каталогам, и самое главное условие, есть каталоги, которые трогать нельзя и их нужно пропускать.
т.е. задали c:\temp делаем поиск в нем и по всем вложенным каталогам, в нем находятся каталоги, которые нужно пропускать..
В приведенном Вами скрипте нет такого исключения...
поиском уже искал ничего похожего не нашлось (
единственное что нашел  
Подробнее...
но тут есть проблема, не видятся файлы с пробелами в названии файлов, и даже файлы без пробелов не удаляются(

Всего записей: 15 | Зарегистр. 14-02-2007 | Отправлено: 10:22 18-02-2009
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
testir
 

Код:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
("SELECT * FROM CIM_DataFile WHERE Extension = 'log' and drive = 'u:' and path <> '\\любимая папка\\' ") 'и через WQL и с коленки / или:  and not path like '\\%любим%\\'
For Each objFile in colFiles
'objFile.Delete
 
 wscript.Echo objFile.name
Next

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 18:37 18-02-2009 | Исправлено: abasov, 19:01 18-02-2009
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Часть 2
ShriEkeR (23-05-2011 23:06): Автоматизация администрирования. Часть 3


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru