Надежный способ запуска сценариев регистрации

Дарвин Саной
15.12.2002
Открытые системы

Листинг 1: Сценарий мониторинга для выполнения регистрации.

'Простой мониторинг для регистрации с использованием соединений VPN / RAS / Dynamic IP
aSubnetList = Array("10.1.4.0/255.255.255.0",
 "10.1.4.0/255.255.252.0")
bAllMatches = True
' Начало метки A
Set Events = GetObject("winmgmts:\\.\root\cimv2")_
 .ExecNotificationQuery ("SELECT TargetInstance.Name_
 FROM __InstanceOperationEvent WITHIN 4 WHERE_
 TargetInstance ISA 'Win32_NetworkAdapterConfiguration'")_
' Конец метки A
Do
' Начало метки B
Set ConnectEvent = Events.nextevent
' Конец метки B
If VarType(oConnectEvent.TargetInstance.Ipaddress(0)) = 8 Then
' Начало метки C
bFoundMatch = SubnetMatch(aSubnetList, ConnectEvent.TargetInstance.Ipaddress(0),
bAllMatches, aListofMatches)
' Конец метки C
End If
' Начало метки D
If bFoundMatch Then
' Конец метки D
' Начало метки E
Set oShell = Createobject("wscript.shell")
Set oNet = CreateObject("Wscript.Network") On Error Resume Next
' Начало метки F
oNet.RemoveNetworkDrive "z:", True, True
oNet.MapNetworkDrive "z:", "\\myserver\myshare"
Err.clear
RunCmd = oShell.Run("z:\logonscript.vbs", 1, True)
Err.clear
oNet.RemoveNetworkDrive "z:", True, True
Err.clear
' Конец метки F
On Error GoTo 0
' Конец метки E
bFoundMatch = False
End If
Loop
Private Function SubnetMatch(aSubnetsToMatch, IPAddress, bAllMatches, aMatchList)
For each subnetpair in aSubnetsToMatch
pair = split(subnetpair, "/", 2)
subnetoctets = split(pair(1), ".", 4)
ipaddroctets = split(IPAddress, ".", 4)
If pair(0) = join(Array(ipaddroctets(0) and subnetoctets(0), ipaddroctets(1) and subnetoctets(1), _
ipaddroctets(2) and subnetoctets(2), ipaddroctets(3) and subnetoctets(3)),".") Then
SubnetMatch = True
If MatchList = "" Then
MatchList = MatchList & subnetpair
Else
MatchList = MatchList & ", " & subnetpair
End If
If not bAllMatches Then
aMatchList = Array(subnetpair)
Exit For
End If