PoshCode Archive  Hex Artifact Content

Artifact a691267648a09b3f55e16954f0211dac74406bb37edaf2549f4eb7c9b5c253b4:

  • File Share-Perms.ps1 — part of check-in [8111debbb4] at 2018-06-10 13:28:38 on branch trunk — This script removes all existing permissions and assigns the appropriate domain permissions. Also the Owner is set to BUILTIN\Administrators (user: Littlegun size: 1936)

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 53  hell..# title: S
0030: 68 61 72 65 20 50 65 72 6d 73 0d 0a 23 20 64 65  hare Perms..# de
0040: 73 63 72 69 70 74 69 6f 6e 3a 20 54 68 69 73 20  scription: This 
0050: 73 63 72 69 70 74 20 72 65 6d 6f 76 65 73 20 61  script removes a
0060: 6c 6c 20 65 78 69 73 74 69 6e 67 20 70 65 72 6d  ll existing perm
0070: 69 73 73 69 6f 6e 73 20 61 6e 64 20 61 73 73 69  issions and assi
0080: 67 6e 73 20 74 68 65 20 61 70 70 72 6f 70 72 69  gns the appropri
0090: 61 74 65 20 64 6f 6d 61 69 6e 20 70 65 72 6d 69  ate domain permi
00a0: 73 73 69 6f 6e 73 2e 20 20 41 6c 73 6f 20 74 68  ssions.  Also th
00b0: 65 20 93 4f 77 6e 65 72 94 20 69 73 20 73 65 74  e .Owner. is set
00c0: 20 74 6f 20 93 42 55 49 4c 54 49 4e 5c 41 64 6d   to .BUILTIN\Adm
00d0: 69 6e 69 73 74 72 61 74 6f 72 73 94 0d 0a 23 20  inistrators...# 
00e0: 76 65 72 73 69 6f 6e 3a 20 30 2e 31 0d 0a 23 20  version: 0.1..# 
00f0: 61 75 74 68 6f 72 3a 20 4c 69 74 74 6c 65 67 75  author: Littlegu
0100: 6e 0d 0a 23 20 6c 69 63 65 6e 73 65 3a 20 43 43  n..# license: CC
0110: 30 0d 0a 23 20 78 2d 70 6f 73 68 63 6f 64 65 2d  0..# x-poshcode-
0120: 69 64 3a 20 33 36 34 32 0d 0a 23 20 78 2d 61 72  id: 3642..# x-ar
0130: 63 68 69 76 65 64 3a 20 32 30 31 34 2d 30 38 2d  chived: 2014-08-
0140: 31 34 54 30 34 3a 35 30 3a 34 33 0d 0a 23 20 78  14T04:50:43..# x
0150: 2d 70 75 62 6c 69 73 68 65 64 3a 20 32 30 31 34  -published: 2014
0160: 2d 30 39 2d 31 34 54 31 31 3a 35 34 3a 30 30 0d  -09-14T11:54:00.
0170: 0a 23 0d 0a 23 0d 0a 24 46 6f 6c 64 65 72 50 61  .#..#..$FolderPa
0180: 74 68 20 3d 20 22 5c 5c 46 69 6c 65 72 4e 61 6d  th = "\\FilerNam
0190: 65 5c 53 68 61 72 65 4e 61 6d 65 22 0d 0a 0d 0a  e\ShareName"....
01a0: 0d 0a 24 72 6f 6f 74 66 6f 6c 64 65 72 20 3d 20  ..$rootfolder = 
01b0: 47 65 74 2d 43 68 69 6c 64 49 74 65 6d 20 2d 50  Get-ChildItem -P
01c0: 61 74 68 20 24 46 6f 6c 64 65 72 50 61 74 68 20  ath $FolderPath 
01d0: 2d 72 65 63 75 72 73 65 20 0d 0a 66 6f 72 65 61  -recurse ..forea
01e0: 63 68 20 28 24 66 69 6c 65 20 69 6e 20 24 72 6f  ch ($file in $ro
01f0: 6f 74 66 6f 6c 64 65 72 29 20 7b 0d 0a 20 20 20  otfolder) {..   
0200: 20 20 20 20 20 24 66 69 6c 65 2e 46 75 6c 6c 4e       $file.FullN
0210: 61 6d 65 0d 0a 20 20 20 20 20 20 20 20 47 65 74  ame..        Get
0220: 2d 41 63 6c 20 24 66 69 6c 65 2e 46 75 6c 6c 4e  -Acl $file.FullN
0230: 61 6d 65 20 7c 20 46 6f 72 6d 61 74 2d 4c 69 73  ame | Format-Lis
0240: 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24  t..            $
0250: 61 63 6c 20 3d 20 47 65 74 2d 41 63 6c 20 24 66  acl = Get-Acl $f
0260: 69 6c 65 2e 46 75 6c 6c 4e 61 6d 65 20 0d 0a 20  ile.FullName .. 
0270: 20 20 20 20 20 20 20 20 20 20 20 24 61 63 6c 2e             $acl.
0280: 41 63 63 65 73 73 20 7c 20 25 7b 24 61 63 6c 2e  Access | %{$acl.
0290: 52 65 6d 6f 76 65 41 63 63 65 73 73 52 75 6c 65  RemoveAccessRule
02a0: 28 24 5f 29 7d 20 0d 0a 20 20 20 20 20 20 20 20  ($_)} ..        
02b0: 20 20 20 20 24 61 63 6c 2e 53 65 74 41 63 63 65      $acl.SetAcce
02c0: 73 73 52 75 6c 65 50 72 6f 74 65 63 74 69 6f 6e  ssRuleProtection
02d0: 28 24 54 72 75 65 2c 20 24 46 61 6c 73 65 29 20  ($True, $False) 
02e0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 52  ..            $R
02f0: 69 67 68 74 73 20 3d 20 5b 53 79 73 74 65 6d 2e  ights = [System.
0300: 53 65 63 75 72 69 74 79 2e 41 63 63 65 73 73 43  Security.AccessC
0310: 6f 6e 74 72 6f 6c 2e 46 69 6c 65 53 79 73 74 65  ontrol.FileSyste
0320: 6d 52 69 67 68 74 73 5d 3a 3a 46 75 6c 6c 43 6f  mRights]::FullCo
0330: 6e 74 72 6f 6c 0d 0a 20 20 20 20 20 20 20 20 20  ntrol..         
0340: 20 20 20 24 69 6e 68 65 72 69 74 20 3d 20 5b 53     $inherit = [S
0350: 79 73 74 65 6d 2e 53 65 63 75 72 69 74 79 2e 41  ystem.Security.A
0360: 63 63 65 73 73 43 6f 6e 74 72 6f 6c 2e 46 69 6c  ccessControl.Fil
0370: 65 53 79 73 74 65 6d 41 63 63 65 73 73 52 75 6c  eSystemAccessRul
0380: 65 5d 3a 3a 43 6f 6e 74 61 69 6e 65 72 49 6e 68  e]::ContainerInh
0390: 65 72 69 74 20 2d 62 6f 72 20 5b 53 79 73 74 65  erit -bor [Syste
03a0: 6d 2e 53 65 63 75 72 69 74 79 2e 41 63 63 65 73  m.Security.Acces
03b0: 73 43 6f 6e 74 72 6f 6c 2e 46 69 6c 65 53 79 73  sControl.FileSys
03c0: 74 65 6d 41 63 63 65 73 73 52 75 6c 65 5d 3a 3a  temAccessRule]::
03d0: 4f 62 6a 65 63 74 49 6e 68 65 72 69 74 0d 0a 20  ObjectInherit.. 
03e0: 20 20 20 20 20 20 20 20 20 20 20 24 50 72 6f 70             $Prop
03f0: 61 67 61 74 69 6f 6e 20 3d 20 5b 53 79 73 74 65  agation = [Syste
0400: 6d 2e 53 65 63 75 72 69 74 79 2e 41 63 63 65 73  m.Security.Acces
0410: 73 43 6f 6e 74 72 6f 6c 2e 50 72 6f 70 61 67 61  sControl.Propaga
0420: 74 69 6f 6e 46 6c 61 67 73 5d 3a 3a 4e 6f 6e 65  tionFlags]::None
0430: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 41  ..            $A
0440: 63 63 65 73 73 20 3d 20 5b 53 79 73 74 65 6d 2e  ccess = [System.
0450: 53 65 63 75 72 69 74 79 2e 41 63 63 65 73 73 43  Security.AccessC
0460: 6f 6e 74 72 6f 6c 2e 41 63 63 65 73 73 43 6f 6e  ontrol.AccessCon
0470: 74 72 6f 6c 54 79 70 65 5d 3a 3a 41 6c 6c 6f 77  trolType]::Allow
0480: 0d 0a 20 23 43 6f 70 79 20 74 68 65 20 6e 65 78  .. #Copy the nex
0490: 74 20 32 20 6c 69 6e 65 73 20 61 6e 64 20 75 6e  t 2 lines and un
04a0: 63 6f 6d 6d 65 6e 74 20 74 68 65 6d 20 66 6f 72  comment them for
04b0: 20 65 61 63 68 20 47 52 4f 55 50 20 74 68 61 74   each GROUP that
04c0: 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 61 64 64   you want to add
04d0: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20        ..        
04e0: 20 20 20 20 24 72 75 6c 65 20 3d 20 4e 65 77 2d      $rule = New-
04f0: 4f 62 6a 65 63 74 20 53 79 73 74 65 6d 2e 53 65  Object System.Se
0500: 63 75 72 69 74 79 2e 41 63 63 65 73 73 43 6f 6e  curity.AccessCon
0510: 74 72 6f 6c 2e 46 69 6c 65 53 79 73 74 65 6d 41  trol.FileSystemA
0520: 63 63 65 73 73 52 75 6c 65 28 22 44 6f 6d 61 69  ccessRule("Domai
0530: 6e 4e 61 6d 65 5c 47 72 6f 75 70 4e 61 6d 65 22  nName\GroupName"
0540: 2c 24 52 69 67 68 74 73 2c 20 24 69 6e 68 65 72  ,$Rights, $inher
0550: 69 74 2c 20 24 50 72 6f 70 61 67 61 74 69 6f 6e  it, $Propagation
0560: 2c 20 24 41 63 63 65 73 73 29 0d 0a 20 20 20 20  , $Access)..    
0570: 20 20 20 20 20 20 20 20 24 61 63 6c 2e 41 64 64          $acl.Add
0580: 41 63 63 65 73 73 52 75 6c 65 28 24 72 75 6c 65  AccessRule($rule
0590: 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24  )..            $
05a0: 72 75 6c 65 20 3d 20 4e 65 77 2d 4f 62 6a 65 63  rule = New-Objec
05b0: 74 20 53 79 73 74 65 6d 2e 53 65 63 75 72 69 74  t System.Securit
05c0: 79 2e 41 63 63 65 73 73 43 6f 6e 74 72 6f 6c 2e  y.AccessControl.
05d0: 46 69 6c 65 53 79 73 74 65 6d 41 63 63 65 73 73  FileSystemAccess
05e0: 52 75 6c 65 28 22 44 6f 6d 61 69 6e 4e 61 6d 65  Rule("DomainName
05f0: 5c 47 72 6f 75 70 4e 61 6d 65 22 2c 24 52 69 67  \GroupName",$Rig
0600: 68 74 73 2c 20 24 69 6e 68 65 72 69 74 2c 20 24  hts, $inherit, $
0610: 50 72 6f 70 61 67 61 74 69 6f 6e 2c 20 24 41 63  Propagation, $Ac
0620: 63 65 73 73 29 0d 0a 20 20 20 20 20 20 20 20 20  cess)..         
0630: 20 20 20 24 61 63 6c 2e 41 64 64 41 63 63 65 73     $acl.AddAcces
0640: 73 52 75 6c 65 28 24 72 75 6c 65 29 0d 0a 20 23  sRule($rule).. #
0650: 53 74 61 79 73 20 69 6e 20 50 6c 61 63 65 20 74  Stays in Place t
0660: 6f 20 73 65 74 20 74 68 65 20 6f 77 6e 65 72 20  o set the owner 
0670: 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20            ..    
0680: 20 20 20 20 20 20 20 20 24 61 63 63 74 3d 4e 65          $acct=Ne
0690: 77 2d 4f 62 6a 65 63 74 20 53 79 73 74 65 6d 2e  w-Object System.
06a0: 53 65 63 75 72 69 74 79 2e 50 72 69 6e 63 69 70  Security.Princip
06b0: 61 6c 2e 4e 54 41 63 63 6f 75 6e 74 28 22 42 75  al.NTAccount("Bu
06c0: 69 6c 74 69 6e 5c 41 64 6d 69 6e 69 73 74 72 61  iltin\Administra
06d0: 74 6f 72 73 22 29 20 0d 0a 20 20 20 20 20 20 20  tors") ..       
06e0: 20 20 20 20 20 24 61 63 6c 2e 53 65 74 4f 77 6e       $acl.SetOwn
06f0: 65 72 28 24 61 63 63 74 29 20 0d 0a 20 23 41 70  er($acct) .. #Ap
0700: 70 6c 69 65 73 20 61 6c 6c 20 63 68 61 6e 67 65  plies all change
0710: 73 20 61 62 6f 76 65 20 74 6f 20 74 68 65 20 41  s above to the A
0720: 43 4c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  CL..            
0730: 53 65 74 2d 41 63 6c 20 24 66 69 6c 65 2e 46 75  Set-Acl $file.Fu
0740: 6c 6c 4e 61 6d 65 20 24 61 63 6c 20 0d 0a 20 20  llName $acl ..  
0750: 20 20 20 20 20 20 20 20 20 20 47 65 74 2d 41 63            Get-Ac
0760: 6c 20 24 66 69 6c 65 2e 46 75 6c 6c 4e 61 6d 65  l $file.FullName
0770: 20 20 7c 20 46 6f 72 6d 61 74 2d 4c 69 73 74 0d    | Format-List.
0780: 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a  .            }..