604 lines
25 KiB
PowerShell
604 lines
25 KiB
PowerShell
#
|
||
# 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
|
||
|