Intune Initial Scripts Backup
This commit is contained in:
141
dump/WSUS_Scripts/PSUS_ConnectivityTests.ps1
Normal file
141
dump/WSUS_Scripts/PSUS_ConnectivityTests.ps1
Normal file
@@ -0,0 +1,141 @@
|
||||
$ServerList1 = Get-ADComputer -Filter {(Enabled -eq $true)} -SearchBase "OU=Servers,OU=NCRA,DC=ccx,DC=carecentrix,DC=com" | Select-Object DNSHostName
|
||||
$ServerList2 = Get-ADComputer -Filter {(Enabled -eq $true)} -SearchBase "OU=Servers,OU=FLT2,DC=ccx,DC=carecentrix,DC=com" | Select-Object DNSHostName
|
||||
$ServerList3 = Get-ADComputer -Filter {(Enabled -eq $true)} -SearchBase "OU=Servers,OU=AZPH,DC=ccx,DC=carecentrix,DC=com" | Select-Object DNSHostName
|
||||
$ServerList4 = Get-ADComputer -Filter {(Enabled -eq $true)} -SearchBase "OU=Servers,OU=CLVA1,DC=ccx,DC=carecentrix,DC=com" | Select-Object DNSHostName
|
||||
$ServerList5 = Get-ADComputer -Filter {(Enabled -eq $true)} -SearchBase "OU=Servers,OU=CTHA,DC=ccx,DC=carecentrix,DC=com" | Select-Object DNSHostName
|
||||
$ServerList6 = Get-ADComputer -Filter {(Enabled -eq $true)} -SearchBase "OU=Servers,OU=KSOP,DC=ccx,DC=carecentrix,DC=com" | Select-Object DNSHostName
|
||||
$ServerList = $ServerList1+$ServerList2+$ServerList3+$ServerList4+$ServerList5+$ServerList6
|
||||
|
||||
$ServerReport = @()
|
||||
|
||||
$port1 = "8530"
|
||||
$port2 = "8531"
|
||||
$wsusserver = "psus002.ccx.carecentrix.com"
|
||||
|
||||
|
||||
|
||||
foreach ($Server in $ServerList) {
|
||||
$ServerName = $Server.DNSHostName
|
||||
|
||||
$pssession = New-PSSession -ComputerName $ServerName -ErrorAction SilentlyContinue
|
||||
$CurrentServer = New-Object System.Object
|
||||
$CurrentServer | Add-Member -MemberType NoteProperty -Name "Name" -Value $ServerName
|
||||
#Enter-PSSession $pssession
|
||||
|
||||
if ($null -ne $pssession){
|
||||
write-host "Connected to $ServerName"
|
||||
$CurrentServer | Add-Member -MemberType NoteProperty -Name "Status" -Value "Accessible"
|
||||
$CurrentServer.Name = $ServerName
|
||||
|
||||
|
||||
#Check HTTP Port
|
||||
#Clear Port Variables
|
||||
$port8530= @()
|
||||
$port8531= @()
|
||||
$port8530 = Invoke-Command -Session $pssession -ScriptBlock {invoke-webrequest http://psus002.ccx.carecentrix.com:8530/CLientWebService/Client.asmx -UseBasicParsing} -ErrorAction SilentlyContinue
|
||||
if ($port8530.StatusCode -eq "200"){
|
||||
Write-host "Port 8530 Accessible"
|
||||
$CurrentServer | Add-Member -MemberType NoteProperty -Name "8530" -Value "Open"
|
||||
}
|
||||
|
||||
elseif ($null -eq $port8530) {
|
||||
$TestNetConnection = New-Object Net.Sockets.TcpClient
|
||||
$testnetconnection.connect($wsusserver,$port1)
|
||||
|
||||
if ($testnetconnection.Connected){
|
||||
$TestNetConnection.Close()
|
||||
$CurrentServer | Add-Member -MemberType NoteProperty -Name "8530" -Value "Open"
|
||||
}
|
||||
else {
|
||||
$CurrentServer | Add-Member -MemberType NoteProperty -Name "8530" -Value "Unable to Verify"
|
||||
Write-host "Invoke Webrequest not recognized"
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
$CurrentServer | Add-Member -MemberType NoteProperty -Name "8530" -Value "Closed"
|
||||
Write-host "Port 8531 Inaccessible"
|
||||
|
||||
}
|
||||
# Check HTTPS Port
|
||||
$port8531 = Invoke-Command -Session $pssession -ScriptBlock {invoke-webrequest https://psus002.ccx.carecentrix.com:8531/CLientWebService/Client.asmx -UseBasicParsing} -ErrorAction SilentlyContinue
|
||||
|
||||
|
||||
if ($port8531.StatusCode -eq "200"){
|
||||
$CurrentServer | Add-Member -MemberType NoteProperty -Name "8531" -Value "Open"
|
||||
Write-host "Port 8531 Accessible"
|
||||
}
|
||||
|
||||
elseif ($null -eq $port8531) {
|
||||
$TestNetConnection = New-Object Net.Sockets.TcpClient
|
||||
$testnetconnection.connect($wsusserver,$port2)
|
||||
|
||||
if ($testnetconnection.Connected){
|
||||
$TestNetConnection.Close()
|
||||
$CurrentServer | Add-Member -MemberType NoteProperty -Name "8531" -Value "Open"
|
||||
}
|
||||
else{
|
||||
$CurrentServer | Add-Member -MemberType NoteProperty -Name "8531" -Value "Unable to Verify"
|
||||
Write-host "Invoke Webrequest not recognized"
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
$CurrentServer | Add-Member -MemberType NoteProperty -Name "8531" -Value "Blocked"
|
||||
Write-host "Port 8531 Inaccessible"
|
||||
}
|
||||
|
||||
#Check C: Drive Space
|
||||
$DriveCheck =Invoke-Command -Session $pssession -ScriptBlock {get-WmiObject win32_logicaldisk -Filter "DeviceID='C:'"}
|
||||
$HDFreespace = [Math]::Round($DriveCheck.Freespace / 1GB)
|
||||
$HDSize =[Math]::Round($DriveCheck.Size / 1GB)
|
||||
$CurrentServer | Add-Member -MemberType NoteProperty -Name "C: Size" -Value $HDSize
|
||||
$CurrentServer | Add-Member -MemberType NoteProperty -Name "C: Freespace" -Value $HDFreespace
|
||||
if ($HDFreespace -lt 5) {
|
||||
$CurrentServer | Add-Member -MemberType NoteProperty -Name "SpaceCheck" -Value "Consider adding Space to C:"
|
||||
Write-host "C: Drive does not have enough space"
|
||||
}
|
||||
else {
|
||||
$CurrentServer | Add-Member -MemberType NoteProperty -Name "SpaceCheck" -Value "Server has sufficient space for Windows Updates"
|
||||
Write-host "C: has plenty of space"
|
||||
}
|
||||
|
||||
$DriveCheck = @()
|
||||
|
||||
#Windows Update Details
|
||||
$failedupdates = Invoke-Command -Session $pssession -ScriptBlock {
|
||||
$Session = New-Object -ComObject "Microsoft.Update.Session"
|
||||
|
||||
$Searcher = $Session.CreateUpdateSearcher()
|
||||
|
||||
$historyCount = $Searcher.GetTotalHistoryCount()
|
||||
|
||||
$Searcher.QueryHistory(0, $historyCount) | Select-Object @{Name="Computer"; Expression={$Computer}}, Date,
|
||||
|
||||
@{name="Operation"; expression={switch($_.operation){
|
||||
|
||||
1 {"Installation"}; 2 {"Uninstallation"}; 3 {"Other"}}}},
|
||||
|
||||
@{name="Status"; expression={switch($_.resultcode){
|
||||
|
||||
1 {"In Progress"}; 2 {"Succeeded"}; 3 {"Succeeded With Errors"};
|
||||
|
||||
4 {"Failed"}; 5 {"Aborted"}
|
||||
|
||||
}}},Title| Where-Object {$_.Status -eq "Failed"}
|
||||
}
|
||||
$failedupdates |Export-Csv -NoType "E:\Windows Update Failures\UpdateAudit-$ServerName-Failed-WindowsUpdates.csv"
|
||||
# Exit-PSSession
|
||||
$ServerReport += $CurrentServer
|
||||
Get-PSSession | Remove-PSSession
|
||||
#Copy-Item -Path \\$ServerName\Users\abamaso-ccxadmin\Desktop\UpdateAudit-$ServerName-Failed-WindowsUpdates.csv -Destination 'C:\Users\abamaso-ccxadmin\Desktop\WIndows Update Failures'
|
||||
}
|
||||
#outSide PSSession if
|
||||
else {
|
||||
$CurrentServer | Add-Member -MemberType NoteProperty -Name "Status" -Value "Inaccessible"
|
||||
Write-host "$ServerName Inaccessible"
|
||||
$ServerReport += $CurrentServer
|
||||
}
|
||||
}
|
||||
#outside for each
|
||||
$ServerReport | Export-Csv "E:\Windows Update Failures\ServerReport.csv"
|
||||
Reference in New Issue
Block a user