Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод данных о пользователях в HTML & Excel, Редактирование скрипта 
:(
    Опции темы
Karas51
  Дата 1.6.2009, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 1.6.2009

Репутация: нет
Всего: нет



У меня есть 2 скрипта:
1) для вывода заблокированных пользователей:

Код
Option Explicit

Const ADS_UF_ACCOUNTDISABLE = 2


Dim objExcel
Dim objWorkbook

Dim objConnection
Dim objCommand
Dim objRecordset
Dim intUAC

Dim strHTMLText
Dim intCounter

Dim objFSO
Dim objTS

Set objExcel      = WScript.CreateObject("Excel.Application")
Set objWorkbook   = objExcel.Workbooks.Add


Set objConnection = WScript.CreateObject("ADODB.Connection")
Set objCommand    = WScript.CreateObject("ADODB.Command")

objConnection.Open "Provider=ADsDSOObject;"
objCommand.ActiveConnection = objConnection
objCommand.CommandText      = _
    "<GC://dc=******,dc=***>;(objectCategory=User);userAccountControl,distinguishedName;subtree"

Set objRecordSet  = objCommand.Execute

strHTMLText = "<html><title>Отчет о заблокированных учетных записях</title><body>"
strHTMLText = strHTMLText & "<h1>Отчет о заблокированных учетных записях</h1>"

objWorkbook.Sheets(1).Cells(1, 1).Value = "Отчет о заблокированных учетных записях"

intCounter = 3

Do Until objRecordset.EOF
    'intUAC = objRecordset.Fields("userAccountControl")
    
    If objRecordset.Fields("userAccountControl") AND ADS_UF_ACCOUNTDISABLE Then
        strHTMLText = strHTMLText & objRecordset.Fields("distinguishedName") & "<br />"
        objWorkbook.Sheets(1).Cells(intCounter, 1).Value = objRecordset.Fields("distinguishedName")
        
        intCounter  = intCounter + 1
    End If
    
    objRecordset.MoveNext
Loop

strHTMLText = strHTMLText &  "Всего <b>" & intCounter  & "</b> заблокировано"
objWorkbook.Sheets(1).Cells(intCounter + 1, 1).Value = "Всего " & intCounter  & " заблокировано"

objConnection.Close

strHTMLText = strHTMLText & "</body></html>"

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objTS  = objFSO.CreateTextFile("c:\disabled users.htm", True)

objTS.Write strHTMLText
objTS.Close

Set objTS  = Nothing
Set objFSO = Nothing

objWorkbook.SaveAs "c:\disabled_users.xls"
objExcel.Quit

Set objRecordSet  = Nothing
Set objCommand    = Nothing
Set objConnection = Nothing

Set objWorkbook   = Nothing
Set objExcel      = Nothing

WScript.Quit 0


2) Вывод пользователей с ограниченным временным доступом к сетевым ресурсам предприятия:

Код
Option Explicit

Dim objExcel
Dim objWorkbook

Dim strHTMLText
Dim intCounter

Dim objDomain
Dim objUser

Dim dtAccountExpirationDate

Dim objFSO
Dim objTS

Set objExcel      = WScript.CreateObject("Excel.Application")
Set objWorkbook   = objExcel.Workbooks.Add


strHTMLText = "<html><title>Отчет о bla-bla-bla</title><body>"
strHTMLText = strHTMLText & "<h1>Отчет о bla-bla-bla</h1>"

objWorkbook.Sheets(1).Cells(1, 1).Value = "Отчет о bla-bla-bla"

intCounter = 0

Set objDomain = GetObject("WinNT://********,domain") ' NetBIOS-имя домена
objDomain.Filter = Array("User")

On Error Resume Next

For Each objUser In objDomain
    If Not IsNull(objUser.AccountExpirationDate) Then
        If Err.Number = 0 Then
            WScript.Echo objUser.Name, objUser.AccountExpirationDate
            strHTMLText = strHTMLText & objUser.Name & ":" & objUser.AccountExpirationDate & "<br />"
            objWorkbook.Sheets(1).Cells(intCounter + 3, 1).Value = objUser.Name & ":" & objUser.AccountExpirationDate
            
            intCounter  = intCounter + 1
        Else
            Err.Clear
        End If
    End If
Next

On Error Goto 0

strHTMLText = strHTMLText &  "Всего <b>" & intCounter  & "</b> bla-bla-bla"
objWorkbook.Sheets(1).Cells(intCounter + 3 + 1, 1).Value = "Всего " & intCounter  & " bla-bla-bla"

strHTMLText = strHTMLText & "</body></html>"

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objTS  = objFSO.CreateTextFile("c:\disabled users2.htm", True)

objTS.Write strHTMLText
objTS.Close

Set objTS  = Nothing
Set objFSO = Nothing

objWorkbook.SaveAs "c:\disabled_users2.xls"
objExcel.Quit

Set objDomain     = Nothing

Set objWorkbook   = Nothing
Set objExcel      = Nothing

WScript.Quit 0


Они оба создают файл HTML & EXCEL, вся проблемма в том что когда создает HTML, то выводит по строчкам пользователей и с CN,OU и т.д., а в EXCEL в 1 ячейке также записывает всю информацию. Мне надо чтобы в HTML выводило в виде таблицы и без вывода CN,OU(в смысле вывод только имени пользователя и подразделения!), а в EXCEL в каждой ячейке свой вид данных.Помогите пожалуйста!!!!!!!!! У меня ничего не получается  smile 

Это сообщение отредактировал(а) Karas51 - 1.6.2009, 10:51
PM MAIL   Вверх
fixxer
Дата 2.6.2009, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: нет
Всего: 27



может Вам сюда?


--------------------
user posted image
PM MAIL ICQ   Вверх
aRixx
Дата 13.6.2010, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 2.11.2007

Репутация: нет
Всего: нет



Ну если Excell Вас устраивает, то можно просто из Excell в Html конвертнуть, например как тут (экспорт из excel в html)

PM MAIL   Вверх
Hugo121
Дата 14.6.2010, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 10.5.2010

Репутация: 1
Всего: 2



Так не пробовали?
Код

            objWorkbook.Sheets(1).Cells(intCounter + 3, 1).Value = objUser.Name
            objWorkbook.Sheets(1).Cells(intCounter + 3, 2).Value = objUser.AccountExpirationDate


Насчёт CN,OU у меня примера нет, но отрезать не проблема, если вывод всегда одинаков - или по количеству символов через Left, Right, Mid, или по пробелам.

Это сообщение отредактировал(а) Hugo121 - 14.6.2010, 12:32
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.