Планирование задачи, выполняемой при входе (любого пользователя) в vbScript - PullRequest
0 голосов
/ 06 июня 2018

Хорошо, поэтому я искал ответ на этот вопрос, и хотя я нашел похожие примеры для этой проблемы, они, похоже, не работают для меня.Я пытаюсь запланировать задачу по уничтожению скайпа, когда пользователь входит в систему, чтобы людям не приходилось закрываться при каждом входе в систему.Я должен сделать это, написав код, а не вручную, потому что это будет скрипт для настройки новых компьютеров.Вот мой код, который пишет задачу:

обратите внимание, что закомментированные строки взяты из решений, которые я пробовал, но не смог работать так, как я хотел, чтобы

Option Explicit

Dim wShell, outFile, objFSO, ret

Set wShell = CreateObject ("Wscript.Shell") 
wShell.Run "N:\Internfolder\INCA_Scripts\SkypeKill.vbs"
'wShell.Run "cmd start ""N:\Internfolder\INCA_Scripts\Schedule_SkypeKill.bat"""
'wShell.Run "N:\Internfolder\INCA_Scripts\Schedule_SkypeKill.bat"
wShell.Run "SCHTASKS /create  /tn ""Schedule_Kill_Skype""  /tr ""N:\Internfolder\INCA_Scripts\SkypeKill.vbs"" /sc onlogon", 0   

'set wShell = Nothing
'WScript.sleep(15000)
WScript.echo "completed"

, и вотVBS-файл для SkypeKill:

Dim oShell : Set oShell = CreateObject("WScript.Shell")
dim timer
timer = 0

Do
    'attempt to kill skype (lync.exe) 
    r = oShell.Run("taskkill /F /IM lync.exe",0, True)

    'if r = 0, then skyp was opened, then killed
    if r= 0 then
        WScript.echo "Skype was opened, but has been termiated. Hit 'Enter' to exit."
        WScript.quit

    'else, we wait until it is opened for 35 seconds, and kill it if it appears
    else
        WScript.sleep(3000)
        timer = timer + 3
        if timer = 35 Then Exit Do
    end if
Loop

WScript.echo "Skype kill has been attempted"

Последняя важная информация заключается в том, что когда я планирую задачу для запуска этого сценария, он говорит, что система не может найти указанный файл, однако файл SkypeKill.vbsнаходится в указанном месте (N: \ Internfolder \ INCA_Scripts \ SkypeKill.vbs), что немного странно.

Так что с этим у меня есть пара вопросов.Я предполагаю, что что-то не так с тем, как я пытаюсь запланировать задачу, учитывая, что она не будет отображаться в планировщике задач, когда я запускаю первый блок кода.но ни один код не выдает никаких ошибок.Как я могу получить это, чтобы фактически записать в планировщик задач и убить Skype, когда пользователь вошел в систему и запустился?Имеет ли значение тот факт, что я работаю в Windows 7 и Windows 10 при попытке выполнить эту задачу?или есть более простой способ сделать это с помощью кода, который я пропускаю.Пожалуйста, помогите в ближайшее время!Спасибо!

1 Ответ

0 голосов
/ 06 июня 2018

Спасибо. Однако я решил проблему, просто включив следующий код перед выполнением функций оболочки:

If WScript.Arguments.Count = 0 Then Set objShell = CreateObject("Shell.Application") objShell.ShellExecute "wscript.exe", "c:\Users\admin\Documents\selfConfigure.vbs -1", "", runas", 1 End If

, что повышает мои привилегии для доступа к диску / файлупути мне нужно получить доступ, так как я получаю сообщение об ошибке «Отказано в доступе» в командной строке.проблема была решена, и задача была записана в планировщик.

...