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

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

Автор: YNY
Дата сообщения: 23.04.2007 12:54

Цитата:
Граждане! Есть проблема:
Требуется установить прогу (ПЕРЕсобранную) и, чтоб не париться с настройкой решено было внести изменения в реестр прямо при инсталле. Но эта <%%!Е;!!> часть настроек пишет в sID (куст типа HKU\S-1-5-21-...


Вообще-то есть возможность внести изменения для текущего юзера и без вычисления SID:
читаем данные в реестре причем в зависимости от типа данных GetDWORDValue либо GetStringValue, а для записи вместо Get пишем Set

sub A()
const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set oReg=GetObject( "winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")

strKeyPath = "Console"
strValueName = "HistoryBufferSize"

'oReg. HKEY_CURRENT_USER,strKeyPath , strValueName, sValue
oReg.GetDWORDValue _
HKEY_CURRENT_USER,strKeyPath,strValueName,dwValue
WScript.Echo "Current History Buffer Size: " & dwValue
end sub


Добавлено:

Цитата:
Для WinXP есть класс Win32_UTCTime, но

мона попробовать нижеприведённый код а затем вырезать что нада:
Visual Basic Copy Code
' English (US) format.
Dim TestDate As DateTime = #3/12/1999#

' FormatDateTime returns "Friday, March 12, 1999".
' The time information is neutral (00:00:00) and therefore suppressed.
Dim TestString As String = FormatDateTime(TestDate, DateFormat.LongDate)

или

Visual Basic Copy Code

Dim oldDate As Date
Dim oldWeekDayName As String
oldDate = #2/12/1969#
oldWeekDayName = WeekdayName(Weekday(oldDate))
' oldWeekDayName now contains "Wednesday".


А ваще-то ставьте MSDN и вопросы сами отпадут!!!
Автор: Leuda
Дата сообщения: 23.04.2007 13:34
Добрый день.

Как остановить выполнение *.bat файла на определенное количество времени например 30 секунд и продолжить дальше выполнение.
Заранее спс
Автор: Etalon
Дата сообщения: 23.04.2007 17:05
Leuda

Код:
ping -n 30 localhost
Автор: FreemanRU
Дата сообщения: 23.04.2007 17:46
Etalon

Цитата:
ping -n 30 localhost

Сильно (без шуток, очень оригинально)!!!!!! Чисто админское решение!!!!

Leuda
Есть еще sleep.exe, поищи в гугле.
Автор: Etalon
Дата сообщения: 24.04.2007 07:48
FreemanRU
Если использовать, для паузы в .bat файлах, только встроенные средства
То кроме пинга ничего лучше не придумаешь
Автор: YNY
Дата сообщения: 24.04.2007 07:57

Цитата:
Как остановить выполнение *.bat файла на определенное количество времени например 30 секунд и продолжить дальше выполнение.

может не ждать 30 сек или еще скоко-то вр?
Запускает команду, стоящую за символом &&, только если команда, стоящая перед этим символом была выполнена успешно. В Cmd.exe выполняется первая команда. Вторая команда выполняется, только если первая была выполнена успешно.
Автор: Leuda
Дата сообщения: 24.04.2007 08:45
Etalon
ping -n 30 localhost
Да прикольная тема, мне тоже понравилось такое решение.
Автор: vlazari
Дата сообщения: 24.04.2007 08:47
а что "sleep.exe" не подходит?
Автор: Smitis
Дата сообщения: 24.04.2007 12:09
Leuda

Цитата:
Как остановить выполнение *.bat файла на определенное количество времени например 30 секунд и продолжить дальше выполнение.


Цитата:
Если использовать, для паузы в .bat файлах, только встроенные средства
То кроме пинга ничего лучше не придумаешь

Хуже ping-а для паузы трудно придумать - нестабильно, может вообще не сработать.
Зато можно так:

Код:
@set @x=0 /*
@echo off

echo PAUSE BEGIN
:: Сдесь делаем паузу 30 секунды
cscript //nologo /e:jscript "%~f0" 30000
echo PAUSE END

:: Конец CMD-части
exit /b
*/
// JS-часть
WScript.Sleep(WScript.Arguments(0))
Автор: Etalon
Дата сообщения: 24.04.2007 15:11
Smitis
Вам виднее
Автор: mozers
Дата сообщения: 25.04.2007 15:24
ALL
Можно ли работать с WMI из JS скрипта?
Если - ДА, то малюсенький пример, pls.
Если - НЕТ, то почему?
Автор: Bugriy
Дата сообщения: 25.04.2007 16:52
Нужно узнать какие пермишены у каких юзеров есть на папку. Причём интересуют и те пермишены, которые во вкладке Advanced. Как это сделать? На скриптах, .net, тулза может быть какая-нибудь есть? Я пока не нашёл способа заглядывать в Advanced. Помогите люди добрые!
Автор: Etalon
Дата сообщения: 25.04.2007 18:52
mozers

Код:
Листинг 5. JScript

var wbemFlagReturnImmediately = 0x10;
var wbemFlagForwardOnly = 0x20;
var strComputer = ".";
var objWMIService = GetObject("winmgmts:\\\\" + strComputer + "\\root\\CIMV2");

var colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly);

var enumItems = new Enumerator(colItems);

for (; !enumItems.atEnd(); enumItems.moveNext())
{
var objItem = enumItems.item();
WScript.Echo("-----------------------------------");
WScript.Echo("Win32_NetworkAdapterConfiguration instance");
WScript.Echo("-----------------------------------");
try { WScript.Echo("IPAddress: " + (objItem.IPAddress.toArray()).join(",")); }
catch(e) { WScript.Echo("IPAddress: null"); }
}
Автор: mozers
Дата сообщения: 25.04.2007 22:53
Etalon
Работает! Класс! А я как то раз попробувал - неполучилось - решил что низзя - сделал вызов vbs скрипта из js - так и мучался до сегодняшнего дня ... СПАСИБО
Автор: Etalon
Дата сообщения: 26.04.2007 07:36
mozers
WMI можно использовать с любым языком программирования. Просто большинство примеров написано на VBScript

http://www.samag.ru/art/02.2006/02.2006_02.html
Автор: coolpunk
Дата сообщения: 26.04.2007 11:36

Цитата:
[/q][q]АНАХАЙМ??? доступ на чтение и усе эсли боишся что потрут

Я не боюсь что потрут, просто на винте есть секретная инфа, как убить винт придумали, а как удалить ссылки из системы нет! вот и спрашиваю, но чего-то ответов нет, ни простых ни сложных.
Автор: Sk1f
Дата сообщения: 27.04.2007 06:23
Bugriy, ищи на microsofte scriipt - xcacls.vbs (именно скрипт)


Автор: WSQ
Дата сообщения: 27.04.2007 13:25
вопрос: как настроить автоматическое копирование с ограниченной скоростью.
Нужно для обновление по выделенным линиям крупных архивов с документацией - качать может по полдня, а работе помешать не должно.

Пока видел нашел:
- в Тотал коммандер и Far есть копирование с органичением скорости. Но надо запукать руками. А хотелось бы один значек - "запустить обновление"...
- некоторые файрволы могут ограничть скорость (net-peek например), но лишнюю платную прогу ставить не хочется...
Автор: JcVai
Дата сообщения: 27.04.2007 18:13
Если стандартными средствами, то IIS + ftp.exe + cmd
Автор: pe3yc
Дата сообщения: 27.04.2007 18:47

Цитата:
вопрос: как настроить автоматическое копирование с ограниченной скоростью.

Ответ: Настраиваешь ftp сервер (тот же serv-u) на сервер на который нужно копировать данные. На юзере ставишь лимит на bandwidth, скажем 50 кб на своего юзера. На машине-клиенте настраиваешь софт, который может копировать файлы на ftp автоматом. Хорошо работает automate. Все. Софт может быть конечно же другой, привел одни из лучших под винды. У меня работает именно такая цепочка, работает стабильно.
Автор: YNY
Дата сообщения: 28.04.2007 05:35

Цитата:
Цитата:

Цитата:
АНАХАЙМ??? доступ на чтение и усе эсли боишся что потрут

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


если вы можете пойти на то чтобы убить винт то на кой вам удалять ссылки?

чтобы найти см ниже, а чтоб писать см ссылки на батники в заголовке (в топе)
FOR /F "usebackq tokens=* delims==" %%i IN (`REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion`) do echo %%i

Добавлено:
http://forum.ru-board.com/topic.cgi?forum=5&topic=4582&start=120#lt

Добавлено:

Цитата:
Как остановить выполнение *.bat файла на определенное количество времени например 30 секунд и продолжить...

вот кусочек который вы можете использовать доработав его:
@echo off
cls
set k=%time%
echo %k%
set k1=%k:~6%
set /a f=%k1% - %k1:~-2%
echo %f%

Добавлено:
Удаляет раздел или записи реестра.

Синтаксис
reg delete имя_раздела [{/v имя_записи|/ve|/va}] [/f]

Параметры
имя_раздела
Задает полный путь к разделу. Для удаленных компьютеров перед путем к разделу в формате \\имя_компьютера\путь_к_подразделу вставляется имя компьютера. Если параметр имя_компьютера не задан, операция по умолчанию выполняется на локальном компьютере. Путь следует начинать с соответствующего поддерева. Допустимыми поддеревьями являются HKLM, HKCU, HKCR, HKU и HKCC.
/v имя_записи
Удаляет запись раздела. Если запись не задана, то будут удалены все записи и вложенные разделы данного раздела.
/ve
Задает для удаления только те записи, которые не имеют значения.
/va
Удаляет все записи заданного раздела. Данный параметр не удаляет вложенные разделы в заданном разделе.
/f
Удаляет существующий раздел реестра или запись без запроса на подтверждение.
/?
Вывод справки в командной строке.

1-касяк 0-все ок

Добавлено:

Цитата:
Нужно узнать какие пермишены у каких юзеров есть на папку. Причём интересуют и те пермишены, которые во вкладке Advanced. Как это сделать? На скриптах, .net, тулза может быть какая-нибудь есть? Я пока не нашёл способа заглядывать в Advanced. Помогите люди добрые!


в комманндной строке:

Cacls
Просмотр или изменение файлов избирательных таблиц управления доступом (DACL).

Синтаксис
cacls имя_файла [/t] [/e] [/c] [/g пользователь:разрешение] [/r пользователь [...]] [/p пользователь:разрешение [...]] [/d пользователь [...]]
подробней мона увидеть в справке по винде



Автор: ShafMAN
Дата сообщения: 30.04.2007 06:35
Есть метод SendKeys, который имитирует нажатие клавиш. А как можно нажатие мышки передать?

И ещё может кто знает, как общую громкость можно регулировать?
Автор: rosalin
Дата сообщения: 03.05.2007 14:23
Ребята ищу скрипт СРОЧНО

Для переименовывания имени компьютера


и папки профиля пользователя на локальном компьютере в сети с доменом

т.к имя папки профиля в свое время завязал по фамилии

Автор: PerpleXOR
Дата сообщения: 03.05.2007 17:41
взял пример скрипта с сайта, который копирует файлы из одной паки в другую, но он почему-то не копирует папки и содержащиеся в них файлы. Что надо дописать, чтобы он папки тоже обрабатывал?


Код: Set fso = CreateObject("Scripting.FileSystemObject")
Set UFolder = fso.getfolder("E:\")
set UFile = UFolder.files
Set OFolder = fso.getfolder("C:\Folder2")
Set OFile = OFolder.files

For Each f1 in UFile
FileToCopy = UFolder&"\"&f1.Name
fso.CopyFile FileToCopy, OFolder&"\"&f1.Name
Next
Автор: ShafMAN
Дата сообщения: 03.05.2007 20:54
PerpleXOR

Код:
Set fso = CreateObject("Scripting.FileSystemObject")
Set UFolder = fso.getfolder("E:\")
set UFile = UFolder.files
set USubFolder = UFolder.SubFolders
Set OFolder = fso.getfolder("C:\Folder2")
Set OFile = OFolder.files

For Each f1 in UFile
FileToCopy = UFolder&"\"&f1.Name
fso.CopyFile FileToCopy, OFolder&"\"&f1.Name
Next

For Each f2 in USubFolder
FolderToCopy = UFolder&"\"&f2.Name
fso.CopyFolder FolderToCopy , OFolder&"\"&f2.Name
Next
Автор: BULLDOG
Дата сообщения: 07.05.2007 11:06
Народ, нужно удалит программу Novell Client для Windows.
Есть вот такой скрипт:

Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run ("%SystemRoot%\system32\rundll32 nwsetup.dll NWUninstallClient ")
WScript.Sleep(300)
WshShell.AppActivate("Деинсталляция Novell Client для Windows")
WScript.Sleep(300)
WshShell.SendKeys("{ENTER}")

1. Запускается командная строка на удаление программы. Вылетает не активное окно с подтверждением удаления и кнопками "Да" и "Нет"
2. Окно делается активным
3. Нажимается ENTER (Кнопка ДА в фокусе по умолчанию)

Но одна беда, пользователь с ограниченными правами не может удалять программы.
Как модернизировать скрипт для запуска командной строки от имени администратора?
Автор: Etalon
Дата сообщения: 08.05.2007 12:15
BULLDOG

Код:
$strComputer = "."

$colItems = get-wmiobject -class "Win32_Product" -namespace "root\CIMV2" `
-computername $strComputer

foreach ($objItem in $colItems) {
if($objItem.Caption -eq "Novell Client для Windows")
{
$objItem.Uninstall()
}
}
Автор: BULLDOG
Дата сообщения: 10.05.2007 10:57
Etalon

Спасибо за помощь. Я новичок в написании скриптов. Это самодостаточный скрипт или дополнение моего? Если самодостаточный, то на каком языке написан, ни VBS, ни JS не подходят. KIX тоже выдаёт ошибку в строке 3 : Error in expression.!
Автор: Etalon
Дата сообщения: 10.05.2007 11:03
BULLDOG
Данный сценарий написан на Windows PowerShell, и в ощем то является самодостаточным
Единственное, что можно добавить проверку доступности компьютера, если он является удалённым, и обработку результа работы метода Uninstall().

Тоже самое на VBScript

Код:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
("Select * from Win32_Product ")
For Each objSoftware in colSoftware
If objSoftware.Caption = "Novell Client для Windows" Then
objSoftware.Uninstall()
End If
Next
Автор: BULLDOG
Дата сообщения: 10.05.2007 11:51
Etalon
Не работает. Тихо запускается и все, тишина.
Похоже не находит скрипт прогу в установке/удаление по имени.
Пробую на Win2000

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576

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


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