PoshCode Archive  Hex Artifact Content

Artifact 277bf4dd08ddea336295b1a3b2dfa3e1fa68a4c1251785ef4401dec340fc5287:

  • File SQL-Server-Login.ps1 — part of check-in [afa204d20b] at 2018-06-10 13:40:57 on branch trunk — ############################################################################################# (user: Rob Sewell size: 3033)

0000: 23 20 65 6e 63 6f 64 69 6e 67 3a 20 61 73 63 69  # encoding: asci
0010: 69 0d 0a 23 20 61 70 69 3a 20 70 6f 77 65 72 73  i..# api: powers
0020: 68 65 6c 6c 0d 0a 23 20 74 69 74 6c 65 3a 20 20  hell..# title:  
0030: 53 51 4c 20 53 65 72 76 65 72 20 4c 6f 67 69 6e  SQL Server Login
0040: 0d 0a 23 20 64 65 73 63 72 69 70 74 69 6f 6e 3a  ..# description:
0050: 20 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23   ###############
0060: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0070: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0080: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0090: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
00a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0d 0a  ##############..
00b0: 23 20 76 65 72 73 69 6f 6e 3a 20 30 2e 31 0d 0a  # version: 0.1..
00c0: 23 20 74 79 70 65 3a 20 66 75 6e 63 74 69 6f 6e  # type: function
00d0: 0d 0a 23 20 61 75 74 68 6f 72 3a 20 52 6f 62 20  ..# author: Rob 
00e0: 53 65 77 65 6c 6c 0d 0a 23 20 6c 69 63 65 6e 73  Sewell..# licens
00f0: 65 3a 20 43 43 30 0d 0a 23 20 66 75 6e 63 74 69  e: CC0..# functi
0100: 6f 6e 3a 20 53 68 6f 77 2d 53 51 4c 55 73 65 72  on: Show-SQLUser
0110: 4c 6f 67 69 6e 73 0d 0a 23 20 78 2d 70 6f 73 68  Logins..# x-posh
0120: 63 6f 64 65 2d 69 64 3a 20 34 34 33 31 0d 0a 23  code-id: 4431..#
0130: 20 78 2d 61 72 63 68 69 76 65 64 3a 20 32 30 31   x-archived: 201
0140: 34 2d 30 38 2d 31 38 54 32 31 3a 33 33 3a 32 37  4-08-18T21:33:27
0150: 0d 0a 23 20 78 2d 70 75 62 6c 69 73 68 65 64 3a  ..# x-published:
0160: 20 32 30 31 34 2d 30 39 2d 30 31 54 30 39 3a 35   2014-09-01T09:5
0170: 32 3a 30 30 0d 0a 23 0d 0a 23 20 23 0d 0a 23 20  2:00..#..# #..# 
0180: 4e 41 4d 45 3a 20 53 68 6f 77 2d 53 51 4c 55 73  NAME: Show-SQLUs
0190: 65 72 4c 6f 67 69 6e 73 2e 70 73 31 0d 0a 23 20  erLogins.ps1..# 
01a0: 41 55 54 48 4f 52 3a 20 52 6f 62 20 53 65 77 65  AUTHOR: Rob Sewe
01b0: 6c 6c 20 68 74 74 70 3a 2f 2f 73 71 6c 64 62 61  ll http://sqldba
01c0: 77 69 74 68 74 68 65 62 65 61 72 64 2e 63 6f 6d  withthebeard.com
01d0: 0d 0a 23 20 44 41 54 45 3a 30 36 2f 30 31 2f 32  ..# DATE:06/01/2
01e0: 30 31 33 0d 0a 23 20 23 0d 0a 23 20 43 4f 4d 4d  013..# #..# COMM
01f0: 45 4e 54 53 3a 20 4c 6f 61 64 20 66 75 6e 63 74  ENTS: Load funct
0200: 69 6f 6e 20 74 6f 20 44 69 73 70 6c 61 79 20 61  ion to Display a
0210: 20 6c 69 73 74 20 6f 66 20 73 65 72 76 65 72 2c   list of server,
0220: 20 64 61 74 61 62 61 73 65 20 61 6e 64 20 6c 6f   database and lo
0230: 67 69 6e 20 66 6f 72 20 53 51 4c 20 73 65 72 76  gin for SQL serv
0240: 65 72 73 20 6c 69 73 74 65 64 20 0d 0a 23 20 69  ers listed ..# i
0250: 6e 20 73 71 6c 73 65 72 76 65 72 73 2e 74 78 74  n sqlservers.txt
0260: 20 66 69 6c 65 20 66 72 6f 6d 20 61 20 72 61 6e   file from a ran
0270: 67 65 20 6f 66 20 64 6f 6d 61 69 6e 73 0d 0a 23  ge of domains..#
0280: 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ..##############
0290: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
02a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
02b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
02c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
02d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0d  ###############.
02e0: 0a 23 0d 0a 23 20 4e 41 4d 45 3a 20 53 68 6f 77  .#..# NAME: Show
02f0: 2d 53 51 4c 55 73 65 72 4c 6f 67 69 6e 73 2e 70  -SQLUserLogins.p
0300: 73 31 0d 0a 23 20 41 55 54 48 4f 52 3a 20 52 6f  s1..# AUTHOR: Ro
0310: 62 20 53 65 77 65 6c 6c 20 68 74 74 70 3a 2f 2f  b Sewell http://
0320: 73 71 6c 64 62 61 77 69 74 68 74 68 65 62 65 61  sqldbawiththebea
0330: 72 64 2e 63 6f 6d 0d 0a 23 20 44 41 54 45 3a 30  rd.com..# DATE:0
0340: 36 2f 30 31 2f 32 30 31 33 0d 0a 23 0d 0a 23 20  6/01/2013..#..# 
0350: 43 4f 4d 4d 45 4e 54 53 3a 20 4c 6f 61 64 20 66  COMMENTS: Load f
0360: 75 6e 63 74 69 6f 6e 20 74 6f 20 44 69 73 70 6c  unction to Displ
0370: 61 79 20 61 20 6c 69 73 74 20 6f 66 20 73 65 72  ay a list of ser
0380: 76 65 72 2c 20 64 61 74 61 62 61 73 65 20 61 6e  ver, database an
0390: 64 20 6c 6f 67 69 6e 20 66 6f 72 20 53 51 4c 20  d login for SQL 
03a0: 73 65 72 76 65 72 73 20 6c 69 73 74 65 64 20 0d  servers listed .
03b0: 0a 23 20 69 6e 20 73 71 6c 73 65 72 76 65 72 73  .# in sqlservers
03c0: 2e 74 78 74 20 66 69 6c 65 20 66 72 6f 6d 20 61  .txt file from a
03d0: 20 72 61 6e 67 65 20 6f 66 20 64 6f 6d 61 69 6e   range of domain
03e0: 73 0d 0a 23 0d 0a 23 20 55 53 41 47 45 20 53 68  s..#..# USAGE Sh
03f0: 6f 77 2d 53 51 4c 55 73 65 72 4c 6f 67 69 6e 73  ow-SQLUserLogins
0400: 20 44 42 41 77 69 74 68 61 42 65 61 72 64 0d 0a   DBAwithaBeard..
0410: 0d 0a 0d 0a 46 75 6e 63 74 69 6f 6e 20 53 68 6f  ....Function Sho
0420: 77 2d 53 51 4c 55 73 65 72 4c 6f 67 69 6e 73 20  w-SQLUserLogins 
0430: 28 24 75 73 72 29 0d 0a 7b 0d 0a 5b 53 79 73 74  ($usr)..{..[Syst
0440: 65 6d 2e 52 65 66 6c 65 63 74 69 6f 6e 2e 41 73  em.Reflection.As
0450: 73 65 6d 62 6c 79 5d 3a 3a 4c 6f 61 64 57 69 74  sembly]::LoadWit
0460: 68 50 61 72 74 69 61 6c 4e 61 6d 65 28 27 4d 69  hPartialName('Mi
0470: 63 72 6f 73 6f 66 74 2e 53 71 6c 53 65 72 76 65  crosoft.SqlServe
0480: 72 2e 53 4d 4f 27 29 20 7c 20 6f 75 74 2d 6e 75  r.SMO') | out-nu
0490: 6c 6c 0d 0a 0d 0a 23 20 53 75 70 70 72 65 73 73  ll....# Suppress
04a0: 20 45 72 72 6f 72 20 6d 65 73 73 61 67 65 73 20   Error messages 
04b0: 2d 20 54 68 65 79 20 77 69 6c 6c 20 62 65 20 64  - They will be d
04c0: 69 73 70 6c 61 79 65 64 20 61 74 20 74 68 65 20  isplayed at the 
04d0: 65 6e 64 0d 0a 0d 0a 24 45 72 72 6f 72 41 63 74  end....$ErrorAct
04e0: 69 6f 6e 50 72 65 66 65 72 65 6e 63 65 20 3d 20  ionPreference = 
04f0: 22 53 69 6c 65 6e 74 6c 79 43 6f 6e 74 69 6e 75  "SilentlyContinu
0500: 65 22 0d 0a 23 63 6c 73 0d 0a 0d 0a 23 20 50 75  e"..#cls....# Pu
0510: 6c 6c 20 61 20 6c 69 73 74 20 6f 66 20 73 65 72  ll a list of ser
0520: 76 65 72 73 20 66 72 6f 6d 20 61 20 6c 6f 63 61  vers from a loca
0530: 6c 20 74 65 78 74 20 66 69 6c 65 0d 0a 0d 0a 24  l text file....$
0540: 73 65 72 76 65 72 73 20 3d 20 47 65 74 2d 43 6f  servers = Get-Co
0550: 6e 74 65 6e 74 20 27 63 3a 5c 74 65 6d 70 5c 73  ntent 'c:\temp\s
0560: 71 6c 73 65 72 76 65 72 73 2e 74 78 74 27 0d 0a  qlservers.txt'..
0570: 0d 0a 23 20 43 72 65 61 74 65 20 61 6e 20 61 72  ..# Create an ar
0580: 72 61 79 20 66 6f 72 20 74 68 65 20 75 73 65 72  ray for the user
0590: 6e 61 6d 65 20 61 6e 64 20 65 61 63 68 20 64 6f  name and each do
05a0: 6d 61 69 6e 20 73 6c 61 73 68 20 75 73 65 72 6e  main slash usern
05b0: 61 6d 65 0d 0a 0d 0a 24 6c 6f 67 69 6e 73 20 3d  ame....$logins =
05c0: 20 40 28 22 44 4f 4d 41 49 4e 31 5c 24 75 73 72   @("DOMAIN1\$usr
05d0: 22 2c 22 44 4f 4d 41 49 4e 32 5c 24 75 73 72 22  ","DOMAIN2\$usr"
05e0: 2c 20 22 44 4f 4d 41 49 4e 33 5c 24 75 73 72 22  , "DOMAIN3\$usr"
05f0: 20 2c 20 22 24 75 73 72 22 29 0d 0a 0d 0a 09 09   , "$usr")......
0600: 09 09 57 72 69 74 65 2d 48 6f 73 74 20 22 23 23  ..Write-Host "##
0610: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0620: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 22  ###############"
0630: 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   ..             
0640: 20 20 20 57 72 69 74 65 2d 48 6f 73 74 20 22 53     Write-Host "S
0650: 51 4c 20 53 65 72 76 65 72 73 2c 20 44 61 74 61  QL Servers, Data
0660: 62 61 73 65 73 20 61 6e 64 20 4c 6f 67 69 6e 73  bases and Logins
0670: 20 66 6f 72 20 60 6e 24 6c 6f 67 69 6e 73 20 64   for `n$logins d
0680: 69 73 70 6c 61 79 65 64 20 62 65 6c 6f 77 20 22  isplayed below "
0690: 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   ..             
06a0: 20 20 20 57 72 69 74 65 2d 48 6f 73 74 20 22 23     Write-Host "#
06b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
06c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
06d0: 20 60 6e 22 20 0d 0a 0d 0a 09 23 6c 6f 6f 70 20   `n" .....#loop 
06e0: 74 68 72 6f 75 67 68 20 65 61 63 68 20 73 65 72  through each ser
06f0: 76 65 72 20 61 6e 64 20 65 61 63 68 20 64 61 74  ver and each dat
0700: 61 62 61 73 65 20 61 6e 64 20 64 69 73 70 6c 61  abase and displa
0710: 79 20 75 73 65 72 6e 61 6d 65 73 2c 20 73 65 72  y usernames, ser
0720: 76 65 72 73 20 61 6e 64 20 64 61 74 61 62 61 73  vers and databas
0730: 65 73 0d 0a 20 20 20 20 20 20 20 57 72 69 74 65  es..       Write
0740: 2d 48 6f 73 74 20 22 20 53 65 72 76 65 72 20 4c  -Host " Server L
0750: 6f 67 69 6e 73 60 6e 22 0d 0a 20 20 20 20 20 20  ogins`n"..      
0760: 20 20 20 66 6f 72 65 61 63 68 28 24 73 65 72 76     foreach($serv
0770: 65 72 20 69 6e 20 24 73 65 72 76 65 72 73 29 0d  er in $servers).
0780: 0a 7b 0d 0a 20 20 20 20 24 73 72 76 20 3d 20 4e  .{..    $srv = N
0790: 65 77 2d 4f 62 6a 65 63 74 20 28 27 4d 69 63 72  ew-Object ('Micr
07a0: 6f 73 6f 66 74 2e 53 71 6c 53 65 72 76 65 72 2e  osoft.SqlServer.
07b0: 4d 61 6e 61 67 65 6d 65 6e 74 2e 53 6d 6f 2e 53  Management.Smo.S
07c0: 65 72 76 65 72 27 29 20 24 73 65 72 76 65 72 0d  erver') $server.
07d0: 0a 20 20 20 20 0d 0a 20 20 20 20 09 09 66 6f 72  .    ..    ..for
07e0: 65 61 63 68 28 24 6c 6f 67 69 6e 20 69 6e 20 24  each($login in $
07f0: 6c 6f 67 69 6e 73 29 0d 0a 09 09 7b 0d 0a 20 20  logins)....{..  
0800: 20 20 0d 0a 20 20 20 20 09 09 09 69 66 28 24 73    ..    ...if($s
0810: 72 76 2e 4c 6f 67 69 6e 73 2e 43 6f 6e 74 61 69  rv.Logins.Contai
0820: 6e 73 28 24 6c 6f 67 69 6e 29 29 0d 0a 09 09 09  ns($login)).....
0830: 7b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  {....           
0840: 20 20 20 20 20 57 72 69 74 65 2d 48 6f 73 74 20       Write-Host 
0850: 22 20 24 73 65 72 76 65 72 20 2c 20 24 6c 6f 67  " $server , $log
0860: 69 6e 20 22 20 0d 0a 0d 0a 09 09 09 7d 0d 0a 20  in " .......}.. 
0870: 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20             ..   
0880: 20 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20           else.. 
0890: 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 0d 0a             {....
08a0: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20              }.. 
08b0: 20 20 20 20 20 20 20 20 7d 0d 0a 7d 0d 0a 20 20          }..}..  
08c0: 20 20 20 20 57 72 69 74 65 2d 48 6f 73 74 20 22      Write-Host "
08d0: 60 6e 23 23 23 23 23 23 23 23 23 23 23 23 23 23  `n##############
08e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
08f0: 23 23 23 23 23 23 23 23 23 23 23 22 0d 0a 20 20  ###########"..  
0900: 20 20 20 57 72 69 74 65 2d 48 6f 73 74 20 22 60     Write-Host "`
0910: 6e 20 44 61 74 61 62 61 73 65 20 4c 6f 67 69 6e  n Database Login
0920: 73 60 6e 22 20 20 20 20 20 20 20 20 20 20 20 20  s`n"            
0930: 20 20 20 0d 0a 66 6f 72 65 61 63 68 28 24 73 65     ..foreach($se
0940: 72 76 65 72 20 69 6e 20 24 73 65 72 76 65 72 73  rver in $servers
0950: 29 0d 0a 7b 0d 0a 09 24 73 72 76 20 3d 20 4e 65  )..{...$srv = Ne
0960: 77 2d 4f 62 6a 65 63 74 20 28 27 4d 69 63 72 6f  w-Object ('Micro
0970: 73 6f 66 74 2e 53 71 6c 53 65 72 76 65 72 2e 4d  soft.SqlServer.M
0980: 61 6e 61 67 65 6d 65 6e 74 2e 53 6d 6f 2e 53 65  anagement.Smo.Se
0990: 72 76 65 72 27 29 20 24 73 65 72 76 65 72 0d 0a  rver') $server..
09a0: 20 20 20 20 0d 0a 09 66 6f 72 65 61 63 68 28 24      ...foreach($
09b0: 64 61 74 61 62 61 73 65 20 69 6e 20 24 73 72 76  database in $srv
09c0: 2e 44 61 74 61 62 61 73 65 73 29 0d 0a 09 7b 0d  .Databases)...{.
09d0: 0a 09 09 66 6f 72 65 61 63 68 28 24 6c 6f 67 69  ...foreach($logi
09e0: 6e 20 69 6e 20 24 6c 6f 67 69 6e 73 29 0d 0a 09  n in $logins)...
09f0: 09 7b 0d 0a 09 09 09 69 66 28 24 64 61 74 61 62  .{.....if($datab
0a00: 61 73 65 2e 55 73 65 72 73 2e 43 6f 6e 74 61 69  ase.Users.Contai
0a10: 6e 73 28 24 6c 6f 67 69 6e 29 29 0d 0a 09 09 09  ns($login)).....
0a20: 7b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  {....           
0a30: 20 20 20 20 20 57 72 69 74 65 2d 48 6f 73 74 20       Write-Host 
0a40: 22 20 24 73 65 72 76 65 72 20 2c 20 24 64 61 74  " $server , $dat
0a50: 61 62 61 73 65 20 2c 20 24 6c 6f 67 69 6e 20 22  abase , $login "
0a60: 20 0d 0a 0d 0a 09 09 09 7d 0d 0a 20 20 20 20 20   .......}..     
0a70: 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0d             else.
0a80: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
0a90: 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20       {..        
0aa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0ab0: 63 6f 6e 74 69 6e 75 65 0d 0a 20 20 20 20 20 20  continue..      
0ac0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20                } 
0ad0: 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 0d    ..           .
0ae0: 0a 09 09 7d 0d 0a 09 7d 0d 0a 20 20 20 20 7d 0d  ...}...}..    }.
0af0: 0a 20 20 20 57 72 69 74 65 2d 48 6f 73 74 20 22  .   Write-Host "
0b00: 60 6e 23 23 23 23 23 23 23 23 23 23 23 23 23 23  `n##############
0b10: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0b20: 23 23 23 23 23 23 23 23 23 23 23 22 0d 0a 20 20  ###########"..  
0b30: 20 57 72 69 74 65 2d 48 6f 73 74 20 22 46 69 6e   Write-Host "Fin
0b40: 69 73 68 65 64 20 2d 20 49 66 20 74 68 65 72 65  ished - If there
0b50: 20 61 72 65 20 6e 6f 20 6c 6f 67 69 6e 73 20 64   are no logins d
0b60: 69 73 70 6c 61 79 65 64 20 61 62 6f 76 65 20 74  isplayed above t
0b70: 68 65 6e 20 6e 6f 20 6c 6f 67 69 6e 73 20 77 65  hen no logins we
0b80: 72 65 20 66 6f 75 6e 64 21 22 20 20 20 20 0d 0a  re found!"    ..
0b90: 20 20 20 57 72 69 74 65 2d 48 6f 73 74 20 22 23     Write-Host "#
0ba0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0bb0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0bc0: 23 23 23 23 23 23 23 23 22 20 0d 0a 0d 0a 0d 0a  ########" ......
0bd0: 0d 0a 0d 0a 0d 0a 7d 0d 0a                       ......}..