PoshCode Archive  Hex Artifact Content

Artifact f99521eb0dad7acec52c609243acc99bfe3f7c586ce785c5b2c33d54e6eb2280:

  • File Set-AssemblyBindLogging.ps1 — part of check-in [7c73ef1215] at 2018-06-10 13:03:32 on branch trunk — Enable or disable assembly bind logging (per-machine) (user: unknown size: 1897)

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: 65 74 2d 41 73 73 65 6d 62 6c 79 42 69 6e 64 4c  et-AssemblyBindL
0040: 6f 67 67 69 6e 67 0d 0a 23 20 64 65 73 63 72 69  ogging..# descri
0050: 70 74 69 6f 6e 3a 20 45 6e 61 62 6c 65 20 6f 72  ption: Enable or
0060: 20 64 69 73 61 62 6c 65 20 61 73 73 65 6d 62 6c   disable assembl
0070: 79 20 62 69 6e 64 20 6c 6f 67 67 69 6e 67 20 28  y bind logging (
0080: 70 65 72 2d 6d 61 63 68 69 6e 65 29 0d 0a 23 20  per-machine)..# 
0090: 76 65 72 73 69 6f 6e 3a 20 30 2e 31 0d 0a 23 20  version: 0.1..# 
00a0: 74 79 70 65 3a 20 66 75 6e 63 74 69 6f 6e 0d 0a  type: function..
00b0: 23 20 6c 69 63 65 6e 73 65 3a 20 43 43 30 0d 0a  # license: CC0..
00c0: 23 20 66 75 6e 63 74 69 6f 6e 3a 20 53 65 74 2d  # function: Set-
00d0: 41 73 73 65 6d 62 6c 79 42 69 6e 64 4c 6f 67 67  AssemblyBindLogg
00e0: 69 6e 67 0d 0a 23 20 78 2d 70 6f 73 68 63 6f 64  ing..# x-poshcod
00f0: 65 2d 69 64 3a 20 31 39 37 36 0d 0a 23 20 78 2d  e-id: 1976..# x-
0100: 61 72 63 68 69 76 65 64 3a 20 32 30 31 30 2d 30  archived: 2010-0
0110: 37 2d 31 38 54 30 39 3a 30 31 3a 32 34 0d 0a 23  7-18T09:01:24..#
0120: 0d 0a 23 0d 0a 66 75 6e 63 74 69 6f 6e 20 53 65  ..#..function Se
0130: 74 2d 41 73 73 65 6d 62 6c 79 42 69 6e 64 4c 6f  t-AssemblyBindLo
0140: 67 67 69 6e 67 20 7b 0d 0a 23 2e 53 79 6e 6f 70  gging {..#.Synop
0150: 73 69 73 0d 0a 23 20 20 45 6e 61 62 6c 65 20 6f  sis..#  Enable o
0160: 72 20 64 69 73 61 62 6c 65 20 41 73 73 65 6d 62  r disable Assemb
0170: 6c 79 20 42 69 6e 64 20 6c 6f 67 67 69 6e 67 20  ly Bind logging 
0180: 66 6f 72 20 74 68 65 20 6d 61 63 68 69 6e 65 0d  for the machine.
0190: 0a 23 2e 50 61 72 61 6d 65 74 65 72 20 45 6e 61  .#.Parameter Ena
01a0: 62 6c 65 4c 6f 67 67 69 6e 67 0d 0a 23 20 20 57  bleLogging..#  W
01b0: 68 65 74 68 65 72 20 6f 72 20 6e 6f 74 20 74 6f  hether or not to
01c0: 20 65 6e 61 62 6c 65 20 6c 6f 67 67 69 6e 67 2e   enable logging.
01d0: 20 41 63 63 65 70 74 73 20 70 61 72 74 69 61 6c   Accepts partial
01e0: 20 6d 61 74 63 68 69 6e 67 20 6f 66 20 45 6e 61   matching of Ena
01f0: 62 6c 65 2f 44 69 73 61 62 6c 65 20 6f 72 20 54  ble/Disable or T
0200: 72 75 65 2f 46 61 6c 73 65 20 6f 72 20 65 76 65  rue/False or eve
0210: 6e 20 31 2f 30 20 2e 2e 2e 20 0d 0a 23 2e 50 61  n 1/0 ... ..#.Pa
0220: 72 61 6d 65 74 65 72 20 4c 6f 67 50 61 74 68 0d  rameter LogPath.
0230: 0a 23 20 20 54 68 65 20 6c 6f 63 61 74 69 6f 6e  .#  The location
0240: 20 6f 66 20 74 68 65 20 66 6f 6c 64 65 72 20 79   of the folder y
0250: 6f 75 20 77 61 6e 74 20 74 6f 20 73 61 76 65 20  ou want to save 
0260: 66 75 73 69 6f 6e 20 6c 6f 67 73 20 74 6f 2e 20  fusion logs to. 
0270: 57 69 6c 6c 20 62 65 20 63 72 65 61 74 65 64 20  Will be created 
0280: 69 66 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 61  if it does not a
0290: 6c 72 65 61 64 79 20 65 78 69 73 74 0d 0a 23 20  lready exist..# 
02a0: 20 4e 4f 54 45 3a 20 49 66 20 79 6f 75 20 61 72   NOTE: If you ar
02b0: 65 20 44 49 53 41 42 4c 49 4e 47 20 6c 6f 67 67  e DISABLING logg
02c0: 69 6e 67 2c 20 74 68 69 73 20 66 6f 6c 64 65 72  ing, this folder
02d0: 20 77 69 6c 6c 20 62 65 20 44 45 4c 45 54 45 44   will be DELETED
02e0: 20 28 69 66 20 69 74 20 69 73 20 65 6d 70 74 79   (if it is empty
02f0: 29 2e 0d 0a 5b 43 6d 64 6c 65 74 42 69 6e 64 69  )...[CmdletBindi
0300: 6e 67 28 29 5d 0d 0a 20 20 20 70 61 72 61 6d 28  ng()]..   param(
0310: 20 0d 0a 20 20 20 20 20 20 5b 50 61 72 61 6d 65   ..      [Parame
0320: 74 65 72 28 4d 61 6e 64 61 74 6f 72 79 3d 24 74  ter(Mandatory=$t
0330: 72 75 65 29 5d 0d 0a 20 20 20 20 20 20 23 5b 56  rue)]..      #[V
0340: 61 6c 69 64 61 74 65 53 65 74 28 22 45 6e 61 62  alidateSet("Enab
0350: 6c 65 22 2c 22 44 69 73 61 62 6c 65 22 2c 22 54  le","Disable","T
0360: 72 75 65 22 2c 22 46 61 6c 73 65 22 2c 22 30 22  rue","False","0"
0370: 2c 22 31 22 29 5d 0d 0a 20 20 20 20 20 20 5b 73  ,"1")]..      [s
0380: 74 72 69 6e 67 5d 24 45 6e 61 62 6c 65 4c 6f 67  tring]$EnableLog
0390: 67 69 6e 67 0d 0a 20 20 20 2c 0d 0a 20 20 20 20  ging..   ,..    
03a0: 20 20 24 4c 6f 67 50 61 74 68 20 3d 20 22 43 3a    $LogPath = "C:
03b0: 5c 4c 6f 67 73 5c 46 75 73 69 6f 6e 22 20 0d 0a  \Logs\Fusion" ..
03c0: 20 20 20 29 0d 0a 0d 0a 20 20 20 66 6f 72 65 61     )....   forea
03d0: 63 68 28 24 52 65 67 69 73 74 72 79 52 6f 6f 74  ch($RegistryRoot
03e0: 20 69 6e 20 22 48 4b 45 59 5f 4c 4f 43 41 4c 5f   in "HKEY_LOCAL_
03f0: 4d 41 43 48 49 4e 45 5c 53 4f 46 54 57 41 52 45  MACHINE\SOFTWARE
0400: 5c 4d 69 63 72 6f 73 6f 66 74 5c 46 75 73 69 6f  \Microsoft\Fusio
0410: 6e 22 2c 22 48 4b 45 59 5f 4c 4f 43 41 4c 5f 4d  n","HKEY_LOCAL_M
0420: 41 43 48 49 4e 45 5c 53 4f 46 54 57 41 52 45 5c  ACHINE\SOFTWARE\
0430: 57 6f 77 36 34 33 32 4e 6f 64 65 5c 4d 69 63 72  Wow6432Node\Micr
0440: 6f 73 6f 66 74 5c 46 75 73 69 6f 6e 22 29 20 7b  osoft\Fusion") {
0450: 0d 0a 20 20 20 20 20 20 73 77 69 74 63 68 20 2d  ..      switch -
0460: 72 65 67 65 78 20 28 24 45 6e 61 62 6c 65 4c 6f  regex ($EnableLo
0470: 67 67 69 6e 67 29 20 7b 0d 0a 20 20 20 20 20 20  gging) {..      
0480: 20 20 20 22 45 6e 3f 61 3f 62 3f 6c 3f 65 3f 7c     "En?a?b?l?e?|
0490: 54 72 3f 75 3f 65 3f 7c 31 22 20 7b 0d 0a 20 20  Tr?u?e?|1" {..  
04a0: 20 20 20 20 20 20 20 20 20 20 6d 6b 64 69 72 20            mkdir 
04b0: 24 4c 6f 67 50 61 74 68 20 2d 46 6f 72 63 65 20  $LogPath -Force 
04c0: 2d 45 41 20 53 74 6f 70 0d 0a 0d 0a 20 20 20 20  -EA Stop....    
04d0: 20 20 20 20 20 20 20 20 53 65 74 2d 49 74 65 6d          Set-Item
04e0: 50 72 6f 70 65 72 74 79 20 52 45 47 49 53 54 52  Property REGISTR
04f0: 59 3a 3a 24 52 65 67 69 73 74 72 79 52 6f 6f 74  Y::$RegistryRoot
0500: 20 4c 6f 67 50 61 74 68 20 24 4c 6f 67 50 61 74   LogPath $LogPat
0510: 68 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66  h..            f
0520: 6f 72 65 61 63 68 28 24 73 77 69 74 63 68 20 69  oreach($switch i
0530: 6e 20 22 4c 6f 67 46 61 69 6c 75 72 65 73 22 2c  n "LogFailures",
0540: 22 46 6f 72 63 65 4c 6f 67 22 2c 22 4c 6f 67 52  "ForceLog","LogR
0550: 65 73 6f 75 72 63 65 42 69 6e 64 73 22 29 20 7b  esourceBinds") {
0560: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
0570: 20 53 65 74 2d 49 74 65 6d 50 72 6f 70 65 72 74   Set-ItemPropert
0580: 79 20 52 45 47 49 53 54 52 59 3a 3a 24 52 65 67  y REGISTRY::$Reg
0590: 69 73 74 72 79 52 6f 6f 74 20 24 73 77 69 74 63  istryRoot $switc
05a0: 68 20 31 20 2d 54 79 70 65 20 44 57 6f 72 64 0d  h 1 -Type DWord.
05b0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a  .            }..
05c0: 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20           }..    
05d0: 20 20 20 20 20 22 44 69 3f 73 3f 61 3f 62 3f 6c       "Di?s?a?b?l
05e0: 3f 65 3f 7c 46 61 3f 6c 3f 73 3f 65 3f 7c 30 22  ?e?|Fa?l?s?e?|0"
05f0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   {..            
0600: 72 6d 64 69 72 20 24 4c 6f 67 50 61 74 68 0d 0a  rmdir $LogPath..
0610: 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65              fore
0620: 61 63 68 28 24 73 77 69 74 63 68 20 69 6e 20 22  ach($switch in "
0630: 4c 6f 67 50 61 74 68 22 2c 22 4c 6f 67 46 61 69  LogPath","LogFai
0640: 6c 75 72 65 73 22 2c 22 46 6f 72 63 65 4c 6f 67  lures","ForceLog
0650: 22 2c 22 4c 6f 67 52 65 73 6f 75 72 63 65 42 69  ","LogResourceBi
0660: 6e 64 73 22 29 20 7b 0d 0a 20 20 20 20 20 20 20  nds") {..       
0670: 20 20 20 20 20 20 20 20 52 65 6d 6f 76 65 2d 49          Remove-I
0680: 74 65 6d 50 72 6f 70 65 72 74 79 20 24 73 77 69  temProperty $swi
0690: 74 63 68 0d 0a 20 20 20 20 20 20 20 20 20 20 20  tch..           
06a0: 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 7d 0d 0a   }..         }..
06b0: 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74           default
06c0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   {..            
06d0: 74 68 72 6f 77 20 22 43 6f 75 6c 64 6e 27 74 20  throw "Couldn't 
06e0: 63 6f 6e 76 65 72 74 20 27 24 45 6e 61 62 6c 65  convert '$Enable
06f0: 4c 6f 67 67 69 6e 67 27 20 74 6f 20 61 20 76 61  Logging' to a va
0700: 6c 69 64 20 76 61 6c 75 65 2e 20 56 61 6c 69 64  lid value. Valid
0710: 20 76 61 6c 75 65 73 20 61 72 65 3a 20 45 6e 61   values are: Ena
0720: 62 6c 65 20 6f 72 20 44 69 73 61 62 6c 65 2c 20  ble or Disable, 
0730: 54 72 75 65 20 6f 72 20 46 61 6c 73 65 2c 20 31  True or False, 1
0740: 20 6f 72 20 30 2e 22 0d 0a 20 20 20 20 20 20 20   or 0."..       
0750: 20 20 7d 0d 0a 20 20 20 20 20 20 7d 0d 0a 20 20    }..      }..  
0760: 20 7d 20 20 0d 0a 7d 0d 0a                        }  ..}..