|
72 | 72 | } -EnableException $EnableException.ToBool() -PSCmdlet $PSCmdlet -Continue |
73 | 73 | } |
74 | 74 | 'Create' { |
75 | | - $targetOU = Resolve-String -Text $testItem.Configuration.Path |
| 75 | + $targetOU = Resolve-String -Text $testItem.Configuration.Path @parameters |
76 | 76 | try { $null = Get-ADObject @parameters -Identity $targetOU -ErrorAction Stop } |
77 | 77 | catch { Stop-PSFFunction -String 'Invoke-DMUser.User.Create.OUExistsNot' -StringValues $targetOU, $testItem.Identity -Target $testItem -EnableException $EnableException -Continue -ContinueLabel main } |
78 | 78 | Invoke-PSFProtectedCommand -ActionString 'Invoke-DMUser.User.Create' -Target $testItem -ScriptBlock { |
79 | 79 | $newParameters = $parameters.Clone() |
80 | 80 | $newParameters += @{ |
81 | | - Name = (Resolve-String -Text $testItem.Configuration.SamAccountName) |
82 | | - SamAccountName = (Resolve-String -Text $testItem.Configuration.SamAccountName) |
83 | | - UserPrincipalName = (Resolve-String -Text $testItem.Configuration.UserPrincipalName) |
| 81 | + Name = (Resolve-String -Text $testItem.Configuration.SamAccountName @parameters) |
| 82 | + SamAccountName = (Resolve-String -Text $testItem.Configuration.SamAccountName @parameters) |
| 83 | + UserPrincipalName = (Resolve-String -Text $testItem.Configuration.UserPrincipalName @parameters) |
84 | 84 | PasswordNeverExpires = $testItem.Configuration.PasswordNeverExpires |
85 | 85 | Path = $targetOU |
86 | 86 | AccountPassword = (New-Password -Length 128 -AsSecureString) |
87 | 87 | Enabled = $testItem.Configuration.Enabled # Both True and Undefined will result in $true |
88 | 88 | Confirm = $false |
89 | 89 | } |
90 | | - if ($testItem.Configuration.Description) { $newParameters['Description'] = Resolve-String -Text $testItem.Configuration.Description } |
91 | | - if ($testItem.Configuration.GivenName) { $newParameters['GivenName'] = Resolve-String -Text $testItem.Configuration.GivenName } |
92 | | - if ($testItem.Configuration.Surname) { $newParameters['Surname'] = Resolve-String -Text $testItem.Configuration.Surname } |
| 90 | + if ($testItem.Configuration.Description) { $newParameters['Description'] = Resolve-String -Text $testItem.Configuration.Description @parameters } |
| 91 | + if ($testItem.Configuration.GivenName) { $newParameters['GivenName'] = Resolve-String -Text $testItem.Configuration.GivenName @parameters } |
| 92 | + if ($testItem.Configuration.Surname) { $newParameters['Surname'] = Resolve-String -Text $testItem.Configuration.Surname @parameters } |
93 | 93 |
|
94 | 94 | # Other Attributes |
95 | 95 | $otherAttributes = @{} |
96 | 96 | foreach ($attribute in $testItem.Configuration.Attributes.Keys) { $otherAttributes[$attribute] = $testItem.Configuration.Attributes.$attribute } |
97 | | - foreach ($attribute in $testItem.Configuration.AttributesResolved.Keys) { $otherAttributes[$attribute] = Resolve-String -Text $testItem.Configuration.AttributesResolved.$attribute } |
| 97 | + foreach ($attribute in $testItem.Configuration.AttributesResolved.Keys) { $otherAttributes[$attribute] = Resolve-String -Text $testItem.Configuration.AttributesResolved.$attribute @parameters } |
98 | 98 | if ($otherAttributes.Count -gt 0) { $newParameters.OtherAttributes = $otherAttributes } |
99 | 99 |
|
100 | 100 | New-ADUser @newParameters |
|
104 | 104 | Stop-PSFFunction -String 'Invoke-DMUser.User.MultipleOldUsers' -StringValues $testItem.Identity, ($testItem.ADObject.Name -join ', ') -Target $testItem -EnableException $EnableException -Continue -Tag 'user', 'critical', 'panic' |
105 | 105 | } |
106 | 106 | 'Rename' { |
107 | | - Invoke-PSFProtectedCommand -ActionString 'Invoke-DMUser.User.Rename' -ActionStringValues (Resolve-String -Text $testItem.Configuration.SamAccountName) -Target $testItem -ScriptBlock { |
| 107 | + Invoke-PSFProtectedCommand -ActionString 'Invoke-DMUser.User.Rename' -ActionStringValues (Resolve-String -Text $testItem.Configuration.SamAccountName @parameters) -Target $testItem -ScriptBlock { |
108 | 108 | Set-ADUser @parameters -Identity $testItem.ADObject.ObjectGUID -SamAccountName $testItem.Configuration.SamAccountName -ErrorAction Stop |
109 | | - if ($testItem.ADObject.Name -ne (Resolve-String -Text $testItem.Configuration.Name)) { |
110 | | - Rename-ADObject @parameters -Identity $testItem.ADObject.ObjectGUID -NewName (Resolve-String -Text $testItem.Configuration.Name) -ErrorAction Stop |
| 109 | + if ($testItem.ADObject.Name -ne (Resolve-String -Text $testItem.Configuration.Name @parameters)) { |
| 110 | + Rename-ADObject @parameters -Identity $testItem.ADObject.ObjectGUID -NewName (Resolve-String -Text $testItem.Configuration.Name @parameters) -ErrorAction Stop |
111 | 111 | } |
112 | 112 | } -EnableException $EnableException.ToBool() -PSCmdlet $PSCmdlet -Continue |
113 | 113 | } |
114 | 114 | 'Changed' { |
115 | 115 | if ($testItem.Changed.Property -contains 'Path') { |
116 | | - $targetOU = Resolve-String -Text $testItem.Configuration.Path |
| 116 | + $targetOU = Resolve-String -Text $testItem.Configuration.Path @parameters |
117 | 117 | try { $null = Get-ADObject @parameters -Identity $targetOU -ErrorAction Stop } |
118 | 118 | catch { Stop-PSFFunction -String 'Invoke-DMUser.User.Update.OUExistsNot' -StringValues $testItem.Identity, $targetOU -Target $testItem -EnableException $EnableException -Continue -ContinueLabel main } |
119 | 119 |
|
|
141 | 141 | } -EnableException $EnableException -PSCmdlet $PSCmdlet -Continue |
142 | 142 | } |
143 | 143 | if ($testItem.Changed.Property -contains 'Name') { |
144 | | - Invoke-PSFProtectedCommand -ActionString 'Invoke-DMUser.User.Update.Name' -ActionStringValues (Resolve-String -Text $testItem.Configuration.Name) -Target $testItem -ScriptBlock { |
145 | | - Rename-ADObject @parameters -Identity $testItem.ADObject.ObjectGUID -NewName (Resolve-String -Text $testItem.Configuration.Name) -ErrorAction Stop -Confirm:$false |
| 144 | + Invoke-PSFProtectedCommand -ActionString 'Invoke-DMUser.User.Update.Name' -ActionStringValues (Resolve-String -Text $testItem.Configuration.Name @parameters) -Target $testItem -ScriptBlock { |
| 145 | + Rename-ADObject @parameters -Identity $testItem.ADObject.ObjectGUID -NewName (Resolve-String -Text $testItem.Configuration.Name @parameters) -ErrorAction Stop -Confirm:$false |
146 | 146 | } -EnableException $EnableException -PSCmdlet $PSCmdlet -Continue |
147 | 147 | } |
148 | 148 | if ($testItem.Changed.Property -contains 'PasswordNeverExpires') { |
|
0 commit comments