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

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

Автор: YNY
Дата сообщения: 07.12.2010 10:51
либо сначало завершать сеанс пользователя, а уже потома вырубать комп)
Автор: YURETS777
Дата сообщения: 07.12.2010 10:52
YNY

первый вариант предпочтительнее

Автор: YNY
Дата сообщения: 07.12.2010 11:05
[more=Вот]
Win32ShutdownTracker Method of the Win32_OperatingSystem Class
The Win32ShutdownTracker method provides the same set of shutdown options supported by the Win32Shutdown method in Win32_OperatingSystem, but it also allows you to specify comments, a reason for shutdown, or a timeout. The calling process must have the SE_SHUTDOWN_NAME privilege.

uint32 Win32ShutdownTracker(
[in, optional] uint32 Timeout,
[in] string Comment,
[in] uint32 ReasonCode,
[in] sint32 Flags
);

Parameters
Timeout
Time, in seconds, before shutdown takes place. The default value is 0 (zero).

Comment
Message to display in the shutdown dialog box that is also stored as a comment in the event log entry.

ReasonCode
Reason for initiating the shutdown.

Flags
Bitmapped set of flags to shut the computer down. To force a command, add the Force flag (4) to the command value. Using Force in conjunction with Shutdown or Reboot on a remote computer immediately shuts down everything (including WMI, COM, and so on), or reboots the remote computer. This results in an indeterminate return value.

Value Meaning
0
0x0
Log Off

4
0x4
Forced Log Off (0 + 4)

1
0x1
Shutdown

5
0x5
Forced Shutdown (1 + 4)

2
0x2
Reboot

6
0x6
Forced Reboot (2 + 4)

8
0x8
Power Off

12
0xC
Forced Power Off (8 + 4)



[/more]все описание функции вырубания win и 2000
Returns zero (0) to indicate success. Any other number indicates an error.



Добавлено:
первый вариант предпочтительнее зато второй я тебе уже привел) и он проще (не нужно искать всех активных юзеров, не нужно знать их пароли)
Автор: cluster
Дата сообщения: 09.12.2010 15:46
Понадобилось собрать с компов в локальной сети (домен) след. информацию:
- Имя ПК (в качестве имени файла)
- объём свобод. места на системном разделе
- Версию ОС. Сервис пак.

В идеале отчётный файлик будет складываться на сетевой ресур, откуда всё это можно и посмотреть.

Пробовал сделать с помощью Everest, но у него в отчёте слишком много лишнего, даже когда указаны только нужные параметры для отчёта.

А со скриптами я что-то не очень лажу. Если есть наработки в данном направлении, прошу у вас помощи.
Автор: Alukardd
Дата сообщения: 09.12.2010 16:57
cluster
это может сделать не замысловатый батник...
Задачи на bat-файлах - здесь вам его быстро помогут наклепать... мне честно лень и я сижу в лине)))
Автор: OnePrg
Дата сообщения: 09.12.2010 19:49
Каждый день делаю одни и те же действия:
1. подключаю съёмный диск
2. на нём подключаю диск-контейнер TrueCrypt
3. на этом диске расшариваю одну папку для общего доступа, а другую с ограничением прав доступа

Вопрос: как автоматизировать действие 3 батником, скриптом или ещё какой полезностью?
Автор: YURETS777
Дата сообщения: 09.12.2010 22:17
Нужен vb-скрипт, котоый сканирует диапазон сети (192.168.1.1 - 192.168.1.254) и выводит netbios-имена пингуемых компов.

пинг по диапазону есть:

Код:
Function fnPing( strHost )
Dim objPing, objRetStatus
Set objPing = GetObject( "winmgmts:{impersonationLevel=impersonate}" ).ExecQuery _
( "select * from Win32_PingStatus where address = '" & strHost & "'" )

For Each objRetStatus in objPing
If IsNull( objRetStatus.StatusCode ) or objRetStatus.StatusCode <> 0 Then
fnPing = -1
Else
fnPing = objRetStatus.ResponseTime
End If
Next
End Function
Автор: Alukardd
Дата сообщения: 09.12.2010 22:31
YURETS777
ну вот кусок vbs которого вам не хватало, вставляете его после успешного пинга
Код: set WSHShell = CreateObject("WScript.Shell")
sIP="172.17.0.3"
Set objExec = WSHShell.Exec("nbtstat -A " & sIP)
CompName = objExec.StdOut.ReadAll
NetBiosName = trim(mid(CompName,instrRev (CompName,"--")+8,16))
Автор: YURETS777
Дата сообщения: 09.12.2010 23:08
Alukardd
Это всё понятно, хотелось бы резолвить через WMI или API
юзать в цикле шелл не есть хорошо.
Автор: Alukardd
Дата сообщения: 09.12.2010 23:38
YURETS777
у шото я не понял... а что вы от wmi хотите? цикл значит на пинг вы гонять собираетесь, а имя из воздуха материализовать хотите?
Автор: YNY
Дата сообщения: 10.12.2010 08:34
YURETS777 юзать в цикле шелл не есть хорошо а как на счет [more=такова]
Set WshNetwork = WScript.CreateObject("WScript.Network")
WScript.Echo "Computer Name = " & WshNetwork.ComputerName
[/more]способа ?


Автор: OnePrg
Дата сообщения: 10.12.2010 12:02
Alukardd


Цитата:
net share /? - как ограничить права - хз, поищите на просторах инета...

Нашел здесь http://forum.ru-board.com/topic.cgi?forum=62&bm=1&topic=21297&start=1760


Цитата:
net share MyFolder=T:\xxx\folder /GRANT:user1,FULL /GRANT:Everyone,READ
ключик /GRANT есть только в net share /? Висты+, XP не понимает


спасибо
Автор: cluster
Дата сообщения: 10.12.2010 14:16
Alukardd

Цитата:
Задачи на bat-файлах - здесь вам его быстро помогут наклепать

Спасибо. Там помогли. А я параллельно настрочил на VBS

Код: ' Выводит данные о сервис-паке и свободном месте диска С
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOS in colOSes
Wscript.Echo "Computer Name: " & objOS.CSName
WScript.Echo "Service Pack: " & objOS.ServicePackMajorVersion & "." & _
objOS.ServicePackMinorVersion
Next

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOSes = objWMIService.ExecQuery("select * from Win32_LogicalDisk Where DeviceID = 'C:'")
For Each objOS in colOSes
Wscript.Echo "Free Space on " & objOS.DeviceID & " " & Round(objOS.FreeSpace / 1073741824, 1) & " Gb (" & objOS.FileSystem & ")"
Next
Автор: Alukardd
Дата сообщения: 10.12.2010 15:20
cluster
Цитата:
Спасибо. Там помогли. А я параллельно настрочил на VBS
да я зашел проверить, как вы там
что касается меня, то я больше склонен к батникам, ну не нравится мне vbs, несмотря на то, что он функциональнее...

OnePrg, я справку на XP смотрел...
Автор: YURETS777
Дата сообщения: 10.12.2010 17:22
YNY

Не такой вариант не подойдёт, я с сервера сканирую сетку, мне нужно вывести список станций которые еще в сети.

Alukardd

nbstat выдает такое:

Office LAN:
Адрес IP узла: [192.168.1.42] Код области: []

Автор: YNY
Дата сообщения: 10.12.2010 19:50
YURETS777 ну а [more=вот такой]
strComputer = "192.168.1.4"

NBTHN(strComputer)

Sub NBTHN(ip)
Set objWMIService = GetObject( "winmgmts:\\" & strComputer & "\root\cimv2")
Set NetworkSet = objWMIService.ExecQuery ("Select DNSHostName from

Win32_NetworkAdapterConfiguration")

For Each NetworkC in NetworkSet
    If Not IsNull(NetworkC.DNSHostName) Then
     msgbox NetworkC.DNSHostName
    exit for
    end if
Next
End Sub
[/more]. Только учти что работает не быстро + обработка ошибки отсутствует, т.к. ты всеж для отвечающих на пинг будешь использовать
Автор: Alukardd
Дата сообщения: 10.12.2010 23:52
YURETS777
ну во первых у меня все нормально работает, я проверял... После этих строк идет таблица NetBIOS еще с 5строками... куды она у вас подевалась я хз...
Автор: YNY
Дата сообщения: 11.12.2010 13:26
Alukardd, у меня все нормально работает у меня в виртуальной машине тоже не робит "как нада" если не верный IP указать)

Автор: firsteducation
Дата сообщения: 11.12.2010 18:44
Здрасти всем! кто нибудь знает как в авторане к флехе сделать параметр для скрытия некоторых папок, которые на ней находятся, чисто чтобы никто не трогал, папки нужные на моей системе некоторые операции автоматом исполняют, мне это чтоб кто попало не стёр нужное, но при этом надо именно при инициализации флехи сделать их скрытыми.
Автор: Alukardd
Дата сообщения: 11.12.2010 19:52
firsteducation
зачем? почему так просто не скрыть? какой в этом толк если при каждом втыкании они будут скрываться?
вообще вызываешь из autorun.inf батник, а из него уже меняешь атрибуты папок своих... хотя можно наверное и cmd.exe вызвать с аргументами прямо из autorun...
Автор: YURETS777
Дата сообщения: 11.12.2010 20:27
Alukardd

Получилось, всё работает, я даже пинг переписал под шел, только на XP почему-то окна пинга развернуты и активны, как бы их скрыть.
Скан сети из 4-х диапазонов по 256 адресов длится пол часа.

Вот как выглядит рабочий код:

[more]

Код:
'================================================================================
'Option Explicit

Const NETWORK1 = "192.168.12."
Const NETWORK2 = "192.168.150."
Const NETWORK3 = "192.168.154."
Const NETWORK4 = "192.168.61."


Set objFSO = CreateObject("Scripting.FileSystemObject")
destsd = "pingz_test2.txt"

Dim i
Dim strAddress, pingrez, nbnme, flnmm

Do '&#9524;хёъюэхўэ&#8730;щ Ўшъы
dtNow = Time()
dtNow2 = Date()
currtme = Right("00" & CStr(Hour(dtNow)), 2) & ":" & Right("00" & CStr(Minute(dtNow)), 2)
currtme2 = Right("00" & CStr(Hour(dtNow)), 2) & "_" & Right("00" & CStr(Minute(dtNow)), 2)
currdte = Right("00" & CStr(Day(dtNow2)), 2) & "_" & Right("00" & CStr(Month(dtNow2)), 2) & "_" & Year(dtNow2)
If (currtme = "02:00") or (currtme = "08:00") or (currtme = "13:00")or (currtme = "18:00") Then
'If True Then
flnmm = currdte & "_" & currtme2 & ".txt"
Set objTextFile = objFSO.CreateTextFile(flnmm, True)
'-------------------------------------------------------------------------------
For i = 1 To 254
strAddress = NETWORK1 & i
pingrez = fnPing( strAddress )
If pingrez <> "-1" Then
nbnme = fnNbname(strAddress)
objTextFile.WriteLine strAddress & vbtab & pingrez & vbtab & nbnme
End If
Next
'-------------------------------------------------------------------------------
For i = 1 To 254
strAddress = NETWORK2 & i
pingrez = fnPing( strAddress )
If pingrez <> "-1" Then
nbnme = fnNbname(strAddress)
objTextFile.WriteLine strAddress & vbtab & pingrez & vbtab & nbnme
End If
Next
'-------------------------------------------------------------------------------
For i = 1 To 254
strAddress = NETWORK3 & i
pingrez = fnPing( strAddress )
If pingrez <> "-1" Then
nbnme = fnNbname(strAddress)
objTextFile.WriteLine strAddress & vbtab & pingrez & vbtab & nbnme
End If
Next
'-------------------------------------------------------------------------------
'-------------------------------------------------------------------------------
For i = 1 To 254
strAddress = NETWORK4 & i
pingrez = fnPing( strAddress )
If pingrez <> "-1" Then
nbnme = fnNbname(strAddress)
objTextFile.WriteLine strAddress & vbtab & pingrez & vbtab & nbnme
End If
Next
'-------------------------------------------------------------------------------
objTextFile.Close
'WScript.Quit 0
End If
WScript.Sleep 10000
Loop While True
'-------------------------------------------------------------------------------
Function fnPing(strIp)
set WSHShell = CreateObject("WScript.Shell")
Set objExec = WSHShell.Exec("ping -n 1 " & strIp)
pngrzlt = objExec.StdOut.ReadAll
If InStr(pngrzlt, "TTL=") Then
posss1 = instr(pngrzlt,"время")+5
posss2 = instr(pngrzlt,"TTL=")
difff = posss2 - posss1
fnPing = trim(mid(pngrzlt,posss1,difff))
Else
fnPing = "-1"
End If
End Function
'================================================================================
Function fnNbname( strIp )
set WSHShell = CreateObject("WScript.Shell")
Set objExec = WSHShell.Exec("nbtstat -A " & strIp)
CompName = objExec.StdOut.ReadAll
If InStr(CompName, "Узел не найден.") Then
fnNbname = "Узел не найден"
Else
fnNbname = trim(mid(CompName,instrRev (CompName,"--")+8,16))
End If
End Function
'================================================================================

Автор: firsteducation
Дата сообщения: 12.12.2010 08:46
СпасибоAlukardd, я нечто типа твоего совета сделал: настрочил vbs скрипт, который в скрытом режиме пускает батник, который скрывает папки, вот и всё!
Автор: YNY
Дата сообщения: 12.12.2010 16:01
YURETS777> Получилось, всё работает... )))))))) Ну ты приколист 4 раза одно и тоже для каджой сетки сделал вместо того, чтоб написать процедуру)))))))))))
Автор: YURETS777
Дата сообщения: 12.12.2010 19:06
YNY
копипаст рулит, вложенность скорости не увеличит.

Так что делать с этим:
Автор: Alukardd
Дата сообщения: 12.12.2010 20:55
YURETS777
Цитата:
Так что делать с этим
искать в инете решение проблемы... nbtstat должен работать нормально, или мб вы его как-то по особенному вызываете?
Автор: olview
Дата сообщения: 13.12.2010 06:59
эх...
Автор: attaattaatta
Дата сообщения: 13.12.2010 09:01
YURETS777
Вызов из cmd
Ну или "cmd /c nbtstat -a"
Автор: YURETS777
Дата сообщения: 13.12.2010 15:59
Alukardd
Не, у меня сначала был прописан CScript по умолчанию, выполнялось как на скриншоте, потом прописал wscript //H:Wscript , вроде запускается wscript, но консольные окна почему-то активны и развернуты

ЗЫ

Этот косяк наблюдается на одной XP-шной станции, пробовал запускать скрипт на сервере (Windows Server 2003 SP2 R2) на нем всё ОК.
Автор: firsteducation
Дата сообщения: 13.12.2010 16:35
Ребята, кто нибудь знает как мне файлом придать свойства папке в которой он находится, буду очень признателен!
Автор: Alukardd
Дата сообщения: 13.12.2010 18:35
firsteducation
xcacls справка - ищем слова "наследование"

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576

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


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