43 lines
1.7 KiB
PowerShell
43 lines
1.7 KiB
PowerShell
[CmdletBinding()]
|
|
Param(
|
|
[string]$ScriptName
|
|
)
|
|
|
|
$AllPSUScripts = Get-PSUScript
|
|
If ($ScriptName){
|
|
$AllPSUScripts = $AllPSUScripts | Where-Object Name -eq $ScriptName
|
|
}
|
|
$Folders = $AllPSUScripts | Group-Object Folder
|
|
|
|
ForEach ($Folder in $Folders) {
|
|
Write-Verbose -Message ("Start folder " + $Folder.Name) -Verbose
|
|
$ScriptsInFolder = $null
|
|
$TagNamesEnforced = $null
|
|
$TagNamesExisting = $null
|
|
$TagNamesToAssign = $null
|
|
|
|
switch ($Folder.Name) {
|
|
{ $_ -like "Infra-VMware*" } { $TagNamesEnforced = 'VMware-Admin_Modify' }
|
|
Default { Write-Verbose -Message ("Folder " + $Folder.Name + " does not have enforced tags")}
|
|
}
|
|
|
|
If ($TagNamesEnforced) {
|
|
$ScriptsInFolder = $AllPSUScripts | Where-Object Folder -EQ $Folder.Name
|
|
ForEach ($PSUScript in $ScriptsInFolder) {
|
|
$TagNamesExisting = $null
|
|
$TagNamesToAssign = $null
|
|
Write-Verbose -Message ("Start " + $PSUScript.Name) -Verbose
|
|
If($PSUScript.Tag.Name -notcontains $TagNamesEnforced){
|
|
Write-Verbose -Message ($PSUScript.Name + " enforced tag missing, attempting to fix") -Verbose
|
|
$TagNamesExisting = $PSUScript.Tag.Name
|
|
#Get-PSUScript -Name $PSUScript.Name | Set-PSUScript -Tag @('VMware-Admin_Execute','Network-Engineer_Execute') #### WORKING EXAMPLE
|
|
[string[]]$TagNamesToAssign = $TagNamesEnforced
|
|
If ($TagNamesExisting){$TagNamesToAssign += $TagNamesExisting}
|
|
Get-PSUScript -Name $PSUScript.Name | Set-PSUScript -Tag $TagNamesToAssign
|
|
}
|
|
Write-Verbose -Message ("End " + $PSUScript.Name) -Verbose
|
|
}
|
|
}
|
|
Write-Verbose -Message "End $Folder" -Verbose
|
|
}
|