2016-03-25 2 views
1

Этот URL-адрес или Кб ID (KB3139852) ничего не значит: https://support.microsoft.com/en-us/kb/3139852Проблема PowerShell или QuickfixEngineering?

Но, если перейти к URL-адресу, мы видим, более высокого уровня и что означает HF: «MS16-034: Описание обновления безопасности для Windows, драйверов режима ядра: 8 марта 2016 года "

Get-Hotfix -ComputerName $server | Select HotfixID, Caption, InstalledOn | Where { $_.InstalledOn -gt (Get-Date).AddDays(-4) } | sort InstalledOn 

Даже если мы бежим с PowerShell, просто Get-Hotfix, он не обеспечивает много деталей о том, что означает HotFix.

Я бы предположил, что я могу заставить PowerShell перейти к URL-адресу Microsoft, чтобы предоставить информацию, которую я ищу, но я думаю, что она должна быть помечена как часть QuickFixEngineering? Или я об этом неправильно?

Спасибо!

ответ

1

Я не уверен, что вы подразумеваете под «должны быть помечены как часть QuickFixEngineering», но если вы хотите получить название обновления, вы можете сделать это с Invoke-WebRequest:

$ua = 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)' 
$uri = 'https://support.microsoft.com/en-us/kb/3139852' 
$response = Invoke-WebRequest -Uri $uri -UserAgent $ua 
$title = $response.AllElements.Where({$_.tagName -eq 'title'}).innerText 

Обратите внимание, что Мне пришлось выдавать себя за искателя, чтобы заставить его работать, потому что по умолчанию кажется, что на странице Microsoft используется клиентский javascript для заполнения элементов, и нет никакой информации, доступной для анализа на странице.

+0

Мне нравится ваш подход .. Думаю, мне может понадобиться сделать что-то совсем другое с нашим корпоративным прокси, но вы дали мне толчок относительно того, где мне нужно идти с этим. Благодаря! – Leptonator

1

Самое забавное в командлете Get-Hotfix в Powershell - это просто вытягивание из Win32_QuickFixEngineering. Так что да, вы уже частично правы, думая, что его следует обозначать как QFE ... так как это так.

Ведение

Get-Hotfix 

и

GWMI -Class Win32_QuickFixEngineering 

даст вам те же результаты. Он возвращает вам набор данных из cimv2 \ Win32_QuickFixEngineering.

Что касается того, что доступно из этого под удлиненные части WMI, вы следующие

Name    MemberType  Definition                  
----    ----------  ----------                  
PSComputerName  AliasProperty PSComputerName = __SERVER               
Caption    Property  string Caption {get;set;}               
CSName    Property  string CSName {get;set;}               
Description   Property  string Description {get;set;}              
FixComments   Property  string FixComments {get;set;}              
HotFixID   Property  string HotFixID {get;set;}              
InstallDate   Property  string InstallDate {get;set;}              
InstalledBy   Property  string InstalledBy {get;set;}              
Name    Property  string Name {get;set;}               
ServicePackInEffect Property  string ServicePackInEffect {get;set;}            
Status    Property  string Status {get;set;}               
__CLASS    Property  string __CLASS {get;set;}               
__DERIVATION  Property  string[] __DERIVATION {get;set;}             
__DYNASTY   Property  string __DYNASTY {get;set;}              
__GENUS    Property  int __GENUS {get;set;}               
__NAMESPACE   Property  string __NAMESPACE {get;set;}              
__PATH    Property  string __PATH {get;set;}               
__PROPERTY_COUNT Property  int __PROPERTY_COUNT {get;set;}             
__RELPATH   Property  string __RELPATH {get;set;}              
__SERVER   Property  string __SERVER {get;set;}              
__SUPERCLASS  Property  string __SUPERCLASS {get;set;}             
PSStatus   PropertySet PSStatus {__PATH, Status}               
ConvertFromDateTime ScriptMethod System.Object ConvertFromDateTime();            
ConvertToDateTime ScriptMethod System.Object ConvertToDateTime();            
InstalledOn   ScriptProperty System.Object InstalledOn {get=if ([environment]::osversion.version.build -ge ... 

Что не дает вам то, что вы ищете (подробное описание за то, что «Описание» собственность дает вам)

К сожалению, я не могу выполнять работу с Invoke-WebRequest за моим корпоративным прокси-сервером, так как https://support.microsoft.com/en-us/kb/3139852 требует дополнительных дополнительных учетных данных и прокси-соединений, но безрезультатно есть другой способ получить вашу информацию.

Источник:

https://blogs.technet.microsoft.com/heyscriptingguy/2011/08/22/use-powershell-to-easily-find-information-about-hotfixes/

Быстрый изношенном на получение было бы через класс Win32_ReliabilityRecords, а затем фильтрация на основе SourceName.

$i = Get-WmiObject -Class Win32_ReliabilityRecords 
$i = $i | where { $_.sourcename -match 'Microsoft-Windows-WindowsUpdateClient' } 
$i.ProductName 

# I broke it down into multiple operations to 
# simplify for others 

Что дает вам вещи, как

Update for Microsoft Office 2010 (KB2965291) 32-Bit Edition 
Update for Microsoft Filter Pack 2.0 (KB2881026) 32-Bit Edition 
Update for Microsoft Visual Studio 2010 Tools for Office Runtime (KB3001652) 
Update for Microsoft Outlook 2010 (KB3015585) 32-Bit Edition 
Update for Microsoft Office 2010 (KB2956141) 32-Bit Edition 
Update for Microsoft Visio Viewer 2010 (KB2881021) 32-Bit Edition 
Update for Windows 7 for x64-based Systems (KB3006625) 

Надеется, что это помогло.