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

» Автоматизация администрирования. Часть 2

Автор: YNY
Дата сообщения: 08.05.2008 07:22

Цитата:
скрипт ничего не выводит.

Цитата:
YURETS777

, смотри содержимое переменной sValue !



Добавлено:

Цитата:
Vetkol

ексли у тя сеть валится и ты думанещь что XP гонит, то юзай Пингвинятину.
а если в че, то смотри как службы воркают и не глючит ли "Обозреватель компов (Computer Browser)" и подобные ей.
Снач настройки проверь!!!

Добавлено:

Цитата:
Cyril Konst


Цитата:
При подключении через терминал

кокой именно терминал, точней терминальный клиент, если стандартный ремот десктоп винды, то ...
Автор: YURETS777
Дата сообщения: 08.05.2008 22:21
YNY

Попробовал через WMI, очень понравилось как оно работает но выводит только софт, проинсталлированный MSI-ками, половина софта не видна.
Как при помощи WMI вывести весь софт?

скрипт такой:

Set colSoftware = objWMIService.ExecQuery ("Select * from Win32_Product")
For Each objSoftware in colSoftware
objTextFile.WriteLine objSoftware.Caption & vbtab & objSoftware.Vendor & vbtab & objSoftware.Version & vbtab & objSoftware.InstallDate & vbtab & objSoftware.InstallLocation & vbtab & objSoftware.PackageCache
Next
Автор: Oldster
Дата сообщения: 10.05.2008 10:35
Господа, есть задача:
как узнать серийные номера в установленной винде и M$ офисе? Про существование программ, которые это делают я знаю, но это не вариант. Надо удаленно запустить их на филиалах и сохранить (отправить по почте). Желательно скриптом.
Автор: gap5
Дата сообщения: 11.05.2008 10:05
Можно как то передать юзеру сообщение от имени system?
Т.е., от имени системы стартует vbs скрипт, по итогам работы выдается MsgBox, но юзер его не видит, видит только тот юзер, под чьим именем стартовал скрипт.
Автор: YNY
Дата сообщения: 12.05.2008 12:18

Цитата:
YURETS777

доработай вот это (вр небыло самому доделать)
'________________________________________________

const HKEY_LOCAL_MACHINE = &H80000002
const REG_SZ = 1
const REG_EXPAND_SZ = 2
const REG_BINARY = 3
const REG_DWORD = 4
const REG_MULTI_SZ = 7
strComputer = "."
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")

strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"

objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys

WScript.Echo "Subkeys under " & "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"

For Each subkey In arrSubKeys
WScript.Echo subkey
    strKeyPath2 = strKeyPath &"\"& subkey
        objReg.EnumValues HKEY_LOCAL_MACHINE, strKeyPath2, arrValueNames, arrValueTypes
        For I=0 To UBound(arrValueNames)
            WScript.Echo "Value Name: " & arrValueNames(I)
            Select Case arrValueTypes(I)
                 Case REG_SZ
                     WScript.Echo "Data Type: String"
                 Case REG_EXPAND_SZ
                     WScript.Echo "Data Type: Expanded String"
                Case REG_BINARY
                     WScript.Echo "Data Type: Binary"
                Case REG_DWORD
                    WScript.Echo "Data Type: DWORD"
                Case REG_MULTI_SZ
                    WScript.Echo "Data Type: Multi String"
            End Select
'_________________________________________________
Автор: reaper
Дата сообщения: 12.05.2008 14:44
подскажите, а есть ли софт, который постоянно мониторит запущенные процессы и, сравнивая с белым списком, извещает по почте или еще как админа при запуске чего-то неизвестного?
Автор: Vetkol
Дата сообщения: 12.05.2008 16:42
YNY

пингвинов для юзеров? Вы, никак, изволите смеяться? ) Им даже солнце особо не поставишь, вопить будут ))

Кроме того, тут сочетание Интел-Асер-Вынь играет Причём, больше первые двое, скорее всего, чудят. И я просил тут помощи В НАПИСАНИИ по алгоритму решения проблемы СКРИПТА.
С настройками абсолютно точно порядок Всё по дефолту. И по дефолту всё изначально работает.
Автор: YURETS777
Дата сообщения: 12.05.2008 16:47
YNY

Скрипт по разбору UnInstall я сделал.
Теперь задача - как сделать сортировку.


Код:

strValueName = "DisplayName"
strValueName2 = "DisplayVersion"
strValueName3 = "UninstallString"
strValueName4 = "SystemComponent"
strValueName5 = "ParentDisplayName"

oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
strInfo=strInfo + vbCrLf+ "Список установленного ПО Полный список !!!"
strInfo=strInfo + vbCrLf+ "===================="
For Each subkey In arrSubKeys
if Left(subkey,2) <> "KB" Then
sbbkey = strKeyPath & "\" & subkey
intRes = oReg.GetDWORDValue(HKEY_LOCAL_MACHINE,sbbkey,strValueName4,BinarValue)
intRes2 = oReg.GetStringValue(HKEY_LOCAL_MACHINE,sbbkey,strValueName5,strValue2)
if (intRes <> 0) and (intRes2 <> 0) Then
oReg.GetStringValue HKEY_LOCAL_MACHINE,sbbkey,strValueName,strValue
if strValue <> nul then
strInfo=strInfo + vbCrLf + strValue
oReg.GetStringValue HKEY_LOCAL_MACHINE,sbbkey,strValueName2,strValue
if strValue <> nul then
strInfo=strInfo + " |-=Версия-> " + strValue
else
strInfo=strInfo + " |-=Версия->None"
end if
oReg.GetStringValue HKEY_LOCAL_MACHINE,sbbkey,strValueName3,strValue
if strValue <> nul then
strInfo=strInfo + " |-=Строка удаления-> " + strValue
else
strInfo=strInfo + " |-=Строка удаления->None "
end if
else
if BinarValue <> 1 Then
objTextFile.WriteLine "Системный компонент не 1 ->" & sbbkey
end if
end if
end if

Автор: YNY
Дата сообщения: 13.05.2008 06:43

Цитата:
Теперь задача - как сделать сортировку.

Эээээ, какова рода сортировку если не трудно?
В общих чертах: пиши сначало в массив, там отсотрируй как хош, азатем в файл пиши )

Добавлено:
вообще-то все For... закрываются Next (я сам не скопировал-поторопился)
вообще -то GetDWORDValue и GetStringValue, и т.п. лучше бы ты в селекте использовал-смотрится лучше, а резултат вконце цикла "For Each subkey In arrSubKeys" пиши в массив.
Автор: YURETS777
Дата сообщения: 13.05.2008 08:37
Нужна сортировка по "DisplayName"
А массив содержит только название раздела.
Автор: YNY
Дата сообщения: 13.05.2008 09:15

Цитата:
А массив содержит

а твой собственный массив может что хочешь содержать
dim MySoftListArr()
...
Redim MySoftListArr(Ubound(arrSubKeys),4)
For Each subkey In arrSubKeys
n=0
...
'вконце цикла "For Each subkey In arrSubKeys" пишиv в массив

MySoftListArr(n,0)=... 'DisplayName
MySoftListArr(n,1)=... 'DisplayVersion
...
MySoftListArr(n,4)=... 'ParentDisplayName
n=n+1
Next
' затем делаешь сортировку ...
' затем пишешь в файл
(учше 1 скрипт для всего софта)
Автор: YNY
Дата сообщения: 14.05.2008 04:22
если в "subkey" численные индексы, то n мона не испть )
Автор: YURETS777
Дата сообщения: 14.05.2008 16:22
Еще один вопрос по скриптам
Имеется скрипт, который прекрасно работает на XP SP3, но вываливается на ошибку на Windows 2000 SP4 RU

Ошибка такая:
Невозможно создание объекта контейнером ActiveX: 'Shell.LocalMachine'

Скрипт такой:

'on error resume next
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Dim WshShell
Dim objComputer
Dim strComputer
Dim objUser
strUserName = "Pupkin"
strPassword = "123"


    On Error Resume Next

    Set objComputer = CreateObject("Shell.LocalMachine")
        strComputer = objComputer.MachineName
    Set objComputer = Nothing

    Set objUser = GetObject("WinNT://" & strComputer & "/" & strUserName & ", user")
        objUser.SetPassword strPassword
        objUser.SetInfo
    Set objUser = Nothing

    If Err.Number Then
        WScript.Echo "Ошибка №" & Err.Number & " , " & Err.Description
        MyErr = Err.Number
        Err.Clear
    End If

Автор: valhalla
Дата сообщения: 14.05.2008 19:14
Народ, что можете предложить по такой задаче: поиск в doc-файле определенного слова (словосочетания), в куске текста, что находится перед этим словом - поиск фраз из массива?
Может прога какая это умеет или есть готовый скрипт?
P.S. Это все из командной строки или простым запуском программы (скрипта).
Автор: Oldster
Дата сообщения: 14.05.2008 20:14
valhalla
первое что приходит на ум:
скриптом открываем док., и там делаем поиск... в принцмпе можно накидать скрипт.

Добавлено:
Вот для начала:
http://www.whatis.ru/reg/reg_s9.shtml
Автор: aleksiom
Дата сообщения: 14.05.2008 21:04
YURETS777

Цитата:
Невозможно создание объекта контейнером ActiveX: 'Shell.LocalMachine'

http://forum.ru-board.com/topic.cgi?forum=8&topic=1908&start=1720
Автор: Bugavka
Дата сообщения: 15.05.2008 07:39
Профи, помогите. Не могу установить Дубльгис 3.0 через ГП. Либо оболочка ставится отдельно от базы, а потом приходиться дописывать установку базы в политику, либо никак ): Происходит вроде из-за того что база не дожидается установки оболочки. Как заставить их запуститься последовательно?
Автор: YNY
Дата сообщения: 16.05.2008 04:32

Цитата:
YURETS777

Set objComputer = CreateObject("Shell.LocalMachine")

я просмотрел все св-ва объекта Shell и негде LocalMachine не нашел
под ХР работае ск всего т.к. установлен какой-то фикс или .NetFramework
согласно источника
http://www.microsoft.com/technet/scriptcenter/scripts/desktop/info/default.mspx?mfr=true
под 2К и не должно воркать )

Добавлено:
//
http://www.microsoft.com/technet/scriptcenter/guide/sas_wsh_crve.mspx?mfr=true

For example, this WSH script uses ADSI to create a user account in Active Directory:

Set objOU = Wscript.GetObject("LDAP://OU=management,dc=fabrikam,dc=com")
Set objUser = objOU.Create("User", "cn=MyerKen")
objUser.Put "sAMAccountName", "myerken"
objUser.SetInfo

\\
Автор: YURETS777
Дата сообщения: 16.05.2008 08:00
Мне не нужно в AD, мне нужно поменять локальную учетную запись на рабочей станции, а входит она в домен или нет это не важно.
Автор: avoronov
Дата сообщения: 16.05.2008 09:48
ребята. Есть проблема, суть такова, что необходимо заменить ipconfig из CMD на скрипт, выдающий все IP адреса у имеющихся Ethernet адаптеров.
Вот написал скрипт, который выводит в окно IE, но почему то он задваивает, у некторых затраивает значения и т.п. одного и тоже же адаптера. Что не так, думаю, что с циклом, но так все в порядке
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set IPConfigSet = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE")
Set objExplorer = WScript.CreateObject("InternetExplorer.Application")
objExplorer.Navigate "about:blank "
objExplorer.ToolBar = 0
objExplorer.StatusBar = 0
objExplorer.Width = 700
objExplorer.Height = 300
objExplorer.Left = 0
objExplorer.Top = 0
Do While (objExplorer.Busy)
Wscript.Sleep 200
Loop
objExplorer.Visible = 1
objExplorer.Document.Write "Ваш IP адрес:<br>"

For Each IPConfig in IPConfigSet
If Not IsNull(IPConfig.IPAddress) Then
For Each IPAddress In IPConfig.IPAddress
objExplorer.Document.Write "<b style='color:red'>IP:"& IPAddress & "</b><br>"
WScript.Sleep 500


Next
End If
Next

Вот подумал еще, что может данные берутся еще и из реестра.. может там еще какие-либо конфигурации..
Автор: PIL123
Дата сообщения: 17.05.2008 16:38
Коллеги, простой вопрос, может знает кто навскидку как он решается.
Необходимо пробежаться по определённой OU (и по всем OU внутри неё) в AD и выгрузить списком в текстовичёк User Logon Name всего того, что встретиться на пути.

Помогите, пожалуйста, кто знает как делать!

Добавлено:
Коллеги, помогите решить простую задачу: нужно пробежаться по определённой OU с пользователями (и всех вложенных в неё OU) и выгрузить в тектовичёк все имеющиеся в ней User Logon Name вида:

User1@Domain.Ru
User2@Domain.Ru
Автор: jONES1979
Дата сообщения: 19.05.2008 08:44
YURETS777
тебе зачем этот Shell.LocalMachine ? Чтобы узнать имя компа? Для этого полно других вариантов. К примеру:


Код:
Set objNetwork = CreateObject("Wscript.Network")
txtdoc_Comp.InnerHTML = objNetwork.ComputerName ' !!!
txtdoc_Domen.InnerHTML = objNetwork.UserDomain
txtdoc_User.InnerHTML = objNetwork.UserName
Автор: YNY
Дата сообщения: 19.05.2008 09:06

Цитата:
PIL123

ответ нв вскидку: тут (на форуме) был подобный скрипт, так что ишите и обрящите!
Автор: avoronov
Дата сообщения: 19.05.2008 09:08

Цитата:
PIL123

http://forum.script-coding.info/viewtopic.php?id=679
http://forum.script-coding.info/viewtopic.php?id=920
Думаю это как раз для тебя. Готовое
Автор: sVx
Дата сообщения: 19.05.2008 10:49
PIL123

Цитата:
нужно пробежаться по определённой OU с пользователями (и всех вложенных в неё OU) и выгрузить в тектовичёк все имеющиеся в ней User Logon Name вида:

User1@Domain.Ru
User2@Domain.Ru


Код: dsquery user [начальный_узел] -o upn -scope subtree -limit [число_объектов] > %systemdrive%\UserLogonName.txt
Автор: Serg41
Дата сообщения: 20.05.2008 05:24
Уважаемые коллеги, подскажите, реально ли это и как это сделать:

есть файл сервер (server1), он меняется на другой(server2). Нужно незаметно все подменить у пользователей. С сетевыми дисками проблем нет, но есть беда с ярлыками и Excel файлами. Вот вопросик, как:
- поменять на компьютерах пользователей ярлыки с \\server1\share\... на \\server2\share\...
- и (самое важное) в Excel файлах поменять ссылки на файлах (в формулах)

Заранее спасибо.
Автор: kevinkf
Дата сообщения: 20.05.2008 05:49
Serg41
по поводу как менять в самих файлах и ссылках не подскажу.
Но я посоветую менять не на server2 , а поднять DFS (Распределенная файловая система), чтоб потом небыло проблем в дальнейшем.
Автор: YNY
Дата сообщения: 20.05.2008 08:01

Цитата:
но почему то он задваивает,

Цитата:
avoronov


у меня все нормально показвыает, если у меня есть виртуальные машины то и их IP светит, причем даже если не запущены, т.к. вкл виртуальные сетев адаптеры

Добавлено:

Цитата:
Serg41

Цитата:
- поменять на компьютерах пользователей ярлыки с ...



Allows you to create a shortcut programmatically.
<Creates a new shortcut, or opens an existing shortcut.>
<object.CreateShortcut(strPathname) >

Example
The following example demonstrates the creation of a shortcut to the script being run:

set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")

oShellLink.TargetPath = WScript.ScriptFullName

oShellLink.WindowStyle = 1
oShellLink.Hotkey = "CTRL+SHIFT+F"
oShellLink.IconLocation = "notepad.exe, 0"
oShellLink.Description = "Shortcut Script"

oShellLink.WorkingDirectory = strDesktop

oShellLink.Save

Автор: YURETS777
Дата сообщения: 21.05.2008 18:45
Как при помощи VBS сделать Вывод сообщения без кнопки.

типа такого

Код:

    for i=1 to 29
        Installed=""
        Installed = MyShell.RegRead(keypath & HotFixName(i) & "\Installed")
        if (Installed<>"1") then
     WaitMessage "ВНИМАНИЕ!!! ИДЕТ УСТАНОВКА ОБНОВЛЕНИЙ, ПОЖАЛУЙСТА НЕ ВЫКЛЮЧАЙТЕ КОМПЬЮТЕР !!!" & "Установка Обновления" & i & " из 29"
qwe=MyShell.Run(PatchPath & np(i) & " /quiet /norestart",0,True)
        end if     
next

Автор: lavren
Дата сообщения: 22.05.2008 09:41
Многоуважаемый ALL, помогите решить задачу:
Необходимо удалять ветки реестра в некоторых компьютеров в сети. Желательно чтобы список компов был отдельно (припустим в текстовом файле) и ветки реестра отдельно.
regedit.exe может импортировать файлы *.reg с командами удаления веток и в графическом режиме коннектиться к реестрам на других компах, а как реализовать это в батнике?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576

Предыдущая тема: BackUp Win2003Serer


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