#excel #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
с аргументом / запуск в настройках, ошибка или запуск без окна сообщения …. Я думаю, возможно, нужно что-то настроить для всплывающего окна 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 теперь хорошо работает с планировщиком задач для пользователей. все дело было в учетной записи, которая запускает задачу.