none
Microsoft.Update.Session + Планировщик заданий RRS feed

  • Вопрос

  • Подскажите в чем грабли?

    Часть из большого скрипта, которая ищет обновления.

    $log="c:\script\test.log"
    
    $UpdateSession = New-Object -com Microsoft.Update.Session
    $UpdateSearcher = $UpdateSession.CreateupdateSearcher()
    $SearchResult = $UpdateSearcher.Search("IsAssigned=1 and IsHidden=0 and IsInstalled=0")
    "$($searchResult.Updates.Count) updates found" > $log
    
    trap {
      "$(get-date) Exception ""$($_.Exception.Message)""" | Out-File $log -Append
      "$(get-date) Exception ""$($_.Exception.innerException.Message)""" | Out-File $log -Append
      "$(get-date) Occured in script ""$($_.InvocationInfo.ScriptName)"" at line [$($_.InvocationInfo.ScriptlineNumber), $($_.InvocationInfo.offsetInLine)] ""$($_.InvocationInfo.Line)""" | Out-File $log -Append
    
      break;
    }

    В планировщеке настроенно задание. Задание запускается от обычного пользователя с повышенными правами. В политику безопастности "Вход в качестве пакетного задания" пользователь добавлен. Результатом выполнения этого скрипта из планировщика становится ошибка доступа.

    Exception "Адресат вызова создал исключение."
    Exception "Отказано в доступе. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))"
    Occured in script "C:\script\test.ps1" at line [5, 39] "$SearchResult = $UpdateSearcher.Search("IsAssigned=1 and IsHidden=0 and IsInstalled=0")"
    

    Но если этот скрипт выполнить используя того же юзера из консоли Powershell, то скрипт выполняется без ошибок.

    PS C:\Users\test> C:\Script\test.ps1
    2 updates found
    PS C:\Users\test>


    19 ноября 2012 г. 6:20

Все ответы

  • А попробуйте создайте батник, в который пропишите:

    powershell.exe C:\path_to_ps1_script\script.ps1

    И запускайте не скрипт, а батник.

    19 ноября 2012 г. 7:31
  • Попробуйте вот так например


    MCP,MCTS
    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"

    19 ноября 2012 г. 12:20
  • Пробовал, прежде чем писать пост, результат прежний "$UpdateSearcher.Search("IsAssigned=1 and IsHidden=0 and IsInstalled=0")" из планировщика дает ошибку, из командной строки без ошибки.

    • Изменено Angel-Keeper 19 ноября 2012 г. 22:15
    19 ноября 2012 г. 22:07
  • Как то по-другому можно?

    Мне известны два варианта:

    1. powershell.exe -command "&{C:\Script\test.ps1}"

    2. powershell.exe  -File C:\Script\test.ps1

    Вопрос не в том, как запустить из планировщика скрипт, а в том, почему из консоли Powershell "$UpdateSearcher.Search("IsAssigned=1 and IsHidden=0 and IsInstalled=0")" выполняется без ошибок, а при запуске из шедулера отказано в доступе. Главное не понятно, где ему отказано в доступе Папка/Реестр?


    • Изменено Angel-Keeper 19 ноября 2012 г. 22:14
    19 ноября 2012 г. 22:13
  • А если банально добавить этого пользователя в локальную группу Администраторы WSUS?


    MCP,MCTS
    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"

    20 ноября 2012 г. 5:35
  • Пока единственное решение - добавить пользователя в группу локальных администраторов и обязательно установить  "Run with highest privileges".

    20 ноября 2012 г. 5:42
    Отвечающий
  • Пока единственное решение - добавить пользователя в группу локальных администраторов и обязательно установить  "Run with highest privileges".

    Это понятно, что так оно работает. Но вопрос был в том что, почему с правами обычного юзера в одном варианте работает, а во втором нет?

    Возможно ли заставить второй вариант работать с правами обычного юзера?

    На течнете ни чего вразумительного не нашел. Поиск по поисковикам тоже ни каких результатов не принес.

    20 ноября 2012 г. 22:02
  • не решает проблемы.Грабли , где то в самой винде, но вот, где не понятно. (((

    21 ноября 2012 г. 0:52
  • . Главное не понятно, где ему отказано в доступе Папка/Реестр?


    Process Monitor вам в помощь!

    Сазонов Илья http://isazonov.wordpress.com/

    23 ноября 2012 г. 7:05
    Модератор
  • Пробовал, прежде чем писать пост.
    25 ноября 2012 г. 22:51