Advertisement
Guest User

Untitled

a guest
Jun 12th, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.24 KB | None | 0 0
  1. #
  2. # Meny
  3.  
  4. while (1 -eq 1)
  5. {
  6. Invoke-Expression -Command clear
  7. write-host ' ' -background "black" -foreground "white"
  8. write-host ' Office 365 - Användbara powershell script ' -background "black" -foreground "white"
  9. write-host ' av: pelu15 och mast32 ' -background "black" -foreground "white"
  10. write-host ' ' -background "black"
  11. write-host ' ----Anslutning-----------------------------------------v1.0 ' -background "black" -foreground "green"
  12. write-host ' 1) Logga in ' -background "black" -foreground "yellow"
  13. write-host ' 2) Finns det en aktiv session ' -background "black" -foreground "yellow"
  14. write-host ' ' -background "black"
  15. write-host ' 5) Kontrollera vilken server användaren ligger på ' -background "black" -foreground "yellow"
  16. write-host ' ' -background "black"
  17. write-host ' ----Lösenord----------------------------------------------- ' -background "black" -foreground "green"
  18. write-host ' 10) Skapa nytt lösen för tenant Admin (LOGGA IN SOM PARTNER)' -background "black" -foreground "red"
  19. write-host ' 11) Skapa nytt tillfälligt lösenord på valt konto ' -background "black" -foreground "yellow"
  20. write-host ' 12) Kontrollera policy för "expire password" ' -background "black" -foreground "yellow"
  21. write-host ' 13) Ställ in så att lösenordet aldrig går ut ' -background "black" -foreground "yellow"
  22. write-host ' 14) Ställ in så att lösenordet går ut ' -background "black" -foreground "yellow"
  23. write-host ' ' -background "black"
  24. write-host ' ----Användare/Distributionsgrupper------------------------- ' -background "black" -foreground "green"
  25. write-host ' 20) Lista alla Distributionsgrupper ' -background "black" -foreground "yellow"
  26. write-host ' 21) Kontrollera medlemmar i Distributionsgrupp ' -background "black" -foreground "yellow"
  27. write-host ' ' -background "black"
  28. write-host ' 22) Skapa distributionsgrupp ' -background "black" -foreground "yellow"
  29. write-host ' 23) Ta bort distributionsgrupp ' -background "black" -foreground "yellow"
  30. write-host ' ' -background "black"
  31. write-host ' 24) Lägg till medlem i distributionsgrupp ' -background "black" -foreground "yellow"
  32. write-host ' 25) Ta bort medlem från distributionsgrupp ' -background "black" -foreground "yellow"
  33. write-host ' ' -background "black"
  34. write-host ' 26) Ge användare SendAs rättighet från distributionsgrupp ' -background "black" -foreground "yellow"
  35. write-host ' 27) Ta bort SendAs rättighet från distributionsgrupp ' -background "black" -foreground "yellow"
  36. write-host ' ' -background "black"
  37. write-host ' 28) Acceptera mail utanför organisationen ' -background "black" -foreground "yellow"
  38. write-host ' till Distributionsgrupp ' -background "black" -foreground "yellow"
  39. write-host ' 29) Acceptera INTE mail utanför organisationen ' -background "black" -foreground "yellow"
  40. write-host ' till Distributionsgrupp ' -background "black" -foreground "yellow"
  41. write-host ' ' -background "black"
  42. write-host ' ----Användare/Delad brevlåda------------------------------- ' -background "black" -foreground "green"
  43. write-host ' 40) Skapa delad brevlåda ' -background "black" -foreground "yellow"
  44. write-host ' 41) Ta bort delad brevlåda ' -background "black" -foreground "yellow"
  45. write-host ' ' -background "black"
  46. write-host ' 42) Ge användare SendAs rättighet från delad brevlåda ' -background "black" -foreground "yellow"
  47. write-host ' 43) Ta bort SendAs rättighet från delad brevlåda ' -background "black" -foreground "yellow"
  48. write-host ' ' -background "black"
  49. write-host ' ----Avsluta------------------------------------------------ ' -background "black" -foreground "green"
  50. write-host ' 80) Logga ut ' -background "black" -foreground "red"
  51. write-host ' 90) Exit ' -background "black" -foreground "red"
  52. write-host ' ' -background "black"
  53. write-host ' ----------------------------------------------------------- ' -background "black" -foreground "green"
  54. write-host ''
  55. $val = read-host ' Ange val'
  56. if ($val -eq 1,2,5,10,11,12,13,14,20,21,22,23,24,25,26,27,28,29,40,41,42,43,80,90)
  57. {
  58. continue
  59. }
  60. switch ($val)
  61. {
  62.  
  63. # Logga in på ps.outlook.com/powershell
  64. 1{
  65. Invoke-Expression -Command clear
  66. write-host
  67. $Credential = Get-Credential
  68. $PSSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $Credential -Authentication Basic -AllowRedirection
  69. Import-PSSession -Session $PSSession
  70. import-module MSOnline
  71. connect-MSOLService -credential $Credential
  72. write-host
  73. }
  74.  
  75. # Kontrollera om det finns en aktiv PSSession
  76. 2{
  77. write-host
  78. Get-PSSession | FL Id,Name,State,Availability | Out-String
  79. write-host
  80. read-host 'Tryck på enter för att fortsätta...'
  81. }
  82.  
  83. # Kontrollera vilken server användaren ligger på
  84. 5{
  85. Invoke-Expression -Command clear
  86. write-host
  87. write-host '1. Kontrollera vilken server användaren är kopplad till (skriv in full e-post adress)' -Foreground Yellow
  88. write-host
  89. $mailboxUser = read-host 'Användare'
  90. Get-mailbox -Identity $mailboxUser | Select ExchangeGUID | Out-String
  91. write-host
  92. read-host 'Tryck på enter för att fortsätta...'
  93. }
  94.  
  95. # Skapa nytt tenant
  96. 10{
  97. # check a valid partner session
  98. write-host
  99. write-host 'State the domain to generate a new admin password for:' -Foreground Yellow
  100. write-host
  101. $Domain = Read-Host "Domain"
  102. Invoke-Expression -Command clear
  103.  
  104. # tajgoren edited, missing cmd? removing in favor of a more lax domain check
  105. # if($Domain -ne "" -and (Get-MsolPartnerContract -DomainName $Domain | measure).Count -eq 1)
  106. if($Domain -ne "")
  107. {
  108. $Assembly = Add-Type -AssemblyName System.Web
  109. $TenantPass = [System.Web.Security.Membership]::GeneratePassword(15,3)
  110. $TenantSecurePass = New-Object Security.SecureString
  111. $TenantPass.ToCharArray() | % { $TenantSecurePass.AppendChar($_) }
  112. $TenantId = (Get-MsolPartnerContract -DomainName $Domain).TenantId
  113. $TenantAdmin = (Get-MsolUser -TenantId $TenantId | Where-Object {$_.UserPrincipalName -like "admin@*.onmicrosoft.com"}).UserPrincipalName
  114. Set-MsolUserPassword -UserPrincipalName $TenantAdmin -ForceChangePassword $false -NewPassword $TenantPass -TenantId $TenantId | Out-Null
  115.  
  116. Write-Host "Tenant Admin: $TenantAdmin"
  117. Write-Host "Password: $TenantPass"
  118. Write-Host
  119. read-host 'Tryck på enter för att fortsätta...'
  120. }
  121. else
  122. {
  123. write-host
  124. write-host 'Felaktig domän.' -Foreground Yellow
  125. write-host
  126. read-host 'Tryck på enter för att fortsätta...'
  127. }
  128. # tajgoren, extra wait for input
  129. read-host 'Tryck på enter för att fortsätta...'
  130. }
  131.  
  132. #
  133. # Generera nytt lösenord för användare
  134. 11{
  135. Invoke-Expression -Command clear
  136. write-host
  137. write-host '1. Skriv in full e-post adress på användaren som du vill skapa ett tillfälligt lösenord på' -Foreground Yellow
  138. write-host
  139. $mailboxUser = read-host "Användare"
  140. write-host
  141. Set-MsolUserPassword –UserPrincipalName $mailboxUser | Out-String
  142. write-host
  143. write-host 'Skriv ned lösenordet som skapades, du kommer inte kunna se det på nytt igen!' -Foreground Red
  144. write-host
  145. read-host 'Tryck på enter för att fortsätta...'
  146. }
  147.  
  148. # Kontrollera om lösenordet måste bytas ut efter en tid eller inte
  149. 12{
  150. Invoke-Expression -Command clear
  151. write-host
  152. Get-MsolUser | Select UserPrincipalName,PasswordNeverExpires | Out-String
  153. write-host
  154. read-host 'Tryck på enter för att fortsätta...'
  155. }
  156.  
  157. 13{
  158. # Ställ in så att lösenordet aldrig går ut
  159. Invoke-Expression -Command clear
  160. write-host
  161. $mailboxUser = read-host "Användare"
  162. write-host
  163. Set-MsolUser -UserPrincipalName $mailboxUser -PasswordNeverExpires $true | Out-String
  164. Get-MsolUser -UserPrincipalName $mailboxUser | Select UserPrincipalName,PasswordNeverExpires | Out-String
  165. write-host
  166. read-host 'Tryck på enter för att fortsätta...'
  167. }
  168.  
  169. 14{
  170. # Ställ in så att lösenordet går ut
  171. Invoke-Expression -Command clear
  172. write-host
  173. $mailboxUser = read-host "Användare"
  174. write-host
  175. Set-MsolUser -UserPrincipalName $mailboxUser -PasswordNeverExpires $false | Out-String
  176. Get-MsolUser -UserPrincipalName $mailboxUser | Select UserPrincipalName,PasswordNeverExpires | Out-String
  177. write-host
  178. read-host 'Tryck på enter för att fortsätta...'
  179. }
  180.  
  181. # Kontrollera vilka distributionsgrupper som redan finns
  182. 20{
  183. Invoke-Expression -Command clear
  184. write-host
  185. Get-DistributionGroup | FL DisplayName,Name,PrimarySmtpAddress,GroupType | out-string
  186. write-host
  187. read-host 'Tryck på enter för att fortsätta...'
  188. }
  189.  
  190. #
  191. # Kontrollera medlemmarna för Distributionsgrupp
  192. 21{
  193. Invoke-Expression -Command clear
  194. write-host
  195. write-host '1. Kontrollera vilka medlemmar som är med Distributionsgruppen' -Foreground Yellow
  196. write-host
  197. $distributionMailbox = read-host 'Distributionsgrupp '
  198. write-host
  199. Get-DistributionGroupMember -Identity "$distributionMailbox" | FL Name,RescipientType | Out-String
  200. #Get-MailboxPermission * | where { ($_.IsInherited -eq $false) -and -not ($_.User -like "NT AUTHORITY\SELF") -and -not ($_.User -like "NULL SID")} | Select Identity, user, AccessRights | Out-String
  201. write-host
  202. read-host 'Tryck på enter för att fortsätta...'
  203. }
  204.  
  205. #
  206. # Skapa en Distributionsgrupp.
  207. 22{
  208. Invoke-Expression -Command clear
  209. write-host
  210. write-host '1. Ange namnet på den distributionsgrupp som du vill skapa' -Foreground Yellow
  211. write-host '2. Vilken domän ska vi använda till distributionsgruppen' -Foreground Yellow
  212. write-host '3. Lägg till beskrivning för distributionsgruppen' -Foreground Yellow
  213. write-host
  214. $distributionName = read-host "Namn på Distributionsgrupp"
  215. $distributionMailbox = read-host "Primär e-post adress"
  216. $distributionMailboxNotes = read-host "Beskrivning"
  217. write-host
  218. New-DistributionGroup -Name $distributionName -Type "Security" -PrimarySmtpAddress $distributionMailbox -notes $distributionMailboxNotes -Confirm:$False | Out-String
  219. write-host
  220. read-host 'Tryck på enter för att fortsätta...'
  221. }
  222.  
  223. #
  224. # Ta bort vald Distributionsgrupp
  225. 23{
  226. Invoke-Expression -Command clear
  227. write-host
  228. write-host '1. Ange namnet på distributionsgruppen som du vill ta bort' -Foreground Yellow
  229. write-host
  230. $distributionMailbox = read-host "Distributionsgrupp"
  231. write-host
  232. Remove-DistributionGroup $distributionMailbox | Out-String
  233. write-host
  234. read-host 'Tryck på enter för att fortsätta...'
  235. }
  236.  
  237. #
  238. # Lägg till medlem i distributionsgrupp
  239. 24{
  240. Invoke-Expression -Command clear
  241. write-host
  242. write-host '1. Ange först vilken distributionsgrupp' -Foreground Yellow
  243. write-host '2. Vilken medlem/användare vill du lägga till distributionsgruppen' -Foreground Yellow
  244. write-host
  245. $distributionMailbox = read-host 'Distributionsgrupp'
  246. $mailboxUser = read-host 'Användare'
  247. Add-DistributionGroupMember -Identity "$distributionMailbox" -Member "$mailboxUser" -BypassSecurityGroupManagerCheck
  248. write-host
  249. read-host 'Tryck på enter för att fortsätta...'
  250. }
  251.  
  252. #
  253. # Ta bort medlem från distributionsgrupp
  254. 25{
  255. Invoke-Expression -Command clear
  256. write-host
  257. write-host '1. Ange först vilken distributionsgrupp' -Foreground Yellow
  258. write-host '2. Vilken medlem/användare vill du ta bort från distributionsgruppen' -Foreground Yellow
  259. write-host
  260. $distributionMailbox = read-host 'Distributionsgrupp'
  261. $mailboxUser = read-host 'Användare'
  262. Remove-DistributionGroupMember -Identity "$distributionMailbox" -Member "$mailboxUser" -Confirm:$False | Out-String
  263. write-host
  264. read-host 'Tryck på enter för att fortsätta...'
  265. }
  266.  
  267. #
  268. # Ge användare SendAs rättighet från distributionsgrupp
  269. 26{
  270. Invoke-Expression -Command clear
  271. write-host '1. Ange först vilken distributionslåda du vill redigera' -Foreground Yellow
  272. write-host '2. Vilken användare ska få denna SendAs åtkomst' -Foreground Yellow
  273. write-host
  274. $distributionMailbox = read-host "Distributionsgrupp"
  275. $mailboxUser = read-host "Användare"
  276. write-host
  277. Add-RecipientPermission $distributionMailbox -AccessRights SendAs -Trustee $mailboxUser | Out-String
  278. write-host
  279. read-host 'Tryck på enter för att fortsätta...'
  280. }
  281.  
  282. #
  283. # Ta bort SendAs rättighet från distributionsgrupp
  284. 27{
  285. Invoke-Expression -Command clear
  286. write-host
  287. write-host '1. Ange först vilken distributionsgrupp du vill redigera' -Foreground Yellow
  288. write-host '2. Vilken användare ska inte längre få SendAs rättighet från distributionsgrupp' -Foreground Yellow
  289. write-host
  290. $distributionMailbox = read-host "Distributionsgrupp"
  291. $mailboxUser = read-host "Användare"
  292. write-host
  293. Remove-RecipientPermission $distributionMailbox -AccessRights SendAs -Trustee $mailboxUser -Confirm:$False | Out-String
  294. write-host
  295. read-host 'Tryck på enter för att fortsätta...'
  296. }
  297.  
  298. #
  299. # Gör så att distributionsgruppen kan få mail utifrån organisationen
  300. 28{
  301. Invoke-Expression -Command clear
  302. write-host
  303. write-host '1. Vilken distributionsgrupp gäller det' -Foreground Yellow
  304. write-host
  305. $distributionMailbox = read-host "Distributionsgrupp"
  306. write-host
  307. Set-DistributionGroup -Identity "$distributionMailbox" -RequireSenderAuthenticationEnabled $False | Out-String
  308. write-host
  309. read-host 'Tryck på enter för att fortsätta...'
  310. }
  311.  
  312. #
  313. # Gör så att distributionsgruppen inte få mail utifrån organisationen
  314. 29{
  315. Invoke-Expression -Command clear
  316. write-host
  317. write-host '1. Vilken distributionsgrupp gäller det' -Foreground Yellow
  318. write-host
  319. $distributionMailbox = read-host "Distributionsgrupp"
  320. write-host
  321. Set-DistributionGroup -Identity "$distributionMailbox" -RequireSenderAuthenticationEnabled $True | Out-String
  322. write-host
  323. read-host 'Tryck på enter för att fortsätta...'
  324. }
  325.  
  326. #
  327. # Skapa delad brevlåda
  328. 40{
  329. Invoke-Expression -Command clear
  330. write-host 'Skriv in namnet på den nya delade brevlådan' -Foreground Yellow
  331. write-host ' - exempel: Office-Mailbox' -Foreground Yellow
  332. write-host
  333. $sharedMailbox = Read-Host "Delad brevlåda "
  334. write-host
  335. New-Mailbox -Name $sharedMailbox -Shared -Confirm:$False | Out-String
  336. write-host
  337. read-host 'Tryck på enter för att fortsätta...'
  338. }
  339.  
  340. #
  341. # Ta bort vald delad brevlåda
  342. 41{
  343. Invoke-Expression -Command clear
  344. write-host
  345. write-host '1. Ange namnet på delad brevlåda som du vill ta bort' -Foreground Yellow
  346. write-host
  347. $sharedMailbox = read-host "Delad brevlåda"
  348. write-host
  349. Remove-Mailbox $sharedMailbox | Out-String
  350. write-host
  351. read-host 'Tryck på enter för att fortsätta...'
  352. }
  353.  
  354. #
  355. # Ge användare SendAs rättighet från delad brevlåda
  356. 42{
  357. Invoke-Expression -Command clear
  358. write-host '1. Ange först vilken delad brevlåda du vill redigera' -Foreground Yellow
  359. write-host '2. Vilken användare ska få denna SendAs åtkomst' -Foreground Yellow
  360. write-host
  361. $sharedMailbox = read-host "Delad brevlåda"
  362. $mailboxUser = read-host "Användare"
  363. write-host
  364. Add-RecipientPermission $sharedMailbox -AccessRights SendAs -Trustee $mailboxUser -Confirm:$False | Out-String
  365. write-host
  366. read-host 'Tryck på enter för att fortsätta...'
  367. }
  368.  
  369. #
  370. # Ta bort SendAs rättighet från delad brevlåda
  371. 43{
  372. Invoke-Expression -Command clear
  373. write-host
  374. write-host '1. Ange först vilken delad brevlåda du vill redigera' -Foreground Yellow
  375. write-host '2. Vilken användare ska inte längre få SendAs rättighet' -Foreground Yellow
  376. write-host
  377. $sharedMailbox = read-host "Delad brevlåda"
  378. $mailboxUser = read-host "Användare"
  379. write-host
  380. Remove-RecipientPermission $sharedMailbox -AccessRights SendAs -Trustee $mailboxUser | Out-String
  381. write-host
  382. read-host 'Tryck på enter för att fortsätta...'
  383. }
  384.  
  385. #
  386. # Logga ut ur session
  387. 80{
  388. Invoke-Expression -Command clear
  389. write-host
  390. Get-PSSession | Remove-PSSession | Out-String
  391. write-host
  392. write-host 'Urloggad' -Foreground Green
  393. write-host
  394. read-host 'Tryck på enter för att fortsätta...'
  395. }
  396.  
  397. #
  398. # Avsluta scriptet
  399. 90{
  400. Get-PSSession | Remove-PSSession | Out-String
  401. Invoke-Expression -Command clear
  402. write-host
  403. write-host 'Välkommen åter!' -Foreground Green
  404. write-host
  405. write-host
  406. write-host
  407. write-host
  408. write-host
  409. exit
  410. }
  411.  
  412. }
  413. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement