У меня есть расписание задач, в котором запускается пакетный файл, который вызывает скрипт VBS для создания соединения с базой данных среди прочего.
Скрипт VBS открывает соединение с базой данных как указанный пользователь («ПользовательID = my_db_user; Password = my_db_pswd; ").Проблема заключается в том, что при запуске через планировщик задач идентификатор пользователя и пароль в коде VBS полностью игнорируются, и он пытается открыть базу данных в качестве пользователя расписания задач «MYDOMAIN \ MY_TASK_SCH_USER», но в базе данных такого пользователя нет.и мы не хотим его создавать.
Почему, пожалуйста?
Например: настройка расписания задачи похожа на: * General ** При запуске задачи используйте следующую учетную запись пользователя: 'MYDOMAIN \ MY_TASK_SCH_USER'(отличается от' Автор ') ** Запускать независимо от того, вошел ли пользователь в систему или нет ** Запускать с наивысшими привилегиями (пробовал с и без) ** Настроить для: Windows Vista, Windows Server 2008 * Действие: ** Запустить программу: C: \ test \ my_batch_file.bat ** Начать с (необязательно): C: \ test \
Сервер имеет Windows Server 2008 R2 Standard, SP1 и имеет 64-битную
ОШИБКИ ПРИМЕРА:
2019-03-18 14:46:59 - ERROR: Unable to open the database connection.
2019-03-18 14:46:59 - ERROR #1: Error Description: (-2147217843) Login failed for user 'MYDOMAIN\MY_TASK_SCH_USER'.
ПРИМЕРНАЯ ГРУППА (my_batch_file.bat):
cscript C:\test\my_vbs_file.vbs 1>C:\test\test.log 2>&1
TASKKILL /F /IM cmd.exe
ПРИМЕР VBS (my_vbs_file.vbs):
Option Explicit
On Error Resume Next
Dim objConn, objRecSet
' Create database connection
Set objConn = CreateObject("ADODB.Connection")
If Err.Number <> 0 Then
' Error handling
Wscript.Echo FormatDateTime(Now) & " - ERROR: Unable to create database connection &/or record set."
End If
' Open a connection to the database
objConn.Open _
"Provider=SQLOLEDB;" & _
"Data Source=MYDBSERVER;" & _
"Trusted_Connection=Yes;" & _
"Initial Catalog=MyDatabase;" & _
"User ID=my_db_user;Password=my_db_pswd;"
If Err.Number <> 0 Then
' Error handling
Wscript.Echo FormatDateTime(Now) & " - ERROR: Unable to open the database connection."
Wscript.Echo FormatDateTime(Now) & " - ERROR #1: Error Description: (" & Err.Number & ") " & Err.Description
End If
' Close the database connection & record set
objConn.Close
Set objConn = Nothing
' Returns the given date in the format: "yyyy-mm-dd hh:mm:ss"
Function FormatDateTime( dte_Date )
FormatDateTime = Year(dte_Date) & "-" & _
Right("0" & Month(dte_Date) ,2) & "-" & _
Right("0" & Day(dte_Date) ,2) & " " & _
Right("0" & Hour(dte_Date) ,2) & ":" & _
Right("0" & Minute(dte_Date),2) & ":" & _
Right("0" & Second(dte_Date),2)
End Function