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

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

Автор: AlexSSS
Дата сообщения: 02.05.2005 15:55
Mishgunnn
похоже тут тот же глюк, что и в первом случае. У меня на подобном скрипте вылетает та же ошибка

работает вариант моего первого скрипта ;o)
замени в моем скрипте
Set objOU = GetObject("LDAP://cn=computers,dc=dom1,dc=dom2")
на
Set objOU = GetObject("LDAP://cn=users,dc=dom1,dc=dom2")

если ты используешь OU для пользователей, то можно, либо прописать все требуемые OU в скрипте, либо написать дополнительный кусок в скрипт, который берет из AD все OU с их DistinguishedName и по нему открывает новый обьект
Set objOU = GetObject("LDAP://" &DistinguishedName), а дальше уже по первому скрипту.

Нормально получить LastLogon через запрос ADODB у меня слету не получилось.



Добавлено:
Работающий вариант по принципу перебора OU
On Error Resume Next

Set objConnection = CreateObject("ADODB.Connection")
objConnection.provider = "ADsDSOObject"
objConnection.Open ("Active Directory Provider")

Set objRecordset = CreateObject("ADODB.Recordset")

CommandText = "Select DistinguishedName"
CommandText = CommandText + " from 'LDAP://DC=dom1,DC=dom2'"
CommandText = CommandText + " where objectClass='organizationalUnit' or objectClass='Container'"

objRecordset.CursorLocation = 2
objRecordset.Open CommandText, objConnection

n = 0
While Not objRecordset.EOF
DistinguishedName = objRecordset.fields("DistinguishedName").Value
Set objOU = GetObject("LDAP://" & DistinguishedName)
objOU.Filter = Array("user")
For Each obj In objOU
n = n + 1
Cells(n, 1).Value = obj.cn
Cells(n, 2).Value = obj.LastLogin
Cells(n, 3).Value = n
Next
objRecordset.MoveNext
Wend
Автор: RussianBear
Дата сообщения: 03.05.2005 08:51
AlexSSS и другим знатокам...;)

Возвращаясь к моему вопросу о получении SID локальной группы.

Скрипт приведенный на http://forum.ru-board.com/topic.cgi?forum=8&bm=1&topic=1908&start=640 работает только на XP....Может есть другие варианты?

Автор: Mishgunnn
Дата сообщения: 03.05.2005 09:12
AlexSSS
Снова спасибо! У меня действительно в OU пользователи расположены, поэтому пришлось применить твой метод обхода по OU.
Обнаружил кстати очередную непонятность: objOU.Filter = Array("user") как-то странно работает, выводятся и компы и юзеры Если написать objOU.Filter = Array("computer"), то компьютеры только выводятся, без юзеров. Я слегка скрипт модифицировал, приписал вот такую штуку:
If DistinguishedName = "CN=Computers,DC=myDomain,DC=ru" Then
objRecordset.MoveNext
DistinguishedName = objRecordset.fields("DistinguishedName").Value
End If
Тогда компьютеры не попадают в список.
А еще есть такая особенность, что между контроллерами домена атрибут LastLogon и Logon Count не реплицируются. Если контроллеров несколько, надо со всех брать значения и сравнивать. У меня 3 контроллера и бывает, что между двумя по какаму-нибудь пользователю между двумя DC разница в год, а на третьем он вообще не логинился не разу.
Автор: AlexSSS
Дата сообщения: 03.05.2005 10:09
Mishgunnn
> objOU.Filter = Array("user") как-то странно работает
в таких случаях смотри ADSI Edit - там видно, какие свойства есть у конкретных обьектов.
Действительно, на компах почему-то есть и принадлежность группе Users, я об этом забыл упомянуть. У меня домен Win2000 mixed, может в 2000 native или 2003 native это уже не так, не знаю.
Впрочем, ты нашел вполне нормальное решение. Если бы у тебя компы тоже были в разных OU, то надо было проверять каждый obj, убеждаясь, что его objectClass не содержит "Computer"

> Если контроллеров несколько, надо со всех брать значения и сравнивать
по памяти не помню синтаксиса, но LDAP вроде позволяет коннектится к конкретному DC. Оформляешь скрипт, как процедуру с входным параметром имени DC. И вызываешь эту процедуру для каждого сервера. Если делать это в экселе, то вначале вообще считываются все пользователи (или компьютеры), а затем скрипт не пишет нового пользователя, а находит уже имеющегося на листе, сравнивает время его последнего входа, если оно меньше, чем на текущем сервере, то пишет новое значение


Добавлено:
RussianBear
> Скрипт работает только на XP
Проверь, возможно можно обновить WMI на более старых версиях Windows.

Другого решения этой задачи я пока не нашел.
А для чего тебе вообще нужен SID локальных групп? Скорее всего вообще есть решения твоей первичной задачи, которое не требует SID групп

PS. Проверял другого провайдера, WinNT, он позволяет взять перечень групп и на Win2000, однако для локальной группы можно взять только имя
Автор: RussianBear
Дата сообщения: 03.05.2005 10:35
AlexSSS

Насчет обновления WMI - мысль интересная...поищу...

Увы, но SID обязательно нужен. Его значение потом хочу преобразовать определенным образом...

Появилась идея использовать WbemScripting для того что б добраться до искомой информации, но пока никак не пойму как это сделать...
Сервисами так рулить получалось...

Добавлено:
Нашел вот такой вот скрипт:

Dim sServer
sServer = "."

DoWin32_Account

Sub DoWin32_Account
On Error Resume Next

Dim SWbemLocator
Set SWbemLocator = CreateObject("WbemScripting.SWbemLocator")

Dim SWbemServices
Set SWbemServices = SWbemLocator.ConnectServer(sServer,"root\CIMV2")

Dim objWbemObjectSet
Set objWbemObjectSet = SWbemServices.ExecQuery("Select * From Win32_Account", "WQL")

Dim sProperty

For Each sProperty in objWbemObjectSet
DoWrite "Caption", DoCheckIfEmpty(sProperty.Caption)
DoWrite "Description", DoCheckIfEmpty(sProperty.Description)
DoWrite "Domain", DoCheckIfEmpty(sProperty.Domain)
DoWrite "InstallDate", DoCheckIfEmpty(sProperty.InstallDate)
DoWrite "LocalAccount", DoCheckIfEmpty(sProperty.LocalAccount)
DoWrite "Name", DoCheckIfEmpty(sProperty.Name)
DoWrite "SID", DoCheckIfEmpty(sProperty.SID)
DoWrite "SIDType", DoCheckIfEmpty(sProperty.SIDType)
DoWrite "Status", DoCheckIfEmpty(sProperty.Status)
Wscript.Echo
Next
End Sub

Function DoCheckIfEmpty(sValue)
If IsNull(sValue) Then
DoCheckIfEmpty = "Empty"
Else
DoCheckIfEmpty = sValue
End If
End Function

Sub DoWrite(sText, sValue)
WScript.Echo sText & DoFormat(sText), sValue
End Sub

Function DoFormat(sText)
DoFormat = Space(13 - Len(sText)) & " = "
End Function

Работает на W2K....

Кстати, сайт полезный - www.Wbem.dk
Может в шапку его?
Автор: AlexSSS
Дата сообщения: 03.05.2005 12:16
RussianBear, если сможешь, напиши небольшое описание COM обьекта WbemScripting - нужно ли его инсталлировать, под какими операционками работает, какие задачи решает. Ссылку на такое описание вполне можно кинуть и в шапку.

Я вообще с этим обьектом раньше не сталкивался и если бы увидел просто ссылку на него, то пропустил - мало ли каких COM обьектов есть в виндовсе
Автор: FreemanRU
Дата сообщения: 03.05.2005 12:22
Mishgunnn
[more=скрипт, заносящий всех полльзователей домена в файл CSV с атирибутом LastLogon]

' LastLogon.vbs
' VBScript program to determine when each user in the domain last logged
' on.
'
' ----------------------------------------------------------------------
' Copyright (c) 2002 Richard L. Mueller
' Hilltop Lab web site - http://www.rlmueller.net
Option Explicit

Dim objRootDSE, strConfig, objConnection, objCommand, strQuery
Dim objRecordSet, objDC
Dim FSO, CSVFile
Dim strDNSDomain, objShell, lngBiasKey, lngBias, k, arrstrDCs()
Dim strDN, dtmDate, objDate, lngDate, objList, strUser
Dim strBase, strFilter, strAttributes, lngHigh, lngLow

Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set CSVFile=FSO.OpenTextFile("LastLogon.csv", 2 ,true)
' Use a dictionary object to track latest lastLogon for each user.
Set objList = CreateObject("Scripting.Dictionary")
objList.CompareMode = vbTextCompare

' Obtain local Time Zone bias from machine registry.
Set objShell = CreateObject("Wscript.Shell")
lngBiasKey = objShell.RegRead("HKLM\System\CurrentControlSet\Control\" _
& "TimeZoneInformation\ActiveTimeBias")
If UCase(TypeName(lngBiasKey)) = "LONG" Then
lngBias = lngBiasKey
ElseIf UCase(TypeName(lngBiasKey)) = "VARIANT()" Then
lngBias = 0
For k = 0 To UBound(lngBiasKey)
lngBias = lngBias + (lngBiasKey(k) * 256^k)
Next
End If

' Determine configuration context and DNS domain from RootDSE object.
Set objRootDSE = GetObject("LDAP://RootDSE")
strConfig = objRootDSE.Get("configurationNamingContext")
strDNSDomain = objRootDSE.Get("defaultNamingContext")

' Use ADO to search Active Directory for ObjectClass nTDSDSA.
' This will identify all Domain Controllers.
Set objCommand = CreateObject("ADODB.Command")
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
objCommand.ActiveConnection = objConnection

strBase = "<LDAP://" & strConfig & ">"
strFilter = "(objectClass=nTDSDSA)"
strAttributes = "AdsPath"
strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"

objCommand.CommandText = strQuery
objCommand.Properties("Page Size") = 100
objCommand.Properties("Timeout") = 60
objCommand.Properties("Cache Results") = False

Set objRecordSet = objCommand.Execute

' Enumerate parent objects of class nTDSDSA. Save Domain Controller
' AdsPaths in dynamic array arrstrDCs.
k = 0
Do Until objRecordSet.EOF
Set objDC = _
GetObject(GetObject(objRecordSet.Fields("AdsPath")).Parent)
ReDim Preserve arrstrDCs(k)
arrstrDCs(k) = objDC.DNSHostName
k = k + 1
objRecordSet.MoveNext
Loop

' Retrieve lastLogon attribute for each user on each Domain Controller.
For k = 0 To Ubound(arrstrDCs)
strBase = "<LDAP://" & arrstrDCs(k) & "/" & strDNSDomain & ">"
strFilter = "(&(objectCategory=person)(objectClass=user))"
strAttributes = "distinguishedName,lastLogon"
strQuery = strBase & ";" & strFilter & ";" & strAttributes _
& ";subtree"
objCommand.CommandText = strQuery
On Error Resume Next
Set objRecordSet = objCommand.Execute
If Err.Number <> 0 Then
On Error GoTo 0
Wscript.Echo "Domain Controller not available: " & arrstrDCs(k)
Else
On Error GoTo 0
Do Until objRecordSet.EOF
strDN = objRecordSet.Fields("distinguishedName")
lngDate = objRecordSet.Fields("lastLogon")
On Error Resume Next
Set objDate = lngDate
If Err.Number <> 0 Then
On Error GoTo 0
dtmDate = #1/1/1601#
Else
On Error GoTo 0
lngHigh = objDate.HighPart
lngLow = objDate.LowPart
If lngLow < 0 Then
lngHigh = lngHigh + 1
End If
If (lngHigh = 0) And (lngLow = 0 ) Then
dtmDate = #1/1/1601#
Else
dtmDate = #1/1/1601# + (((lngHigh * (2 ^ 32)) _
+ lngLow)/600000000 - lngBias)/1440
End If
End If
If objList.Exists(strDN) Then
If dtmDate > objList(strDN) Then
objList(strDN) = dtmDate
End If
Else
objList.Add strDN, dtmDate
End If
objRecordSet.MoveNext
Loop
End If
Next

' Output latest lastLogon date for each user.
For Each strUser In objList
CSVFile.WriteLine(strUser & " ; " & objList(strUser))
Next

' Clean up.
objConnection.Close
Set objRootDSE = Nothing
Set objConnection = Nothing
Set objCommand = Nothing
Set objRecordSet = Nothing
Set objDC = Nothing
Set objDate = Nothing
Set objList = Nothing
Set objShell = Nothing
WScript.Echo "Файл заполнен"

[/more]

Проблема в том, что LastLogon имеет не целочисленное значение, а длинное целое, поэтому обычными методами не выводиться..

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adschema/adschema/a_lastlogon.asp
Автор: RussianBear
Дата сообщения: 03.05.2005 13:24
AlexSSS

Он вроде как встроенный, потому как никаких действий перед работой с ним я не предпринимал...

Описание - вот оно вроде бы http://msdn.microsoft.com/library/en-us/wmisdk/wmi/scripting_with_swbemobject.asp

Ну или просто поищи в MSDN по слову WbemScripting...
Автор: Mishgunnn
Дата сообщения: 05.05.2005 12:06
сообщаю всем заинтересованным лицам, что в 2003 домене последнее время входа пользователя можно определить всего одной строчкой кода!!!! Вот она:
dsquery user -inactive число_недель
Автор: DOE_JOHN
Дата сообщения: 09.05.2005 21:25
Интересует следуюшее.
Возможно ли с помощью cmd, скриптов установить в системе Micrsoft LoopBack Adapter, переименовать его из "соединение 1"(точно не помню, или 2, если есть и физический адаптер) в Micrsoft LoopBack Adapter. И назначить IP.

Так же интересует возможность переноса на свежеустановленную систему политик безопасности, разрешений на ntfs. Что бы запустил несколько файлов и готово. Или я сильно губу раскатал?
Автор: FreemanRU
Дата сообщения: 09.05.2005 22:07
DOE_JOHN

Цитата:
Возможно ли с помощью cmd, скриптов установить в системе Micrsoft LoopBack Adapter, переименовать его из "соединение 1"(точно не помню, или 2, если есть и физический адаптер) в Micrsoft LoopBack Adapter. И назначить IP.


netsh interface set

Цитата:

Использование: set interface [name = ] Имя_интерфейса
[ [admin = ] ENABLED|DISABLED
[connect = ] CONNECTED|DISCONNECTED
[newname = ] Новое_имя ]

Устанавливает параметры интерфейса.

IfName - Имя интерфейса
admin - Должен ли этот интерфейс быть разрешенным (только не в LAN).
connect - Подключен ли этот интерфейс (только не в LAN).
newname - Новое имя этого интерфейса (только LAN).

Примечания:
- Кроме текущего имени должен быть указан по крайней мере один параметр.
- Если указано connect = CONNECTED, то интерфейс будет автоматически
разрешен, даже если указано значение параметра
admin = DISABLED.



Цитата:
политик безопасности

Домен? Что именно надо перенести? В основном ответ да....


Цитата:
разрешений на ntfs

В прямую - нет. Только если пользователи будут именнованы также как и были, тогда обходом по всем папка и файлам, сохранение информации по доступу, поптом восстановление из сохраненного (это так сказать алгоритм реализация может быть разной)
Автор: AlexWhite1
Дата сообщения: 10.05.2005 11:43
Есть скрипт, который копирует файлы с сервера на локальный компьютер при выходе пользователя. Проблема в том, что при выключении компьютера похоже данный скрипт просто не успевает выполниться.
Скрипт поставлен в групповые политики в сценарии Logoff.
ОС Windows2000 и на сервере и на рабстанциях.

Как сделать так, чтобы на время выполнения команды (сценария) выключение компьютера приостанавливалось?
Автор: AlexSSS
Дата сообщения: 10.05.2005 12:20
Поставили новый принт-сервер на Windows 2003. Установили на него несколько десятков принтеров, но сейчас выясняется, что на большинстве из них по умолчанию стоит Letter. Как скриптами можно все принтеры на сервере перестроить на A4?

Или есть другие более быстрые пути, чем просто перестройка каждого принтера на сервере?
Автор: Tim72
Дата сообщения: 10.05.2005 13:40
AlexWhite1

Цитата:
Как сделать так, чтобы на время выполнения команды (сценария) выключение компьютера приостанавливалось?

"LastChance v1.03" умеет это делать...


Подскажете пожалуйста, как из командной строки, если это возможно, переключать "Toolbars"
PS хотелось бы, с помощью nncrona, переключать Toolbarы, в зависимости от запущенных программ...
Автор: AlexWhite1
Дата сообщения: 10.05.2005 14:04
Tim72

Цитата:
"LastChance v1.03" умеет это делать...

Спасибо. А встроенными средствами VBScript можно?

Автор: FreemanRU
Дата сообщения: 11.05.2005 12:00
DOE_JOHN

Цитата:

Админить я начал недавно и в основном пока только разбираюсь. Ситуация такая. Есть куча компов общей сети пока нет, но несколько машин объединены в workgroop. Все настраиваются аналогично(2 пользователя Admin и User, набор программ, разрешения на ntfs что бы userы не очень лазили по C:\ и все такое). Берется одна машина, подготавливается, снимается образ Goost и разворачивается на машыны с похожей конфигурацией.
Ставиться W2k.
Изменить некоторые системные переменные, расположение My Documents(нашел как сделать это через реестр)
Только все равно приходиться много делать ручками. Профиль User перемещаемый и чтобы он работал необходим Micrsoft LoopBack Adapter, его приходиться устанавливать и настраивать на IP самостоятельно.
Для политик безпасности используется poledit и шаблоны( пока не совсем разобрался и поэтому не очень нравиться), но можно ли как нибудь прописывать их через реестр(они ведь там храняться)?
Чтобы все проги корректно работали под урезанным в провах Userом надо на некоторые папки и ветки реестра ему дать доступ(например MS VisualBasic).

Вот и хотелось автоматизировать работу с новой машиной. Запустил скрипт и вот уже ест виртуальный адаптер с прописаным IP. Еще скрипт и применены политики безопасности. Все в таком духе. Хотя что то меня занесло, прям только мышкой кликай. Если что нибудь знаешь об этом(что точно возможно, а что фантастика) подскажи в какую сторону копать

Батенька, по вам домен полачет. Это именно то, что вам нужно. А также DHCP.. в общем нормальная сеть...

PS И не надо подобные вопросы в ПМ писать.. форум - он на то и форум, чтоб все всё обсуждали... к тому же так больше мнений узанешь...

Добавлено:
AlexWhite1
а

Код:
start /WAIT "csript logoff.vbs"
Автор: Michigun
Дата сообщения: 11.05.2005 16:51
Ковыряюсь, ковыряюсь, к стыду своему, уже вторую неделю - грызу гранит скриптинга. На данный момент передо мной стоит задача вытащить из БД MS SMS (aka System Management Server) MAC-адреса компутеров, находящихся там. Проблема в том, что я не могу найти в полях и свойствах каких объектов находятся интересующие меня записи. Как или где можно получить эту инфу?
Автор: AlexWhite1
Дата сообщения: 12.05.2005 12:31
FreemanRU

Цитата:
start /WAIT "csript logoff.vbs"
не помогает?

нет
Дело в том, что скрипт помещен через групповую политику в папочку
%systemroot%\SYSVOL\domain\policy\......\USER\Scripts\Logoff\myscript.vbs

вот его содержимое

Цитата:

'Скрипт для копирования данных с
Dim SourceDir, DestDir, MyUser, CompUser
Dim wshNetwork, objFSO

SourceDir = "x:\1C" //подключенный диск
DestDir = "d:\Share\1C" //локальный диск
MyUser = "????" ' ник пользователя для которого должен выполниться код
CompUser ="????" 'имя компьютера на котором должен выполниться код
Const OverWriteFiles = TRUE

set wshNetwork = WScript.CreateObject("WScript.Network")
Set objFSO = CreateObject("Scripting.FileSystemObject")

If (LCase(MyUser) = LCase(wshNetwork.username)) _
and (LCase(CompUser) = LCase(wshNetwork.Computername)) Then
objFSO.CopyFolder SourceDir , DestDir, OverWriteFiles
End If

Автор: AlexSSS
Дата сообщения: 12.05.2005 12:37
AlexWhite1
честно говоря, не знаю, можно ли задержать выключение компа.

Если не получится, можешь попробовать просто скриптом раскидать нужным пользователям ярлык на десктоп, который будет запускать скрипт, который скопирует все, что надо, после чего выключит комп. Не совсем то, что ты хочешь, но какое-то решение проблемы
Автор: FreemanRU
Дата сообщения: 12.05.2005 14:22

Цитата:
start /WAIT "csript logoff.vbs"
не помогает?

нет
Дело в том, что скрипт помещен через групповую политику в папочку
%systemroot%\SYSVOL\domain\policy\......\USER\Scripts\Logoff\myscript.vbs


да как это нет? ТОлько что проверил, все нормально.
Положи в \\tvoi_domen\SYSVOL\domain\policy\......\USER\Scripts\Logoff\logoff.cmd с содержимым что я тебе дал. Все будет ОК.

Для теста можешь сделать logoff.cmd и поставить туда одну строку - pause. У тебя "Appliying logoff script" будет висеть до посинения.
Автор: AlexWhite1
Дата сообщения: 13.05.2005 10:07
FreemanRU

Цитата:
да как это нет? ТОлько что проверил, все нормально.
Положи в \\tvoi_domen\SYSVOL\domain\policy\......\USER\Scripts\Logoff\logoff.cmd с содержимым что я тебе дал. Все будет ОК.


Не сразу понял идею
Сделал, вот только скрипт положил в \\tvoi_domen\SYSVOL, а logoff.cmd туда куда вы советовали.
теперь содержимое logoff.cmd вот такое

start /WAIT "csript \\my_domen\SYSVOL\my_script.vbs"

И поставил на тестирование. Вечером узнаю как работает
Автор: PIL123
Дата сообщения: 14.05.2005 15:33
Здрасьте!
Есть в сети корпоративная болталка: ICQ Corporate, и есть у этой болталки свой один сервер, который стоит на одном компьютере. Все клиенты знают его по IP-адресу (192.168.X.110). Сейчас стоит задача изменить этот самый адрес сервера, к которому клиенты будут подключаться. Известно, что настройки имени/IP-адреса сервера храняться в реестре:
---
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Mirabilis\ICQCorp\DefaultPrefs]
"Default Server Host"="192.168.X.110"
---
Клиентов около 100 и потому изменение этого параметра вручную нереально. Посоветуйте, как можно грамотно и правильно изменить этот параметр в реестре в корпоративном масштабе?

Я сначала думал это реализовать с помощью административных шаблонов и даже, с помощью книжечки одной умной, написал его:
---
CLASS USER

CATEGORY "Sample Policies"
EXPLAIN "These are sample policies that illustrate parts."

POLICY "Sample policy"
SUPPORTED "At least Microsoft Windows XP Professional"

EXPLAIN "This is a sample policy that illustrates a part."
KEYNAME "Software\Policies"

PART test EDITTEXT
DEFAULT "This is the default text"
VALUENAME "Default Server Host"
END PART

END POLICY

END CATEGORY
---
Однако, этот гад отказывается работать в нужной мне ветке реестра и работает исправно только в ветках:
Software\Policies
Software\Microsoft\Windows\CurrentVersion\Policies
из чего я сделал вывод, что административные шаблоны не помогут мне в этой моей проблеме.

В связи с этим вопрос: можно ли как-нибудь мою задачу решить с помощью логон-скриптов? Точнее даже я уверен что можно - задачка-то, в общем, простенькая - один параметр изменить в реестре пользователя, но вот точно как это сделать - сама реализация - мне неизвестно. Помогите, пожалуйста, гуру компьютерного мира
Автор: FreemanRU
Дата сообщения: 14.05.2005 16:52
PIL123

Цитата:
помощью административных шаблонов

попробуй так:

Код:
#if version >= 3

CLASS USER

CATEGORY !!ICQ
CATEGORY !!IcqGroup
POLICY !!KeyPol
KEYNAME "Software\Mirabilis\ICQCorp\DefaultPrefs"
EXPLAIN !!KeyHelp
PART !!EditText EDITTEXT
VALUENAME "Default Server Host"
END PART
END POLICY

END CATEGORY; IcqGroup
END CATEGORY; ICQ

[strings]
ICQ="ICQ"
IcqGroup="Icq GroupWare"
KeyHelp="Адрес сервера"
KeyPol="Адрес сервера"
EditText="Введите адрес"
#ENDIF
Автор: Alan Mon
Дата сообщения: 14.05.2005 16:56
PIL123
Скорми этот reg-файл регедиту в логон-скрипте и всех делов:
regedit /s icq.reg
Автор: G14
Дата сообщения: 14.05.2005 18:43
FreemanRU

Цитата:
если политика удалена, то из этих ветвей удаляется вся информация

Если имелись в виду

Цитата:
Software\Policies
и

Цитата:
Software\Microsoft\Windows\CurrentVersion\Policies

то нет. Нижняя является унаследованой от системных политик и параметры там меняются только явно. немного подробнее....

Автор: vworld
Дата сообщения: 14.05.2005 20:27
Пытаюсь вот привести свой AD в нормальный вид, только вот каша сейчас а надо именно определение по имени юзера его IP и/или имя машинки, есть ли возможность провернуть это дельце?
Автор: FreemanRU
Дата сообщения: 14.05.2005 21:16
vworld
где-то по моему уже пробегало...

Прямых решений нет, есть 2 "обходных" (по ним можно узнать, на какой последней станции залогинился юзер)
1. Вытаскивать из лога всех DC события логона и там будет, с какой станции пришло событие
2. В логон скрипт всех пользователей вставить скриптик, который будет вносить в какую-нить базу запись в два столбца: UserName | LastStation.

первое реализуется ИМХО сложнее, на форуме есть ветка по вытаскиванию логов и их обработки (н-р можешь глянуть вот это).
Второе - в зависимтости от БД (может быть как SQL, так и Access или вообще csv-файл). Но ИМХО проще гораздо.
Автор: AlexSSS
Дата сообщения: 14.05.2005 21:21
vworld, можешь взглянуть на
http://forum.ru-board.com/topic.cgi?forum=8&topic=10659#1
на первой странице поищи Init.kix - это как раз готовый логон скрипт, который записывает инфу об залогиненном пользователе и его компе (имя, IP, MAC).
Автор: agatrid
Дата сообщения: 16.05.2005 11:39
Приветствую.
Начальство нагрузило задачей такого содержания:
В организации есть общие принтеры...юзеры довольно часто используют их в своих целях по-этому необходимо сделать чтобы принтеры работали только с 9.00 до 18.00
Я думаю проблему достаточно решить тем что скриптом в 9 расшаривать принтеры а в 18 снимать шару...
Но в скриптах к сожалению не селен, чего посоветуете ?
Заранее спасибо
Добавлено:
Ндя...нашел..
Для таких же невнимательных как я http://forum.ru-board.com/topic.cgi?forum=8&topic=10153#1
Автор: DOE_JOHN
Дата сообщения: 22.05.2005 06:57
FreemanRU
Да знаю я что тут надо домен. Но до него, по независящим от меня причинам, как до китая на карачках ползти. Так что пока приходиться возиться.
ps. Извини если что.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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