Files
Backup/_NDGOV_WindowsTeam/ITD.Infra-Servers-PowerShellUniversal.Test/ITD-PowerShellUniversal.Administration/Set-ITDPSUScriptPermission.ps1
T
Zack Meier 1d304511b8 update
2026-04-15 15:45:50 -05:00

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
}