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

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

Автор: Rol157
Дата сообщения: 31.03.2005 08:58
Подскажите пожалуйста, каким образом с помощью скрипта (js) можно "вытянуть" владельца файла, созданного на сетевом диске.

Заранее спасибо.
Автор: AlexSSS
Дата сообщения: 31.03.2005 10:11
Rol157
лови пример на WSH из The Portable Script Center, перевести на JS и адаптировать под себя не должно составить проблем

пример вытаскивает все атрибуты всех файлов в каталоге
Retrieving Detailed Summary Information for a File

Set objShell = CreateObject ("Shell.Application")
Set objFolder = objShell.Namespace ("C:\Scripts")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim arrHeaders(13)
For i = 0 to 13
arrHeaders(i) = objFolder.GetDetailsOf (objFolder.Items, i)
Next
For Each strFileName in objFolder.Items
For i = 0 to 13
If i <> 9 then
Wscript.echo arrHeaders(i) _
& ": " & objFolder.GetDetailsOf (strFileName, i)
End If
Next
Wscript.Echo
Next

PS. А "The Portable Script Center" IMHO должен у стоять на компе у всех писателей скриптов, как Библия ;o)

"The Portable Script Center" (TechNet Script Center Sample Scripts) - это CHM файл, который устанавливается на локальный компьютер.

скачать его можно с Микрософта
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=B4CB2678-DAFB-4E30-B2DA-B8814FE2DA5A
Автор: maxkom
Дата сообщения: 31.03.2005 10:49
Подскажите, пожалуйста, как с помощью скрипта создавать иконку "Мой компьютер" на рабочем столе???
Искал на Microsoft Technet Scriptcenter и networkdoc , но ничего имено по этому поводу не нашел...
Автор: GaDiNa
Дата сообщения: 31.03.2005 11:04
Можно и мне свой вопросик ? Касаемо администрирования терминальных серверов.
Доброго времени суток.

К сожалению, наверное многи сталкивались с ситуацией: вырубилось электричество, сервера перешли на работу от УПСов, бездисковые терминалки потухли и в итоге на терминальном серваке куча (у меня от 10 до 15) отключенных, а то и нет (еще не раздуплилась система) терминальных сеансов с запущеными внутри разными Word-ами, Excel-ами, и что самое страшное - 1С-ами..
Вот тогда начинается лихорадочное подключение к этим сеансам.
Хорошо еcли сеанс на ICA - через Custom ICA Connections можно войти в отключенный сеанс и сохранив всю работу спокойно выйти с него..
Если RDP - у меня чтотоне получается... постоянно открывается новый сеанс, второй, под этим же юзером. Приходится просто резетить..

Я этот вопрос уже давно поднимал, но так до конца и не раозбрался..

Вобщем нужно решение, которое бы КОРРЕКТНО тушило Word, Excel и 1С в терминальном сеансе с помощью командной строки, тоесть в cmd.
Я повторюсь - сеанс может быть ЕЩЕ активным, но подключится к нему (shadow) уже невозможно..

В идеале это видится так - свет пропал, УПС запустил cmd-файл, который в текущих сеансах проверил наличие word.exe, excel.exe, 1cv77.exe и если они там есть - выдал бы этим процессам код на завершение с подтверждением сохранения данных (я надеюсь ничего глупого не говорю ? Это же возможно).
Все. Можно после этого запускать команду на выключение сервака.
Автор: VLkin
Дата сообщения: 31.03.2005 18:33

Цитата:
как минимум, можно подключитьodbccp32.DLL и воспользоваться его функцией SQLConfigDataSource

Спасибо, то что нужно
Автор: Rol157
Дата сообщения: 01.04.2005 06:39
AlexSSS, спасибо за подсказку, попробую.
И еще где можно взять The Portable Script Center IMHO?
Автор: Jovanotti
Дата сообщения: 01.04.2005 08:16
Rol157
Думаю AlexSSS имел в виду Microsoft Technet Scriptcenter
смотри шапочку внимательнее

Автор: AlexSSS
Дата сообщения: 01.04.2005 09:02
Существует и "The Portable Script Center" (TechNet Script Center Sample Scripts), который выполнен в виде CHM файла и который устанавливается на локальный компьютер.

скачать его можно с Микрософта
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=B4CB2678-DAFB-4E30-B2DA-B8814FE2DA5A
Автор: Jovanotti
Дата сообщения: 01.04.2005 12:03
AlexSSS
Это и имел в виду
Ладно, согласен 100% каждый скриптолог обязан это иметь
Выкладываю в шапку .....
Автор: PIL123
Дата сообщения: 01.04.2005 12:59
Здравствуй, всемогущий ALL! В новой конторе которой я недавно устроился очень много пользователей и информационных баз 1С. Пользуются 1С так или иначе почти каждый пользователь в компании и у каждого подключена, как минимум, одна база 1С. Ситуация в том, что физическое расположение баз мне известно, но и только. Мне не изветсны "Дружественные имена" этих баз - под "Дружественными именами" баз я имею ввиду имена баз, которые видны пользователю в списке баз в окошке "Запуск 1С:Предприятия". К тому же ситуация осложняется тем, что базы у различных пользователей могут быть подключены по разному: через обычную шару, через подмонтированный сетевой диск, например. Так вот для упорядочивания всего этого безобразия мне необходимо собрать информацию по каждому пользователю, которая содержала бы: [UNC-пути к базам] и соответсвующие им [Дружественные имена]. Опытным путём мною было установленно, что необходимая мне информация храниться в реестре в ключе: HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles (скрин тут: http://ourls.narod.ru/screen/reg1c.jpg ). В связи с этим у меня вопрос к знатокам: возможно ли как-то автоматизировать процедуру просмотра реестра на компьютерах домена для вычленения из него необходимой информации. При этом также на некоторых компьютерах сидит последовательно по несколько человек, т.е. просмотра только HKEY_CURRENT_USER не достаточно, а нужно просматиривать всех пользователей когда-либо логонившихся на текущем компьютере.
Автор: AlexSSS
Дата сообщения: 01.04.2005 13:12
PIL123
Я бы написал логон скрипт, который сбрасывал бы куда-нибудь на сервер в лог файл содержимое требуемых веток реестра, если они есть на этом компе.
Через какое-то время у тебя будет исчерпывающая информация об этих ветках для разных пользователей.
Автор: Jovanotti
Дата сообщения: 01.04.2005 13:15
PIL123
А в шапочку слабо посмотреть ?

Исчерпывающий набор док и линков по теме (то что нужно начинающему скриптологу )
http://www.networkdoc.ru/insop/whs.html

Смотрим раздел ... РАБОТА С РЕЕСТРОМ
Автор: metaframe
Дата сообщения: 01.04.2005 13:45
господа админы, подскажите можно ли ограничить вход пользователей на сервер 2003 по времени, то есть например "раньше 8 утра не входить"
или направте в нужную ветку!

Добавлено:
господа админы, подскажите можно ли ограничить вход пользователей на сервер 2003 по времени, то есть например "раньше 8 утра не входить"
или направте в нужную ветку!
Автор: IamDimulya
Дата сообщения: 01.04.2005 14:32
The Portable Script Center
Version 3.0, November 2004
http://download.microsoft.com/download/c/a/b/cabad822-b7eb-4815-928c-e59a9f2fafec/script_center.exe

Добавлено:
metaframe
1. Можно ограничить время входа в домен часами и днями недели.
Это означает, что вне указанного диапазона пользователя просто не пустят в систему.
2. Если речь идет о подключении к какому-либо конкретному ресурсу по сети или входе локально, то это возможно с помощью логин-скриптов, которые удобно назначать при помощи групповой политики (путь от пользователя) и при помощи скриптов на ресурсе (путь от ресурса).
Автор: PIL123
Дата сообщения: 01.04.2005 21:50
2 Jovanotti и AlexSSS

Спасибо большое, куда послали - сходил, ознакомился, однако там общие фразы, а мне бы что-нибудь по конкретнее, а?! Конкретно вот тут ( http://www.networkdoc.ru/files/insop/whs/read.html?whs-tr.html ) куда меня послал Jovanotti я, к сожалению, не нашёл решения вопроса.


Автор: AlexSSS
Дата сообщения: 02.04.2005 10:47
для WINDOWS XP можно сделать гораздо проще - воспользоваться коммандлайновой утилитой REG
REG QUERY /? - увидишь синтаксис
REG QUERY your_query_with_all_keys >c:\temp\reglog.txt - запишешь результат в файл
Автор: DimonVideo
Дата сообщения: 02.04.2005 14:51
Подскажите пожалуйста как написать скрипт который бы перезапускал apache при условии когда он забирает более 70 процентов ресурсов? На сервере стоит Debian Linux....
Автор: PIL123
Дата сообщения: 04.04.2005 09:25
AlexSSS
Jovanotti
AlexSSS

Уважаемые, спасибо большое, но мне бы более или менее готовое решение - в скриптах я 0. Операционные системы не только XP, встречаются и Windows 2000.
Автор: Jovanotti
Дата сообщения: 04.04.2005 09:27
DimonVideo

Цитата:
он забирает более 70 процентов ресурсов

Ты имеешь в виду процессорное время ?
Постоянно или периодически ?
Чем это тебя напрягает ??

Думаю лучше сходить в топ по Апачу.


Добавлено:
PIL123
Все мы когда-то начинали
Наша задача помочь всем желающим советом и линком
Непосредственно решать проблему должен ты САМ
Если тебя жмет время, выход один --- несколько бессонных ночей напротив монитора...
Кто сказал что быть Админом легко ?
Автор: AlexSSS
Дата сообщения: 04.04.2005 09:35
PIL123
> Операционные системы не только XP,
> встречаются и Windows 2000.
на 2000-м утилита REG тоже есть
вытащи с ее помощью их реестра нужную ветку, убедись, что там есть все что тебе надо, а после мы обьясним, как эту командную строку с REG засунуть в логонскрипт

Автор: AlexisZP
Дата сообщения: 06.04.2005 14:27
Всм доброго времени суток

Можно ли как-нибудь с помощью WSH/VBS сравнить дату создания файла с заранее определенной датой?
Нужно для того, чтобы вывести список файлов, дата создания которых превышает, скажем, 01.04.2005г.

if ((oFile.DateCreated)> "01.04.2005") then
For Each oFile In oFiles ' для всех файлов
Text = Text & oFile.DateCreated & vbTab
Text = Text & oFile.Name & vbTab
Text = Text & FormatNumber(oFile.Size, 0) & vbTab
Text = Text & vbCrLf
Next
MsgBox Text, vbOKOnly + vbInformation, Title
end if

проблема в том, как записать первую строчку, чтобы корректно отработал скрипт.
Спасибо!
Автор: AlexSSS
Дата сообщения: 06.04.2005 15:01
> if ((oFile.DateCreated)> "01.04.2005") then
как вариант, можешь воспрользоваться функциями преобразования в дату, напр

DateSerial(year, month, day)
Returns a Variant of subtype Date for a specified year, month, and day.

IF objFile.DateCreated>=DateSerial(05, 04, 01) then
Автор: igor_andreev
Дата сообщения: 06.04.2005 17:20
AlexisZP
Или как другой вариант в vbs есть функция сравнения дат DateDiff
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsfctdatediff.asp

Код:
if DateDiff("s", "01.04.2005", oFile.DateCreated)>0 then
Автор: AlexisZP
Дата сообщения: 07.04.2005 10:27
Спасибо отозвавшимся

Что по функции DateDiff, что по функции DateSerial выдается ошибка:

Ошибка: Требуется обьект: "
Код: 800А01А8
Источник: Ошибка выполнения Microsoft VBScript.

Нашел описание этих функций:
_http://www.webber.ru/articles/article.html?article_id=292
Вроде все соответствует по формату?
В чем может быть дело?
Автор: AlexSSS
Дата сообщения: 07.04.2005 10:42
AlexisZP
>по функции DateSerial выдается ошибка
это ты видимо что-то в коде напутал. Я тоже проверил этот вариант- он нормально работает.

Единственное предупреждение - когда пользуешься подобным заданием даты ("01.04.2005"), надо быть стопроцентно уверенным, что на всех компах, на которых будет работать этот скрипт, в системе стоит формат даты DMY. Реально же вполне могут быть как YMD, так и MDY. Кроме того, вполне реально может стоять другой разделитель, напр "/".
В этих случаях будет либо вылетать ошибка, либо сравнение будет проходить неправильно.
Автор: GaDiNa
Дата сообщения: 07.04.2005 10:56
...так что - никто не в курсе как это сделать:
http://forum.ru-board.com/topic.cgi?forum=8&topic=1908&start=560#15
извините за UP.
Автор: igor_andreev
Дата сообщения: 07.04.2005 11:13
AlexisZP
Ну если по приведенному примеру судить,то ты строчки местами перепутал

Цитата:
if ((oFile.DateCreated)> "01.04.2005") then
For Each oFile In oFiles ' для всех файлов

Попробуй так

Код:
Set fso = CreateObject("Scripting.FileSystemObject")
Set oFiles= fso.GetFolder("D:\path\folder").Files
compare_date=false

For Each oFile In oFiles
If DateDiff("s", "01.04.2005", oFile.DateCreated)>0 then
Text = Text & oFile.DateCreated & vbTab
Text = Text & oFile.Name & vbTab
Text = Text & FormatNumber(oFile.Size, 0) & vbTab
Text = Text & vbCrLf
compare_date=true
End If
Next

If compare_date=true then
MsgBox Text,, "Созданы после 01.04.2005"
Else
MsgBox "Файлов, созданных после 01.04.2005 нет"
End If
Автор: AlexisZP
Дата сообщения: 07.04.2005 11:20
Вот полностью код.
Формат даты - такой-же, как и проверяется, т.е. 01.04.2005 разделитель - тоже точка.
====
Option Explicit

Dim my_var
my_var = Date

Dim WSHLocalNet, WSHShell
Set WSHLocalNet = WScript.CreateObject("WScript.Network")
Set WSHShell = WScript.CreateObject("WScript.Shell")

Dim Text, Title, oFile
Dim fso, oFolder, oFiles, wsh

Text = "Список файлов в папке"
Title = "FSS"

Set wsh = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")

Set oFolder = fso.GetFolder("c:\2\get_files")
Text = Text & oFolder & vbCrLf & vbCrLf
Text = Text & "Дата создания:" & vbTab & vbTab & "Имя файла: " & vbTab & vbTab & "Размер файла:" & vbCrLf
Set oFiles = oFolder.Files ' получение списка файлов
'20

if DateDiff("s", "01.04.2005", oFile.DateCreated)>0 then
For Each oFile In oFiles
Text = Text & oFile.DateCreated & vbTab
Text = Text & oFile.Name & vbTab
Text = Text & FormatNumber(oFile.Size, 0) & vbTab
Text = Text & vbCrLf
Next
MsgBox Text, vbOKOnly + vbInformation, Title
'проверка формата даты
MsgBox Date, vbOKOnly + vbInformation, Title
end if
====
Похоже я опять где-то в простых вещах туплю

Добавлено:
igor_andreev
Точно! Почему-то я думал что сначала нужно определить условие по дате, а потом уже добавлять инф-ю в мессадж.

Вопрос снят, всем
СПАСИБО
Автор: Uriu
Дата сообщения: 08.04.2005 03:39
Уважаемые господа,
В скрипте (я привел конечно не все)
‘================
Set wbemServices = GetObject("winmgmts:\\")

Set wbemObjLog = wbemServices.InstancesOf("Win32_NTLogEvent")

For Each i In wbemObjLog
WScript.Echo "Time : " & i.TimeGenerated & VbCrLf '&_

Next
‘==================
возвращается: Time Generated: 20050408023935.000000+240

Подскажите пожалуйста, это что количество секунд с какого то момента времени (если это так то с какого момента), что после точки-000000+240.
Автор: AlexSSS
Дата сообщения: 08.04.2005 08:05
Uriu
Time Generated: 20050408023935.000000+240
на первый взгляд
год - 2005
месяц - 04
день - 08

дальше идет либо колическто секунд, либо, скорее всего, 02 часа 39 минут 35 секунд
000000+240 - бог его знает, чтобы не гадать надо просто посмотреть в документации формат возвращаемой TimeGenerated даты

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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