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

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

Автор: jeki54
Дата сообщения: 29.08.2007 09:00
YNY

Цитата:

DLL Requires Activeds.dll.
IID IID_IADsCollection is defined as 72B945E0-253B-11CF-A988-00AA006BC149.

Добавлено:
и нада ск всего войти сначало в домен


Конечно всему перечисленному машинка соответсвует. Все в домене.
Однако ошибка вылезает.
Причем, аналогичное действие с Sessions проходит на ура.

Может кто-то подскажет как правильно закрыть открытые файлы по сети на определенной машине. Именно файлы, а не сессии пользователей.
Автор: Teo
Дата сообщения: 29.08.2007 09:58
YNY

Цитата:
да, лишь бы по углам не писало...
поставь галук разрешать удаленное подкл и с любого компа, на кот ХР стоит подкл к серваку и делай че хочешь, а скрипт писать когда и без него мона обойтись -- изврат

ты забыл добавить, ИМХО
если ты мне скажешь, как проще сделать смену паролей людьми, которые сидят на ноутах и с ними же ездят в командировки, при этом не будучи введенными в домен (а зачем? плодить профили?), то я скажу - да, изврат полный


Цитата:
По быстрому мона так: оставить скрипт на серваке, а запускать с лок машины и тогда с RPC проблем не будет.

это не решение, а костыль...
а если я удаленных клиентов к ВПН подключать буду?
че, и пусть долбятся на шары по полдня?

Цитата:
пример подкл к серверу:

этот пример, я взял оттуда же, откуда и ты
и он не работает...
тот кусок, что у меня - с msdn
Автор: YNY
Дата сообщения: 29.08.2007 11:45

Цитата:
jeki54


Чтобы просмотреть сведения о совместно используемых файлах, введите:

net file

Чтобы закрыть файл под номером 1, введите:

net file 1 /close

так порще и быстрей а через WMI у меня пишет ошибку 80004001 - (

Добавлено:
For Teo :::
во первых если нада чтоб пользователи меняли свой пароль (для логона на комп или в домен)- то есть соотв политика паролей (и не тока в домене), во вторых на конкретный вопрос есть конкретный ответ, а на не точный вопрос - соответствующий ему !

Тот пример, что я привел, не совсем так выглядит как у тебя и ты должен был это увиДетЬ !-)

Добавлено:
+ jeki54 в упр компом пишеть что файл не открыт но окна не закрывает, возм прийдется использовать что-то для закрытия файла на лок машине (там где был открыт)

Добавлено:
см в хелпе по винде + посмотри Net session связь с файлом мона полностью заблокировать если не тока сессию закрыть но и если на вр изменений откл шару
Автор: ali1977
Дата сообщения: 29.08.2007 20:36
подскажите пжалста где у нас на форуме можно найти скрипт (если он был - искал в батниках, ниче не нашел) чтоб настоить его так чтоб он каждый день определенный файл копировал по сети с другого компа и прожигал его на болванку на моем компьютере
Автор: jeki54
Дата сообщения: 30.08.2007 05:27
YNY

Цитата:
Чтобы закрыть файл под номером 1, введите:
net file 1 /close

А как узнать номер этого файла?


Цитата:
в упр компом пишеть что файл не открыт но окна не закрывает

Файлы нормально закрываются из оснастки.
Проблема в том, что не работает метод Remove при удалении из коллекции resources, из коллекции sessions все работает великолепно.
Автор: YNY
Дата сообщения: 30.08.2007 06:47

Цитата:
А как узнать номер этого файла?

введи в коммандной строке net file - и ты увидешь все что нада а если будешь пользоваться net session то еще больше увидешь, возм не работает для файлов т.к. закрытие сессии и так разрывает связи с файлами

Добавлено:
objResource.Name -- возвращает тот же номер ресурса что и перечисленные комманды

Добавлено:
[h1]http://www.microsoft.com/technet/scriptcenter/tools/scripto2.mspx[/h1]
[h2]ПРОЧИТАТЬ ВСЕМ[/h2]
Автор: jeki54
Дата сообщения: 30.08.2007 14:54
YNY

Сделал удаление нужных блокировок через дерганье "net file /close", но это хоть работает:

ComputerName = "."
Set FileService = GetObject ("WinNT://" & ComputerName & "/LanmanServer")
Set Collection = FileService.Resources
For Each Resource In Collection
resourcepath = LCase (Resource.Path)
If InStr (resourcepath, "с:\shares") <> 0 Then
resname = Resource.Name
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objScriptExec = WshShell.Exec("net file " & resname & " /close")
End If
Next

Теперь заблокированные ресурсы на сетевой папке разблокируются и файлы можно обновлять.
Автор: YNY
Дата сообщения: 31.08.2007 05:26

Цитата:
jeki54
рад за тебя, но еслиб ты пользоваля net session то тебе хватило бы только ее без всякого WMI
Автор: jeki54
Дата сообщения: 31.08.2007 06:48
YNY

Этот скриптик - небольшой кусочек большого скрипта, который занимается бекапом и т.п. Так что не проще
Но за наводку спасибо, в сторону cmd посмотреть мысли не было.
Автор: north_crow
Дата сообщения: 31.08.2007 08:38
коллеги!
прошо совета...
есть вот такой скрипт которые добавляет коментарий в свойство компа. он ессно работает только из под адмниских прав

Код:
'==========================================================================
'
' Изменение коментария в свойствах компьюьера в соответсвии с доменным именем
'
'==========================================================================

' Определяем контекст пользователя в АД
Set WSHNetwork = CreateObject("WScript.Network")
On Error Resume Next
Path = WSHNetwork.UserName
Set objSysInfo = CreateObject("ADSystemInfo")
strUserDN = objSysInfo.UserName
Set objUser = GetObject("LDAP://" & strUserDN)

' Остановка службы сервер для внесения данных о пользователе
Set objWMIService = GetObject("winmgmts:")
Set colSoftware = objWMIService.ExecQuery ("Select * FROM Win32_Service WHERE Name ='Lanmanserver'" )
For Each objSoftware in colSoftware
objSoftware.StopService()
Next

' Внесение данных о пользователе в свойcтва компьютера
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set WshNetwork = CreateObject("WScript.Network")
WSHShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\srvcomment", objUser.DisplayName

' Перезапуск службы сервер
Set objWMIService = GetObject("winmgmts:")
Set colSoftware = objWMIService.ExecQuery ("Select * FROM Win32_Service WHERE Name ='Lanmanserver'" )
For Each objSoftware in colSoftware
objSoftware.StartService()
Next
Автор: alecsandrb
Дата сообщения: 31.08.2007 08:47
north_crow

Скрипт у тебя отрабатывает просто он записывает описание в реестр профиля пользователя с админискими правами, сам с этим сталкнулся когда делал похожий скрипт для добавления описания.
Посмотри по форуму мой скрипта как вариант обхода этой ситуации.
Автор: north_crow
Дата сообщения: 31.08.2007 09:05
alecsandrb
т.е. если я в ГПО сначало поставлю скрипт на измение пароля на локального админа, а потом за ним скрипт на изменение коментария, но запущу его не от имени домменой записи а от имени локального админа - то коментарий запишется?
Автор: alecsandrb
Дата сообщения: 31.08.2007 10:27
north_crow

Сорри запутал немного похоже тебя и себя.
Все работает так:
- разрешаешь в ГПО изменение реестра доменному пользователю
(после этого твой скрипт будет работать на локальной машине
кроме перезапуска служб)
- скриптом AutoIT под учеткой доменного админа перезапускаешь службу Lanmanserver, читаешь из реестра запись и записываешь ее в AD (так работает у меня для того чтобы хранить одинаковое описание в АД и на ПК).

Если я правильно тебя понял то тебе достаточно в ГПО разрешить изменение ветки реестра, запускать твой скрипт, и потом перезапускать службу под доменным или локальным админом.
Автор: YNY
Дата сообщения: 31.08.2007 10:34
north_crow
я не совсем понял накой ты объявляешь Set WshNetwork = CreateObject("WScript.Network") елси потом никак не используешь?
попробуй записать во все ControlSet

Добавлено:
alecsandrb вообще-то приведенный north_crow скрипт читает из АД и пишет в локальный реестр, т.е. делает все, что твой, но наоборот




Добавлено:
north_crow

WSHShell.RegWrite .... у меня ваще никуда ничего не пишет, на стр. 13 или рядом я оставлял пример того как читать и писать в реестр на WMI


Добавлено:
изиняюсь -- пишет просто не разкомментировал нужную строку )))

Добавлено:
Ыстина На локальном компе значение в реестре меняется как надо
Автор: Rotorina
Дата сообщения: 31.08.2007 11:50
товарищи, такой вопрос
Есть в коде строка:

Код:
echo GET /announce.php?passkey=12&info_hash=%cbe5&peer_id=- >>1.txt
Автор: Etalon
Дата сообщения: 31.08.2007 12:50
Rotorina

Цитата:
Как перенести в 1.txt символ &?

^&
Автор: Rotorina
Дата сообщения: 31.08.2007 13:30
решено, сенкс
Автор: VPavlenko
Дата сообщения: 31.08.2007 17:25
Добрый день!
Имеется сеть на 150 компьютеров с одним контроллером домена под
Win2003.
Вопрос такой: можно ли с помощью скрипта или .bat - файла отслеживать
и записывать например, в текстовый файл информацию о входе-выходе
пользователя в домен(дату-время + имя пользователя + ip-адрес
компьютера). Желательно с примером скрипта (.bat - файла) или ссылки
на примеры. Буду очень признателен за информацию!!!
Автор: VirwolfLEOne
Дата сообщения: 31.08.2007 17:43
VPavlenko
date /t >> userlog.txt
time /t >> userlog.txt
echo %computername% >> userlog.txt
echo %username% >> userlog.txt
echo -----------------

userlog расположи на ранее созданой шаре(скрытой к примеру) сетевой доступ юзверя делаешь полным, разрешения только на запись к примеру.

Скрипт засовываешь в политику домена (чтоб срабатывал при входе пользователя).
Сам пользуюсь, очень удобно.
Автор: gap5
Дата сообщения: 31.08.2007 17:43
VPavlenko
Вот мой небольшой vbs скриптец, запускается с параметрами on & off соответственно и пишет строчку в файл "\\server.net\Auth_Logs\Месяц.Год\Число.Месяц.txt"

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


Код: on error resume next
wYYYY = DatePart("YYYY" , Now)
wMM = DatePart("M" , Now)
If Len(wMM) = 1 Then
wMM = "0" & wMM
End If
wHH = DatePart("h", Now)
If Len(wHH) = 1 Then
wHH = "0" & wHH
End If
wNN = DatePart("n", Now)
If Len(wNN) = 1 Then
wNN = "0" & wNN
End If
wSS = DatePart("s", Now)
If Len(wSS) = 1 Then
wSS = "0" & wSS
End If
Curtime = wHH & ":" & wNN & ":" &wSS
Set WshShell = CreateObject("WScript.Shell")
CompName = WshShell.ExpandEnvironmentStrings("%computername%")
UserName = WshShell.ExpandEnvironmentStrings("%username%")
Curdate = (FormatDateTime(date(),vbgeneraldate))
Dim objFSO, objFolder, objShell, objTextFile, objFile
Dim strDirectory, strFile, strText
strDirectory = "\\server.net\Auth_Logs\"
strMonthDirectory = (wYYYY &"."& wMM)
strFile = ("\auth-" & curdate & ".log")
strTextOFF = ("LOGOFF | " & Curdate & " at " & Curtime & " | " & Compname & vbTab &"-> "& username)
strTextON = ("LOGON | " & Curdate & " at " & Curtime & " | " & Compname & vbTab &"<- "& username)
WTODO = Wscript.Arguments.Item(0) 'cmd argument

' Create the File System Object
Set objFSO = CreateObject("Scripting.FileSystemObject")

' Check that the strDirectory folder exists
If not objFSO.FolderExists(strDirectory) Then
    WScript.Quit
End if
If not objFSO.FolderExists(strDirectory & strMonthDirectory) Then
Set objFolder = objFSO.CreateFolder(strDirectory & strMonthDirectory)
End if

If not objFSO.FileExists(strDirectory & strMonthDirectory & strFile) Then
Set objFile = objFSO.CreateTextFile(strDirectory & strMonthDirectory & strFile)
End If

set objFile = nothing
set objFolder = nothing
Const ForAppending = 8

Set objTextFile = objFSO.OpenTextFile _
(strDirectory & strMonthDirectory & strFile, ForAppending, True)

IF WTODO = "off" then
objTextFile.WriteLine(strTextOFF)
Elseif wtodo = "on" then
objTextFile.WriteLine(strTextON)
End if

objTextFile.Close

WScript.Quit
Автор: Rotorina
Дата сообщения: 31.08.2007 19:48
Как можно зашифровать *.bat файл, чтоб его внутренностей не было видно?
Компили в *.exe-шник,так на других машинах не запускается (
Автор: alfira
Дата сообщения: 03.09.2007 01:44
Подскажите пожалуйста как при помощи vbs скрипта проверить сколько места осталась для записи на DVD-R, RW 4.7 Gb диске.
Автор: YNY
Дата сообщения: 03.09.2007 08:55

Цитата:
Rotorina

Если у вас везде не ниже W2К, то в системе NTFS 5 есть такая замечательная фишка как потоки и не сведующие люди ничего ф файле попросту не увидят, правда все равно прийдется его чем-то заполнить чтоб у юзера не возникло вопросов

Добавлено:
1) пишем в именованный поток (имя потока New_Stream): dir > New_Stream.TXT:New_Stream
2)читаем из именованного потока: more < New_Stream.TXT:New_Stream

http://dvoika.net/win/Glava4/Index10.html
Автор: Rotorina
Дата сообщения: 03.09.2007 11:10
YNY
Спасибо!
буду пробовать
Автор: pusiyjan
Дата сообщения: 03.09.2007 16:21
Скажите можно ли как-то в домене на вин2003 настроить так чтобы пользователь находящийся в определенном подразделении нажав на сетевое окружение увидел только компьютеры только тех пользователей которые в его подразделении?
а то так пользователь опрашивает почти всю контору а не только своих коллег широковещелкой, когда лезет в сетевое! =( жду предложения, т.к. сам не предполагаю как это можно сделать=(
Автор: PhoenixUA
Дата сообщения: 03.09.2007 21:56
pusiyjan
Это скорее VLANы на коммутаторе организовывать надо...
Автор: YNY
Дата сообщения: 04.09.2007 04:36

Цитата:
pusiyjan

если у тя 10 мб сетка, то просто перейди на 100 мб и истользуй свичи вместо хабов, пропиши DNS вручную. Что-то не припомню чтоб при открытии сетевого окружения комп расылал бы широковещательные запросы, скорей у тя "шпионы" сидят )))
Автор: pusiyjan
Дата сообщения: 04.09.2007 07:40
PhoenixUA

Цитата:
Это скорее VLANы на коммутаторе организовывать надо...

ВАЛаны есть, для того чтобы разрезать трафик между подсетями, но в одной подсети есть группы пользователей, например мне надо отделить электриков от сантехников, но с возможностю того чтобы ИНОГДА они могли друг к другу попасть.
YNY
сетка везде 100ка основанная на 3com свичах управляемых,
Цитата:
DNS вручную
это тоже прописано....Под словом "широковещательный" я имел ввиду что комп в подсети при входе в сетевое поочередно опрашивает все подсеть аналогично лансканеров чего мне не хочется чтоб происходило.
вопрос остается открытым, но что мне кажется что это неосуществимо =(
Автор: YNY
Дата сообщения: 04.09.2007 08:17
pusiyjan

1) попробуй на аплинке "заблокировать" опред вид пакетов
2) установи брандмауэр на все компы и руками пропиши куда им мона, а куда нет

Даже если политика в домене похожая есть, то комп все равно будет делать свое, а отображать, то чего тебе нада

Добавлено:
вообще - то вопрос не совсем по теме , тут в основном обсуждаются скрипты и их возможности, а не управление сетью, хотя если кто тебе бранмаер или фильтр пакетов на скриптах даст то да
Автор: YNY
Дата сообщения: 05.09.2007 04:37
в ощем твоя задача могет быть решена тока если ты найдешь фильтр пакетов или брандмаер настраеваемый через конфиг файлы, а затем:

- на логон юзера скрипт (тут похожий раньше был см. стр. 1-26), кот будет определять к какому подразделению твой юзер отн и копировать правильный конфиг файл на место дефолтного;
- на логоф юзера скрипт, кот будет возвращать дефолтный конфиг файл
Тебе надо для конкретного числа подразделений иметь соответствующее число конфиг файлов кот тебе мона и вручную наделать

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576

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


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