Тема: HTA: Обработка ошибки
Здравствуйте уважаемые форумчане, есть следующий скрипт для поиска смены логона на удаленном ПК, в нашем домене, есть 2 организации, к 1 из них у нас нет доступа и мы не имеем доступа к их ПК. Пытаюсь закрыть ошибки в этом скрипте, она возникает на 58 строчке и пишет разрешение отклонено, сделал чтобы вывод ошибки шел в строчку лога, но ошибка туда выводится через раз - т.е. 1 раз она пишет в лог, а 2 раз вылетает ошибкой. Как это исправить?
<HTML>
<HEAD>
<TITLE>ProgPC</TITLE>
<HTA:APPLICATION ID="Prog"
/>
<SCRIPT LANGUAGE="JScript">
self.resizeTo(900,560); // To make the window XXXX pixels wide and YYYYY pixels tall
</SCRIPT>
<style>
#PreBottomLogs{background-color:yellow;height:20px;width:68%;border: 1px solid #aaa;}
</style>
<SCRIPT Language="VBScript">
'---------------------------------------------------
' Обработчик ошибок
'---------------------------------------------------
function Fail_Host()
if (ComputerName.value = "") then
PreBottomLogs.innerHTML = PreBottomLogs.innerHTML & "BAD HOST GO away!"
exit function
end if
End Function
function ShowError()
if (ComputerName.value = "") then
Fail_Host
PreBottomLogs.innerHTML = PreBottomLogs.innerHTML & "Error #" & err.Number & ": " & Err.Description & " " & Err.Source
Err.Clear
end if
End Function
'---------------------------------------------
' Обработчик WinLogon
'---------------------------------------------
Sub HandlerWL
strComputer = ComputerName.value
If (strComputer = "") Then
ShowError
else
PreBottomLogs.innerHTML = ""
dim sid, subkeys, path, acct, strDomainName, strAccName, WSHShell
dim userPath,userValueName,userValue
Const HKLM = &h80000002
Const profiles = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
Set WSHShell = CreateObject("WScript.Shell")
If Err.Number <> 0 Then 'Обработка ошибки, прерываем выполнение'
vuvodError = "Доступ отклонён!"
PreBottomLogs.innerHTML = PreBottomLogs.innerHTML & "ERROR: " & vuvodError
On Error GoTo 0
else
On Error Resume Next
On Error GoTo 0
PreBottomLogs.innerHTML = ""
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set oReg = GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")
oReg.EnumKey HKLM, profiles, subkeys
'Чтение текущего пользователя в Автологоне - DefaultUserName
userPath = "Software\Microsoft\Windows NT\CurrentVersion\Winlogon\"
userValueName = "DefaultUserName"
oReg.GetStringValue HKLM,userPath,userValueName, userValue
For Each sid In subkeys
path = WSHShell.ExpandEnvironmentStrings(path)
oReg.GetStringValue HKLM, profiles & "\" & sid, "ProfileImagePath", path
Set acct = objWMIService.Get("Win32_SID.SID='" & sid & "'")
strDomainName = strDomainName & acct.ReferencedDomainName & "<br>" & VbCrLf
strAccName= strAccName & acct.AccountName & "<br>" & VbCrLf
Next
'-----------------------------Result----------------------------------------------------------
strHTML = "<table style='border-collapse: collapse' bgcolor=#F5F5F5>" &_
"Введите логин пользователя и домен для ПК " & strComputer & "<br>" & "Текущий:" & userValue & " " &_
"<input type='button' class='button' onclick = 'RemoteSC_WinLogonVLXP()' value='Обновить список пользователей ПК'>" &_
"<br>" &_
"<tr><td><input type='text' id='LogonWL' name='LogonWL' value=''>Введите логон </td></tr>" &_
"<tr><td><input type='text' id='DomainWL' name='DomainWL' value='Mechel'>Введите домен </td></tr>"&_
"<tr><td><input type='button' class='button' onclick = ' WinLogonVLXP()' value='Изменить имя'></td></tr>"&_
"<tr><td>Учетная запись</td><td>Домен</td></tr>" &_
"<tr><td>" &strAccName & "</td><td>" & strDomainName & "</td></tr>"
strHTML = strHTML & "</table>"
DataArea.InnerHTML = Trim(strHTML)
End If
end if
End sub
</SCRIPT>
</HEAD>
<BODY>
Компьютер
<input type="text" name="computername" size="18" id="computername" >
<input type="button" name="start" onclick="handlerwl()" value="handlerwl" >
<div id="dataarea">
</div>
<span id="PreBottomLogs" title="логи"></span>
</BODY>
</HTML>