Почему vbs msgbox не работает с планировщиком задач для обычных пользователей?

#windows #vbscript

#Windows #vbscript

Вопрос:

У меня есть простой vbscript, который подсчитывает количество файлов / вложенных папок в папке, если число больше 5, появится сообщение пользователю. Я могу запустить этот скрипт вручную под учетной записью администратора или обычного пользователя, но после того, как я запланировал его в планировщике задач от имени администратора, он показывает, что задача запущена, [задача запущена] [действие запущено] [созданный процесс задачи], но это никогда не заканчивается, и я никогда не вижу всплывающего окна сообщения в разделе учетные записи пользователей. Что-то не так?

введите описание изображения здесь


введите описание изображения здесь


введите описание изображения здесь


Код:

 Set filesys = CreateObject("Scripting.FileSystemObject") 
Set shell = CreateObject("Shell.Application")

Set RTMFolder = filesys.GetFolder("C:workRTM") 
Set PMFolder = filesys.GetFolder("C:workPowermill")
Set RTMFiles = RTMFolder.Files 
Set PMFiles = PMFolder.SubFolders
NumberOfRTM = RTMFiles.Count 
NumberofPM = PMFiles.Count
'Wscript.echo NumberOfRTM
Set wshShell = WScript.CreateObject( "WScript.Shell" )
strComputerName = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )




If NumberOfRTM >= 5 Then
msgbox "Dear user on " amp; strComputerName amp; vbcrlf amp; " " amp; vbcrlf amp; "There are more than 5 RTM files saved on C:WORKRTM folder, Please move them to K drive.", amp;h51000, "Clean up C:workRTM"
shell.Open "C:WORKRTM"
End If

If NumberofPM >= 5 Then
msgbox "Dear user on " amp; strComputerName amp; vbcrlf amp; " " amp; vbcrlf amp; "There are more than 5 Powermill files saved on C:WORKPowermill folder, Please Clean it up.", amp;h51000, "Clean up C:workPowermill"
shell.Open "C:WORKPowermill"
End If 

'Release memory
Set RTMFolder = Nothing 
Set PMFolder = Nothing
Set RTMFiles = Nothing
Set PMFiles = Nothing
  

Комментарии:

1. Исправлена проблема. необходимо настроить [использовать следующую учетную запись для запуска задачи] как пользователя или группу пользователей, я использовал учетную запись администратора, она работала только при входе в систему администратора.

Ответ №1:

Попробуйте вашу программу / скрипт, чтобы c:windowssyswow64cscript.exe или даже c:windowssystem32cscript.exe и тогда пусть аргумент будет c:path_to_your_vbsyour.vbs

Комментарии:

1. перепробовал все комбинации cscript и wscript с аргументом / start в настройках, ошибка или запуск без окна сообщения …. Я думаю, возможно, нужно что-то настроить для всплывающего окна vbs msgbox….

2. Хм .. может быть, щелкнуть правой кнопкой мыши по файлу .vbs и посмотреть, установлено ли в нем максимальное время выполнения. Если это так, попробуйте и снимите флажок, если это вообще проблема. Это возможно.

3. выполнил некоторый поиск. некоторые пользователи говорят: «Вы не можете использовать msgbox в запланированной задаче. Вы никогда не увидите его, и на них нет таймаута, поэтому задача, вероятно, выполняется со скрытым msgbox в вашей системе.» Я хочу знать, почему….

4. Хороший момент, и я вижу, что вы используете x = msgbox, но на самом деле вы нигде не используете x. поскольку x на самом деле не нужно ничему назначать, попробуйте сделать wscript.echo вместо x = msgbox, посмотрим, поможет ли это.

5. @SeanW. используйте bat-файл для вызова vbs, он работал только под логином администратора. Я изменил свой код x=msgbox () стал msgbox xxxx и установил [запустить задачу от имени пользователя или группы пользователей] вместо администратора, vbs теперь хорошо работает с планировщиком задач для пользователей. все дело было в учетной записи, которая запускает задачу.