none
WSUS: The system cannot find the file specified. (0x80070002) RRS feed

  • Вопрос

  • Не так давно скачала WUA (Windows Update Agent) и пытаюсь вывести список всех неустановленных апдейтов на серверах, однако при запуске скрипта на одном из серверов возникает странная ошибка (на других все проходит нормально), повершел запускается от админа, с правами проблем быть не должно, ОС- Виндовс сервер 2012 р2, подскажите, с чем это может быть связно? 

    Ошибка: 

    Exception calling "Search" with "1" argument(s): "The system cannot find the file specified. (Exception from HRESULT: 0x80070002)"
    At line:15 char:1
    + $SearchResult = $UpdateSearcher.Search("IsInstalled=1")
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : ComMethodTargetInvocation

    А вот сам скриптик

    $UpdateSession = New-Object -ComObject Microsoft.Update.Session 
    $UpdateServiceManager  = New-Object -ComObject Microsoft.Update.ServiceManager 
    $UpdateService = $UpdateServiceManager.AddScanPackageService("Offline Sync Service", "C:\wsusscn2.cab", 1) 
    $UpdateSearcher = $UpdateSession.CreateUpdateSearcher()  
     
    Write-Output "Searching for updates... `r`n" 
     
    $UpdateSearcher.ServerSelection = 3 #ssOthers 
     
    $UpdateSearcher.ServiceID = $UpdateService.ServiceID 
     
    $SearchResult = $UpdateSearcher.Search("IsInstalled=0")  # or "IsInstalled=0 or IsInstalled=1" to also list the installed updates as MBSA did
     
    $Updates = $SearchResult.Updates 
     
    if($Updates.Count -eq 0){ 
        Write-Output "There are no applicable updates." 
        return $null 

     
    Write-Output "List of applicable items on the machine when using wssuscan.cab: `r`n" 
     
    $i = 0 
    foreach($Update in $Updates){  
        Write-Output "$($i)> $($Update.Title)" 
        $i++ 
    }




    24 апреля 2019 г. 9:55

Ответы


  • Благодарю за ответ. Файл на сервере есть, пробовала поместить его на рабочий стол (с изменением места в скрипте естессна), но, увы, не отрабатывает. Скрипт взят с сайта майкрософта, я его не модифицировала, так как, к моему удивлению, на других серверах он работает. ($SearchResult = $UpdateSearcher.Search("IsInstalled=1") если вы про эту строчку, то все нормально, тестировала там с 0 и 1, чисто в познавательных целях, ошибка выдается даже если там 0). 

    ок, линк на скрипт я нашел

    но в нем написано что он приведен как пример и нет никаких указаний по дебагу, что к сожалению не решает нашу проблему...

    Так как упомянутый каб вы качаете из интернета, он может остаться заблокированным. Для проверки откройте свойства файла и посмотрите нет ли галки/кнопки "Разблокировать", если есть - используйте. Вторая мысль это разница в версии wu agent'ов и как следствие их API


    The opinion expressed by me is not an official position of Microsoft

    25 апреля 2019 г. 8:55
    Модератор

Все ответы

  • Не так давно скачала WUA (Windows Update Agent) и пытаюсь вывести список всех неустановленных апдейтов на серверах, однако при запуске скрипта на одном из серверов возникает странная ошибка (на других все проходит нормально), повершел запускается от админа, с правами проблем быть не должно, ОС- Виндовс сервер 2012 р2, подскажите, с чем это может быть связно? 

    Ошибка: 

    Exception calling "Search" with "1" argument(s): "The system cannot find the file specified. (Exception from HRESULT: 0x80070002)"
    At line:15 char:1
    + $SearchResult = $UpdateSearcher.Search("IsInstalled=1")
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : ComMethodTargetInvocation

    А вот сам скриптик

    $UpdateSession = New-Object -ComObject Microsoft.Update.Session 
    $UpdateServiceManager  = New-Object -ComObject Microsoft.Update.ServiceManager 
    $UpdateService = $UpdateServiceManager.AddScanPackageService("Offline Sync Service", "C:\wsusscn2.cab", 1) 
    $UpdateSearcher = $UpdateSession.CreateUpdateSearcher()  
     
    Write-Output "Searching for updates... `r`n" 
     
    $UpdateSearcher.ServerSelection = 3 #ssOthers 
     
    $UpdateSearcher.ServiceID = $UpdateService.ServiceID 
     
    $SearchResult = $UpdateSearcher.Search("IsInstalled=0")  # or "IsInstalled=0 or IsInstalled=1" to also list the installed updates as MBSA did
     
    $Updates = $SearchResult.Updates 
     
    if($Updates.Count -eq 0){ 
        Write-Output "There are no applicable updates." 
        return $null 

     
    Write-Output "List of applicable items on the machine when using wssuscan.cab: `r`n" 
     
    $i = 0 
    foreach($Update in $Updates){  
        Write-Output "$($i)> $($Update.Title)" 
        $i++ 
    }

    интересно то что ошибку вы приводите одну а скрипт другой, но упустим.

    проверьте пожалуйста на сервере где скрипт работает и где нет существование файла из скрипта C:\wsusscn2.cab

    есть подозрение что проблема в том что на сервере с проблемой его нет(или он находится в другом месте), в отличии от сервера где проблемы нет


    The opinion expressed by me is not an official position of Microsoft

    24 апреля 2019 г. 16:10
    Модератор
  • Не так давно скачала WUA (Windows Update Agent) и пытаюсь вывести список всех неустановленных апдейтов на серверах, однако при запуске скрипта на одном из серверов возникает странная ошибка (на других все проходит нормально), повершел запускается от админа, с правами проблем быть не должно, ОС- Виндовс сервер 2012 р2, подскажите, с чем это может быть связно? 

    Ошибка: 

    Exception calling "Search" with "1" argument(s): "The system cannot find the file specified. (Exception from HRESULT: 0x80070002)"
    At line:15 char:1
    + $SearchResult = $UpdateSearcher.Search("IsInstalled=1")
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : ComMethodTargetInvocation

    А вот сам скриптик

    $UpdateSession = New-Object -ComObject Microsoft.Update.Session 
    $UpdateServiceManager  = New-Object -ComObject Microsoft.Update.ServiceManager 
    $UpdateService = $UpdateServiceManager.AddScanPackageService("Offline Sync Service", "C:\wsusscn2.cab", 1) 
    $UpdateSearcher = $UpdateSession.CreateUpdateSearcher()  
     
    Write-Output "Searching for updates... `r`n" 
     
    $UpdateSearcher.ServerSelection = 3 #ssOthers 
     
    $UpdateSearcher.ServiceID = $UpdateService.ServiceID 
     
    $SearchResult = $UpdateSearcher.Search("IsInstalled=0")  # or "IsInstalled=0 or IsInstalled=1" to also list the installed updates as MBSA did
     
    $Updates = $SearchResult.Updates 
     
    if($Updates.Count -eq 0){ 
        Write-Output "There are no applicable updates." 
        return $null 

     
    Write-Output "List of applicable items on the machine when using wssuscan.cab: `r`n" 
     
    $i = 0 
    foreach($Update in $Updates){  
        Write-Output "$($i)> $($Update.Title)" 
        $i++ 
    }

    интересно то что ошибку вы приводите одну а скрипт другой, но упустим.

    проверьте пожалуйста на сервере где скрипт работает и где нет существование файла из скрипта C:\wsusscn2.cab

    есть подозрение что проблема в том что на сервере с проблемой его нет(или он находится в другом месте), в отличии от сервера где проблемы нет


    The opinion expressed by me is not an official position of Microsoft

    Благодарю за ответ. Файл на сервере есть, пробовала поместить его на рабочий стол (с изменением места в скрипте естессна), но, увы, не отрабатывает. Скрипт взят с сайта майкрософта, я его не модифицировала, так как, к моему удивлению, на других серверах он работает. ($SearchResult = $UpdateSearcher.Search("IsInstalled=1") если вы про эту строчку, то все нормально, тестировала там с 0 и 1, чисто в познавательных целях, ошибка выдается даже если там 0). 
    25 апреля 2019 г. 8:15

  • Благодарю за ответ. Файл на сервере есть, пробовала поместить его на рабочий стол (с изменением места в скрипте естессна), но, увы, не отрабатывает. Скрипт взят с сайта майкрософта, я его не модифицировала, так как, к моему удивлению, на других серверах он работает. ($SearchResult = $UpdateSearcher.Search("IsInstalled=1") если вы про эту строчку, то все нормально, тестировала там с 0 и 1, чисто в познавательных целях, ошибка выдается даже если там 0). 

    ок, линк на скрипт я нашел

    но в нем написано что он приведен как пример и нет никаких указаний по дебагу, что к сожалению не решает нашу проблему...

    Так как упомянутый каб вы качаете из интернета, он может остаться заблокированным. Для проверки откройте свойства файла и посмотрите нет ли галки/кнопки "Разблокировать", если есть - используйте. Вторая мысль это разница в версии wu agent'ов и как следствие их API


    The opinion expressed by me is not an official position of Microsoft

    25 апреля 2019 г. 8:55
    Модератор

  • Благодарю за ответ. Файл на сервере есть, пробовала поместить его на рабочий стол (с изменением места в скрипте естессна), но, увы, не отрабатывает. Скрипт взят с сайта майкрософта, я его не модифицировала, так как, к моему удивлению, на других серверах он работает. ($SearchResult = $UpdateSearcher.Search("IsInstalled=1") если вы про эту строчку, то все нормально, тестировала там с 0 и 1, чисто в познавательных целях, ошибка выдается даже если там 0). 

    ок, линк на скрипт я нашел

    но в нем написано что он приведен как пример и нет никаких указаний по дебагу, что к сожалению не решает нашу проблему...

    Так как упомянутый каб вы качаете из интернета, он может остаться заблокированным. Для проверки откройте свойства файла и посмотрите нет ли галки/кнопки "Разблокировать", если есть - используйте. Вторая мысль это разница в версии wu agent'ов и как следствие их API


    The opinion expressed by me is not an official position of Microsoft

    Да, я использовала вышеупомянутый линк и, для успокоения души, заного скачала cab файл, заново запустила скрипт, попробовала разные местопожения файла, хотя все это глупо, конечно, учитывая тот факт, что один и тот же файл успешно применялся на серверах с другой ОС, так же на самом компуктере и нет, файлик не заблокирован. Проверила версии wuaeng.dll на девайсах - действительно разные. Попробую апгрейднуть и попробовать заново. Спасибо за идею.
    25 апреля 2019 г. 9:17