ilpostino Skrevet 4. april 2016 Del Skrevet 4. april 2016 Jeg har laget et script som skal gi tilganger til postbokser på Excahne 2013. Dette har jo blitt fjernet fra GUI så da er PowerShell svaret. Jeg er ikke fornøyd med feilhåndteringen i scriptet og er på jakt etter måter å forbedre det på. Det er lagt inn kvalitetssjekk på om en har skrevet inn navn på sikkerhetsgrupper og postbokser som faktisk fungerer. Per se "hopper" scriptet videre selv når en skriver dette feil 2. gang. Hvordan får jeg det på en elegant måte å stoppe opp uansett hvor mange ganger navnet skrives feil?Fra PHP er jeg vandt til å ha en egen funksjon som tar seg av feilmeldinger. Jeg har ikke tatt meg tiden til å lage tilsvarende her siden dette i utgangspunktet ikke er noe stort script. Scriptet er nedenfor. $postboks = Read-Host "Skriv inn navnet på postboksen hvis egenskaper skal endres" $postboks = $postboks.Trim() #Dette sjekker om postboksen finnes try { (Get-Mailbox -identity $postboks) } catch { write-host "Postboksen '$postboks' finnes ikke. Vennligst skriv inn riktig navn." $postboks = Read-Host "Skriv inn navnet på postboksen hvis egenskaper skal endres" $postboks = $postboks.Trim() } $sikkerhetsgruppe = Read-Host "`nSkriv inn navn på sikkerhetsgruppen som skal ha rettigheten" $sikkerhetsgruppe = $sikkerhetsgruppe.Trim() #Dette sjekker om sikkerhetsgruppen finnes try { (Get-Group -identity $sikkerhetsgruppe) } catch { Write-Host "Sikkerhetsgruppen '$sikkerhetsgruppe' finnes ikke. Vennligst skriv inn riktig navn." $sikkerhetsgruppe = Read-Host "Skriv inn navn på sikkerhetsgruppen som skal ha rettigheten" $sikkerhetsgruppe = $sikkerhetsgruppe.Trim() } #Dette spør om man skal gi rettigheter til å sende som en postboks/bruker try { [ValidateSet('Ja','Nei')]$SendAs = Read-Host "`n Vil du at '$sikkerhetsgruppe' skal ha rettigheter for å sende e-post som '$postboks' (Ja/Nei)?" } catch { write-host "Feilmelding: Du må skrive 'Ja' eller 'Nei'" -foregroundcolor "red" } if ($SendAs -eq 'Ja') { Write-Host "'$sikkerhetsgruppe' gis nå tilgang til å sende e-post på vegne av postboksen '$postboks'." Set-Mailbox gert.mailbox -GrantSendOnBehalfTo $sikkerhetsgruppe } #Dette spør om man skal gi rettigheter til å sende på vegne av en postboks/bruker try { [ValidateSet('Ja','Nei')]$BehalfOf = Read-Host "`n Vil du at '$sikkerhetsgruppe' skal ha rettigheter for å sende e-post på vegne av '$postboks' (Ja/Nei)?" } catch { write-host "Feilmelding: Du må skrive 'Ja' eller 'Nei'" -foregroundcolor "red" } if ($BehalfOf -eq 'Ja') { Write-Host "'$sikkerhetsgruppe' gis nå tilgang til å sende e-post som postboksen '$postboks'" Get-Mailbox $postboks | Add-ADPermission -User $sikkerhetsgruppe -ExtendedRights "Send As" } # Dette spør om man vil gi fulle tilganger til en postboks/bruker try { [ValidateSet('Ja','Nei')]$FullAccess = Read-Host "`n Vil du at '$sikkerhetsgruppe' skal ha fulle rettigheter til postboksen '$postboks' (Ja/Nei)?" } catch { write-host "Feilmelding: Du må skrive 'Ja' eller 'Nei'" -foregroundcolor "red" } if ($FullAccess -eq 'Ja') { Write-Host "'$sikkerhetsgruppe' gis nå fulle tilganger til postboksen '$postboks'." Add-MailboxPermission -Identity $postboks -User $sikkerhetsgruppe -AccessRights Fullaccess -InheritanceType all } Lenke til kommentar
Zyko Skrevet 24. mai 2016 Del Skrevet 24. mai 2016 $postboks = Read-Host "Skriv inn navnet på postboksen hvis egenskaper skal endres" $postboks = $postboks.Trim() #Dette sjekker om postboksen finnes try { (Get-Mailbox -identity $postboks) } catch { write-host "Postboksen '$postboks' finnes ikke. Vennligst skriv inn riktig navn." $postboks = Read-Host "Skriv inn navnet på postboksen hvis egenskaper skal endres" $postboks = $postboks.Trim() } Tror det letteste er å pakke denne koden inn en funksjon. Eksempel: #Dette sjekker om postboksen finnes function checkPostboxExcistence (){ $postboks = Read-Host "Skriv inn navnet på postboksen hvis egenskaper skal endres" $postboks = $postboks.Trim() try { (Get-Mailbox -identity $postboks) } catch { write-host "Postboksen '$postboks' finnes ikke. Vennligst skriv inn riktig navn." checkPostboxExcistence #Kaller funksjon igjen hvis Get-Mailbox feiler. #Skriptet vil med andre ord ikke kjøre videre før Get-Mailbox er OK. } } checkPostboxExcistence Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå