Files
Intune/dump/WSUS_Scripts/Old-Scripts/Sorting_Hat.ps1

604 lines
25 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#
# WSUS_Sorting_HAT.PS1
#
#DOCUMENTATION:
#Written by Kevin Trent, kevin.trent@carecentrix.com
#CHANGE LOG:
#Version 1.0 6/12/2018 - First functional edition - Kevin Trent
#UPGRADES:
# Planned:
# Add auto detection of new OU and auto creation of new function. - KJT
#DESCRIPTION:
#WSUS Server-Side targeting chosen to enable flexibility with group assignment. Sorting Hat, takes the place of client-side targeting in a GPO.
#Servers are still added to the unassigned computers group via linked GPO:
#(Prod Server SUS 2016 - PSUS002 - Server Side Targeting, DEV Server SUS 2016 - PSUS002 - Server Side Targeting, QA Server SUS 2016 - PSUS002 - Server Side Targeting)
#Each function sorts systems from the WSUS unassigned computers group to an appropriate target group based on the AD OU.
#MAINTENANCE:
#NEW Active Directory OUs require reciprocal functions to be added.
#New Function Copy/Paste existing function and make these required changes:
#Function name = WSUS Group Name, remove spaces - between each word.
#Variable name - WSUS Group Name, remove spaces change - to _. TargetGroupName = WSUS Group name.
#Canonicalname = OU with wildcard (*) in place of machine name(s).
#Find Canonicalname of a group by running the following command against a machine in that OU: Get-ADComputer -Identity qbiz111 -Properties *|select CanonicalName
#Add Group function to the Run function: (If $newservers.count -gt 0) Scriptblock near the bottom, so that the new function is called when the script is executed.
#Add comment to the ChangeLog remark above
#Module Import. This Script requires RSAT and PowerShell v3.0 or higher on the executing system.
Import-Module ActiveDirectory
Import-Module WindowsUpdate
#System Collection:
#Building the collections to be sorted from the WSUS unassigned computers group removes the need to validate each member.
#Each array memeber can only be in the collection if it passed cetificate, protocol, and connectivity requirements.
$newserversfull = Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -ComputerTargetGroups "Unassigned Computers"|select Fulldomainname -ExpandProperty Fulldomainname
#Shortening the array member names to a useable Get-ADComputer Identity
$newservers = Foreach ($server in $newserversfull) {$server.split(.)[0]}
#SORTING FUNCTIONS:
#Each function runs each memeber of the collection through a loop that contains an AD-OU query. If the member(s) are in the specified AD-OU they are inserted into the WSUS Target Group.
#For simplified locating; functions are grouped under comments with the WSUS group parent name. Example, NCRA QUALITY ASSURANCE SERVERS or CTHA PRODUCTION SERVERS
#CTHA PRODUCTION SERVERS
Function CTHA-Verint-PROD {
$CTHA_Verint_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/CTHA/Servers/Production Servers/Verint Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $CTHA_Verint_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "CTHA - Verint - PROD"
}
}
#KSOP PRODUCTION SERVERS
Function KSOP-Verint-PROD {
$KSOP_Verint_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/KSOP/Servers/Production Servers/Verint Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $KSOP_Verint_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "KSOP - Verint - PROD"
}
}
#AZPH PRODUCTION SERVERS
Function AZPH-Verint-PROD {
$AZPH_Verint_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/AZPH/Servers/Production Servers/Verint Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $AZPH_Verint_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "AZPH - Verint - PROD"
}
}
#FLT2 PRODUCTION SERVERS
Function FLT2-Application-PROD {
$FLT2_Application_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/FLT2/Servers/Production Servers/Application Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $FLT2_Application_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "FLT2 - Application - PROD"
}
}
Function FLT2-Verint-PROD {
$FLT2_Verint_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/FLT2/Servers/Production Servers/Verint Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $FLT2_Verint_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "FLT2 - Verint - PROD"
}
}
Function FLT2-Voice-PROD {
$FLT2_Voice_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/FLT2/Servers/Production Servers/Voice Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $FLT2_Voice_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "FLT2 - Voice - PROD"
}
}
#NCRA DEVELOPMENT SERVERS
Function NCRA-Application-DEV {
$NCRA_Application_DEV = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Development Servers/Application Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Application_DEV) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Application - DEV"
}
}
Function NCRA-BizTalk-DEV {
$NCRA_BizTalk_DEV = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Development Servers/BizTalk Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_BizTalk_DEV) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - BizTalk - DEV"
}
}
Function NCRA-Edifecs-DEV {
$NCRA_Edifecs_DEV = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Development Servers/Edifecs Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Edifecs_DEV) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Edifecs - DEV"
}
}
Function NCRA-Remote-Desktop-DEV{
$NCRA_Remote_Desktop_DEV = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Development Servers/Remote Desktop Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Remote_Desktop_DEV) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Remote Desktop - DEV"
}
}
Function NCRA-SQL-DEV {
$NCRA_SQL_DEV = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Development Servers/SQL Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_SQL_DEV) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - SQL - DEV"
}
}
Function NCRA-Terminal-Servers-DEV {
$NCRA_Terminal_Servers_DEV = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Development Servers/Terminal Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Application_DEV) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Terminal Servers - DEV"
}
}
Function NCRA-Voice-DEV {
$NCRA_Voice_DEV = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Development Servers/Voice Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Voice_DEV) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Voice - DEV"
}
}
Function NCRA-Web-DEV {
$NCRA_Web_DEV = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Development Servers/Web Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Web_DEV) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Web - DEV"
}
}
#NCRA PRODUCTION SERVERS:
Function NCRA-Application-PROD {
$NCRA_Application_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Production Servers/Application Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Application_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Application - PROD"
}
}
Function NCRA-BizTalk-PROD {
$NCRA_BizTalk_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Production Servers/BizTalk Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_BizTalk_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - BizTalk - PROD"
}
}
Function NCRA-Edifecs-PROD {
$NCRA_Edifecs_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Production Servers/Edifecs Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Edifecs_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Edifecs - PROD"
}
}
Function NCRA-Exchange-PROD {
$NCRA_Exchange_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Production Servers/Exchange Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Exchange_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Exchange - PROD"
}
}
Function NCRA-Mail-Terminal-Servers-PROD {
$NCRA_Mail_Terminal_Servers_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Production Servers/Mail Terminal Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Mail_Terminal_Servers_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Mail Terminal Servers - PROD"
}
}
Function NCRA-Remote-Desktop-Prod {
$NCRA_Remote_Desktop_Prod = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Production Servers/Remote Desktop Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Remote_Desktop_Prod) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Remote Desktop - PROD"
}
}
Function NCRA-SQL-PROD {
$NCRA_SQL_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Production Servers/SQL Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_SQL_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - SQL - PROD"
}
}
Function NCRA-Terminal-Servers-PROD {
$NCRA_Terminal_Servers_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Production Servers/Terminal Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Terminal_Servers_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Terminal Servers - PROD"
}
}
Function NCRA-Tidal-PROD {
$NCRA_Tidal_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Production Servers/Tidal Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Tidal_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Tidal - PROD"
}
}
Function NCRA-Verint-PROD {
$NCRA_Verint_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Production Servers/Verint Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Verint_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Verint - PROD"
}
}
Function NCRA-Vistar-Terminal-Servers-PROD {
$NCRA_Vistar_Terminal_Servers_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Production Servers/Vistar Terminal Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Vistar_Terminal_Servers_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Vistar Terminal Servers - PROD"
}
}
Function NCRA-Voice-PROD {
$NCRA_Voice_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Production Servers/Voice Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Voice_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Voice - PROD"
}
}
Function NCRA-Web-PROD {
$NCRA_Web_PROD = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/Production Servers/Web Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Web_PROD) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Web - PROD"
}
}
#NCRA QUALITY ASSURANCE SERVERS:
Function NCRA-Application-QA {
$NCRA_Application_QA = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/QA Servers/Application Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Application_QA) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Application - QA"
}
}
Function NCRA-BizTalk-QA {
$NCRA_BizTalk_QA = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/QA Servers/BizTalk Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_BizTalk_QA) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - BizTalk - QA"
}
}
Function NCRA-Edifecs-QA {
$NCRA_Edifecs_QA = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/QA Servers/Edifecs Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Edifecs_QA) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Edifecs - QA"
}
}
Function NCRA-Remote-Desktop-QA {
$NCRA_Remote_Desktop_QA = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/QA Servers/Remote Desktop Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Remote_Desktop_QA) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Remote Desktop - QA"
}
}
Function NCRA-SQL-QA {
$NCRA_SQL_QA = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/QA Servers/Remote Desktop Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_SQL_QA) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - SQL - QA"
}
}
Function NCRA-Terminal-Servers-QA {
$NCRA_Terminal_Servers_QA = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/QA Servers/Remote Desktop Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Terminal_Servers_QA) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Terminal Servers - QA"
}
}
Function NCRA-Tidal-QA {
$NCRA_Tidal_QA = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/QA Servers/Tidal Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Tidal_QA) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - Tidal - QA"
}
}
Function NCRA-Web-QA {
$NCRA_Web_QA = Foreach ($server in $newservers) {
Get-ADComputer -Identity $server -Properties * |
Select dnshostname,canonicalname -ExpandProperty canonicalname|
Where canonicalname -Like "ccx.carecentrix.com/NCRA/Servers/QA Servers/Web Servers/*"|
Select dnshostname -ExpandProperty dnshostname
}
Foreach ($server in $NCRA_Web_QA) {
Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -NameIncludes $server|Add-WsusComputer -TargetGroupName "NCRA - WEb - QA"
}
}
#RUN:
# This function executes the script if there are new/unsorted servers in the Unassigned Computers group on the WSUS server
Function Run {
If ($newservers.Count -gt 0)
{
CTHA-Verint-PROD
KSOP-Verint-PROD
AZPH-Verint-PROD
FLT2-Application-PROD
FLT2-Verint-PROD
FLT2-Voice-PROD
NCRA-Application-DEV
NCRA-BizTalk-DEV
NCRA-Edifecs-DEV
NCRA-Remote-Desktop-DEV
NCRA-SQL-DEV
NCRA-Terminal-Servers-DEV
NCRA-Voice-DEV
NCRA-Web-DEV
NCRA-Application-PROD
NCRA-BizTalk-PROD
NCRA-Edifecs-PROD
NCRA-Exchange-PROD
NCRA-Mail-Terminal-Servers-PROD
NCRA-Remote-Desktop-Prod
NCRA-SQL-PROD
NCRA-Terminal-Servers-PROD
NCRA-Tidal-PROD
NCRA-Verint-PROD
NCRA-Vistar-Terminal-Servers-PROD
NCRA-Voice-PROD
NCRA-Web-PROD
NCRA-Application-QA
NCRA-BizTalk-QA
NCRA-Edifecs-QA
NCRA-Remote-Desktop-QA
NCRA-SQL-QA
NCRA-Terminal-Servers-QA
NCRA-Tidal-QA
NCRA-Web-QA
}
Else {Send-MailMessage -SmtpServer smtp.ccx.carecentrix.com -From WSUS-Sorting-Hat@carecentrix.com -To kevin.trent@carecentrix.com -Subject "No new unassigned computers"
-Body "Sorting Hat did not dectect any new servers in the WSUS unassigned computers group. No action was taken."}
}
Run
#REPORTING:
#Still working on this section. Sudo-code below.
#Servers Not Registered with WSUS:
#$wsus = get-wsusserver -name psus002 -portnumber 8530|get-wsuscomputer|select -ExpandProperty Fulldomainname
#$windows = Get-ADComputer -Properties * -Filter {(OperatingSystem -like "*Windows Server*")}|Select DNSHostName -ExpandProperty DNSHostName
#$nonreg = Compare-Object $wsus $windows|ForEach-Object {$_.InputObject}
#Servers still in the Unassigned Group
#$unassed = Get-WsusServer -Name psus002 -PortNumber 8530|Get-WsusComputer -ComputerTargetGroups "Unassigned Computers"|select Fulldomainname -ExpandProperty Fulldomainname