vì vậy tôi có mô-đun PoshWSUS này và một tập lệnh chạy trên WSUS và tạo tệp CSV. Tôi đang cố cập nhật nó để nó cũng chứa ngày vá cuối cùng cột nhưng gặp khó khăn khi tìm ra nó
Nhập mô-đun -name poshwsus -force
Nhập mô-đun -name SysDBApi -force
Nhập mô-đun -name EncryptedCredential -force -ErrorAction Stop
#lấy thông tin đăng nhập
$cred = Nhập-Clixml 'E:\WCO\transit.xml'
$SysDBcred = Nhập-Clixml 'E:\WCO\SysDBCred.xml'
$UseSSL = $True
$Cảng = 8530
$Date = get-date -Định dạng dd-MM-yyyy
$Time = get-date -định dạng HHmmss
$Filename = "$($env:COMPUTERNAME)_$($Date)_$($Time)"
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | ngoài giá trị
Kết nối-PSWSUSServer -WsusServer $env:COMPUTERNAME -Port $Port
$ClientInfoHash = Get-PSWSUSClient |
Nhóm-Đối tượng -Id Thuộc tính -AsHashTable -AsString
$UpdateScope = Mới-PSWSUSUpdateScope -UpdateApprovalActions Install -ExcludedInstallationStates NotApplicable
$Classifications = Get-PSWSUSClassification | Where-Object {$_.Title -eq "Security Updates" }
$UpdateScope.Classifications.AddRange($Classifications)
$WsusData = Get-PSWSUSUpdateSummaryPerClient -UpdateScope $UpdateScope
$WsusData |
Select-Object @{name="Tên máy tính";Expression={($ClientInfoHash[$_.ComputerTargetID].FullDomainName).split(".",2) | chọn -đầu tiên 1}},
@{name="Tên miền";Biểu thức={
if ( ($ClientInfoHash[$_.ComputerTargetID].FullDomainName).split(".",2)[1])
{
($ClientInfoHash[$_.ComputerTargetID].FullDomainName).split(".",2) | chọn -last 1
}
khác
{
"NHÓM LÀM VIỆC"
}
}},
@{name="Customer";Expression={(Get-SysDBHost -Credentials $SysDBcred -ComputerName ( ($ClientInfoHash[$_.ComputerTargetID].FullDomainName).split(".",2) | select -first 1)) .Khách hàng}},
@{name="Trạng thái được báo cáo lần cuối";Expression={$ClientInfoHash[$_.ComputerTargetID].LastReportedStatusTime}},
@{name="Cập nhật bắt buộc";biểu thức={$_.cần thiết}},
@{name="Total Updates";expression={($_.Installed+$_.Needed+$_.PendingReboot+$_.Failed)}},
@{name="% Of Compliance";expression={"$([math]::Round((($_.Installed / ($_.Installed+$_.Needed+$_.PendingReboot+$_.Failed)) * 100),0))%"}},
@{name="Operating System";Expression={$ClientInfoHash[$_.ComputerTargetID].OSDescription}}|
Export-Csv -Path "E:\Reports\$($Filename)_UpdatesStatus.csv" -NoTypeInformation -Encoding "utf8" -Delimiter ";"
Trên một máy chủ WSUS khác, chúng tôi sử dụng các truy vấn sqlcmd và SQL để lấy dữ liệu này và phần nhận thông tin này trông giống như sau:
CHỌN LIP.FullDomainName là 'Tên máy chủ',LIP.GroupName là 'Tên nhóm',
LIP.CreationDate là 'Ngày cài đặt bản vá gần đây nhất', TRƯỜNG HỢP KHI NUP.NumUPatches là NULL THÌ 0 ELSE NUP.NumUPatches END là 'Số bản vá cần thiết' TỪ LATESTINSTPATCH LIP TRÁI THAM GIA NumOfUNINSTPATCH NUP TRÊN LIP.ComputerID=NUP.ComputerID
ĐẶT HÀNG THEO NUP.NumUpatches
Dựa theo https://docs.microsoft.com/en-us/previous-versions/windows/desktop/bb410149(v=vs.85)
nó nằm trong PUBLIC_VIEWS.vUpdate, nhưng làm thế nào để làm việc với cái này trong PoshWSUS?