Powershell: Pending Reboots in Sharepoint Liste

Aus der Notwendigkeit raus, Pending Reboots zu reporten hab ich folgendes Script entwickelt.

Basis des Scripts ist eine Baseline, die die Pending Reboots, aufgrund verschiedener Tatsachen, in die CM12 Datenbank bringt.
Die Compliance Daten können dann mit Hilfe dieses Scripts in eine Sharepoint Liste übertragen werden und damit als Historie verwendet werden.

Die Baseline muss Configuration Items für folgende Regkeys beinhalten um alle Pending Reboots zu erfassen:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\FileRenameOperations\ PendingFileRenameOperations
HKLM\SOFTWARE\Microsoft\Updates
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")

$password = Get-Content C:\temp\password.txt
$credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials("<Account>", ($password | ConvertTo-SecureString))

$siteUrl = "<Sharepoint Seite>"
$spoContext = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl)
$spoContext.Credentials = $credentials

$list = $spoContext.Web.Lists.GetByTitle("Titel der Liste")
$spoContext.Load($list)
$spoContext.ExecuteQuery()

$Compliance = Get-WmiObject -Namespace root\SMS\site_CAS -ComputerName '<Server CAS/Primary>' -Query "select ComplianceCount, FailureCount, NonComplianceCount from SMS_ConfigurationBaselineInfo where LocalizedDisplayName = 'NoPendingReboot'"
$Date = get-date

$listItemInfo = New-Object Microsoft.SharePoint.Client.ListItemCreationInformation
$item = $list.AddItem($listItemInfo)
$item["Title"] = ''
$item["ComplianceCount"] = $Compliance.ComplianceCount
$item["NonComp"] = $Compliance.NonComplianceCount
$item["Failure"] = $Compliance.FailureCount
$item["MeasureDate"] = $Date   

$item.Update()
$spoContext.ExecuteQuery()
Facebooktwittergoogle_plus
Facebooktwittergoogle_plus

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Cookies help us deliver our services. By using our services, you agree to our use of cookies. More Info | Close
%d Bloggern gefällt das: