@@ -163,30 +163,59 @@ Function New-O365Object{
163163 # Check If username and password
164164 If ((Test-Path env:MONKEY_ENV_MONKEY_USER) -and (Test-Path env:MONKEY_ENV_MONKEY_PASSWORD)){
165165 try {
166- [securestring ]$cred = ConvertTo-SecureString $env: MONKEY_ENV_MONKEY_PASSWORD
167- [pscredential ]$InputObject = New-Object System.Management.Automation.PSCredential ($env: MONKEY_ENV_MONKEY_USER , $cred )
166+ [securestring ]$cred = ConvertTo-SecureString $env: MONKEY_ENV_MONKEY_PASSWORD.Trim ( ' " ' )
167+ [pscredential ]$InputObject = New-Object System.Management.Automation.PSCredential ($env: MONKEY_ENV_MONKEY_USER.Trim ( ' " ' ) , $cred )
168168 $MyParams.UserCredentials = $InputObject
169169 }
170170 catch {
171171 Write-Error $_
172+ throw (" [ParameterError] {0}: {1}" -f " Unable to create Monkey365 object. Unable to retrieve user credentials from environment variables" , $_.Exception.Message )
173+ }
174+ }
175+ # Check If clientId and client Secret
176+ ElseIf ((Test-Path env:MONKEY_ENV_CLIENT_ID) -and (Test-Path env:MONKEY_ENV_CLIENT_SECRET)){
177+ try {
178+ [securestring ]$cred = ConvertTo-SecureString $env: MONKEY_ENV_CLIENT_SECRET.Trim (' "' )
179+ [pscredential ]$InputObject = New-Object System.Management.Automation.PSCredential ($env: MONKEY_ENV_CLIENT_ID.Trim (' "' ), $cred )
180+ $MyParams.ClientCredentials = $InputObject
181+ }
182+ catch {
183+ Write-Error $_
184+ throw (" [ParameterError] {0}: {1}" -f " Unable to create Monkey365 object. Unable to retrieve client credentials from environment variables" , $_.Exception.Message )
185+ }
186+ }
187+ # Check If clientId, certificate and certificate password
188+ ElseIf ((Test-Path env:MONKEY_ENV_CLIENT_ID) -and (Test-Path env:MONKEY_ENV_CERTIFICATE)){
189+ try {
190+ $MyParams.ClientId = $env: MONKEY_ENV_CLIENT_ID.Trim (' "' )
191+ $MyParams.Certificate = $env: MONKEY_ENV_CERTIFICATE.Trim (' "' )
192+ # Check If certificate password
193+ If (Test-Path env:MONKEY_ENV_CERTIFICATE_PASSWORD){
194+ [securestring ]$cred = ConvertTo-SecureString $env: MONKEY_ENV_CERTIFICATE_PASSWORD.Trim (' "' )
195+ $MyParams.CertFilePassword = $cred
196+ }
197+ }
198+ catch {
199+ Write-Error $_
200+ throw (" [ParameterError] {0}: {1}" -f " Unable to create Monkey365 object. Unable to retrieve certificate credentials from environment variables" , $_.Exception.Message )
172201 }
173202 }
174203 # Check If TenantID
175204 If (Test-Path env:MONKEY_ENV_TENANT_ID){
176- $MyParams.TenantID = $env: MONKEY_ENV_TENANT_ID
205+ $MyParams.TenantID = $env: MONKEY_ENV_TENANT_ID.Trim ( ' " ' )
177206 }
178207 # Check If AuthMode
179208 If (Test-Path env:MONKEY_ENV_AUTH_MODE){
180- $MyParams.AuthMode = $env: MONKEY_ENV_AUTH_MODE
209+ $MyParams.AuthMode = $env: MONKEY_ENV_AUTH_MODE.Trim ( ' " ' )
181210 }
182211 # Check If subscriptions
183212 If (Test-Path env:MONKEY_ENV_SUBSCRIPTIONS){
184- $MyParams.Subscriptions = $env: MONKEY_ENV_SUBSCRIPTIONS
213+ $MyParams.Subscriptions = $env: MONKEY_ENV_SUBSCRIPTIONS.Trim ( ' " ' )
185214 }
186215 # Check If collect
187216 If (Test-Path env:MONKEY_ENV_COLLECT){
188217 $collect = @ ()
189- ForEach ($element in $env: MONKEY_ENV_COLLECT.Split (' ,' )){
218+ ForEach ($element in $env: MONKEY_ENV_COLLECT.Trim ( ' " ' ). Split(' ,' )){
190219 $collect += $element
191220 }
192221 If (' all' -in $collect ){
@@ -201,7 +230,7 @@ Function New-O365Object{
201230 # Check If exportTo
202231 If (Test-Path env:MONKEY_ENV_EXPORT_TO){
203232 $exportTo = @ ()
204- ForEach ($element in $env: MONKEY_ENV_EXPORT_TO.Split (' ,' )){
233+ ForEach ($element in $env: MONKEY_ENV_EXPORT_TO.Trim ( ' " ' ). Split(' ,' )){
205234 $exportTo += $element
206235 }
207236 If ($exportTo.Count -gt 0 ){
@@ -212,7 +241,9 @@ Function New-O365Object{
212241 # Check If writelog
213242 If (Test-Path env:MONKEY_ENV_WRITELOG){
214243 try {
215- $MyParams.WriteLog = [System.Convert ]::ToBoolean($env: MONKEY_ENV_WRITELOG )
244+ $out = $null ;
245+ [void ][bool ]::TryParse($env: MONKEY_ENV_WRITELOG.Trim (' "' ), [ref ]$out );
246+ $MyParams.WriteLog = $out
216247 }
217248 catch {
218249 $MyParams.WriteLog = $false
@@ -221,7 +252,9 @@ Function New-O365Object{
221252 # Check If Verbose
222253 If (Test-Path env:MONKEY_ENV_VERBOSE){
223254 try {
224- $MyParams.Verbose = [System.Convert ]::ToBoolean($env: MONKEY_ENV_VERBOSE )
255+ $out = $null ;
256+ [void ][bool ]::TryParse($env: MONKEY_ENV_VERBOSE.Trim (' "' ), [ref ]$out );
257+ $MyParams.Verbose = $out
225258 }
226259 catch {
227260 $MyParams.Verbose = $false
@@ -230,7 +263,9 @@ Function New-O365Object{
230263 # Check If Debug
231264 If (Test-Path env:MONKEY_ENV_DEBUG){
232265 try {
233- $MyParams.Debug = [System.Convert ]::ToBoolean($env: MONKEY_ENV_DEBUG )
266+ $out = $null ;
267+ [void ][bool ]::TryParse($env: MONKEY_ENV_DEBUG.Trim (' "' ), [ref ]$out );
268+ $MyParams.Debug = $out
234269 }
235270 catch {
236271 $MyParams.Debug = $false
0 commit comments