PoshCode Archive  Hex Artifact Content

Artifact 14c1c3c3920b271dcf591255986355db48c634bce1379f1bbdfa81a72d706869:

  • File Set-defaultBrowser.ps1 — part of check-in [5745cb7201] at 2018-06-10 13:59:07 on branch trunk — With this function I can switch between Chrome, Firefox, IE, Opera and Safari as default browser. It is just a start. There might be some more registry keys to be changed (user: Andy Myatt size: 2868)

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 64 65 66 61 75 6c 74 42 72 6f 77 73 65  et-defaultBrowse
0040: 72 0d 0a 23 20 64 65 73 63 72 69 70 74 69 6f 6e  r..# description
0050: 3a 20 57 69 74 68 20 74 68 69 73 20 66 75 6e 63  : With this func
0060: 74 69 6f 6e 20 49 20 63 61 6e 20 73 77 69 74 63  tion I can switc
0070: 68 20 62 65 74 77 65 65 6e 20 43 68 72 6f 6d 65  h between Chrome
0080: 2c 20 46 69 72 65 66 6f 78 2c 20 49 45 2c 20 4f  , Firefox, IE, O
0090: 70 65 72 61 20 61 6e 64 20 53 61 66 61 72 69 20  pera and Safari 
00a0: 61 73 20 64 65 66 61 75 6c 74 20 62 72 6f 77 73  as default brows
00b0: 65 72 2e 20 49 74 20 69 73 20 6a 75 73 74 20 61  er. It is just a
00c0: 20 73 74 61 72 74 2e 20 54 68 65 72 65 20 6d 69   start. There mi
00d0: 67 68 74 20 62 65 20 73 6f 6d 65 20 6d 6f 72 65  ght be some more
00e0: 20 72 65 67 69 73 74 72 79 20 6b 65 79 73 20 74   registry keys t
00f0: 6f 20 62 65 20 63 68 61 6e 67 65 64 0d 0a 23 20  o be changed..# 
0100: 76 65 72 73 69 6f 6e 3a 20 30 2e 31 0d 0a 23 20  version: 0.1..# 
0110: 74 79 70 65 3a 20 66 75 6e 63 74 69 6f 6e 0d 0a  type: function..
0120: 23 20 61 75 74 68 6f 72 3a 20 41 6e 64 79 20 4d  # author: Andy M
0130: 79 61 74 74 0d 0a 23 20 6c 69 63 65 6e 73 65 3a  yatt..# license:
0140: 20 43 43 30 0d 0a 23 20 66 75 6e 63 74 69 6f 6e   CC0..# function
0150: 3a 20 53 65 74 2d 44 65 66 61 75 6c 74 42 72 6f  : Set-DefaultBro
0160: 77 73 65 72 0d 0a 23 20 78 2d 70 6f 73 68 63 6f  wser..# x-poshco
0170: 64 65 2d 69 64 3a 20 35 36 37 38 0d 0a 23 20 78  de-id: 5678..# x
0180: 2d 64 65 72 69 76 65 64 2d 66 72 6f 6d 2d 69 64  -derived-from-id
0190: 3a 20 35 36 37 39 0d 0a 23 20 78 2d 61 72 63 68  : 5679..# x-arch
01a0: 69 76 65 64 3a 20 32 30 31 37 2d 30 35 2d 31 37  ived: 2017-05-17
01b0: 54 32 33 3a 35 35 3a 33 33 0d 0a 23 20 78 2d 70  T23:55:33..# x-p
01c0: 75 62 6c 69 73 68 65 64 3a 20 32 30 31 37 2d 30  ublished: 2017-0
01d0: 31 2d 30 39 54 31 31 3a 31 33 3a 30 30 0d 0a 23  1-09T11:13:00..#
01e0: 0d 0a 23 0d 0a 66 75 6e 63 74 69 6f 6e 20 53 65  ..#..function Se
01f0: 74 2d 44 65 66 61 75 6c 74 42 72 6f 77 73 65 72  t-DefaultBrowser
0200: 0d 0a 7b 0d 0a 20 20 20 20 70 61 72 61 6d 28 24  ..{..    param($
0210: 64 65 66 61 75 6c 74 42 72 6f 77 73 65 72 29 0d  defaultBrowser).
0220: 0a 0d 0a 20 20 20 20 24 72 65 67 4b 65 79 20 20  ...    $regKey  
0230: 20 20 20 20 3d 20 22 48 4b 43 55 3a 5c 53 6f 66      = "HKCU:\Sof
0240: 74 77 61 72 65 5c 4d 69 63 72 6f 73 6f 66 74 5c  tware\Microsoft\
0250: 57 69 6e 64 6f 77 73 5c 53 68 65 6c 6c 5c 41 73  Windows\Shell\As
0260: 73 6f 63 69 61 74 69 6f 6e 73 5c 55 72 6c 41 73  sociations\UrlAs
0270: 73 6f 63 69 61 74 69 6f 6e 73 5c 7b 30 7d 5c 55  sociations\{0}\U
0280: 73 65 72 43 68 6f 69 63 65 22 0d 0a 20 20 20 20  serChoice"..    
0290: 24 72 65 67 4b 65 79 46 74 70 20 20 20 3d 20 24  $regKeyFtp   = $
02a0: 72 65 67 4b 65 79 20 2d 66 20 27 66 74 70 27 0d  regKey -f 'ftp'.
02b0: 0a 20 20 20 20 24 72 65 67 4b 65 79 48 74 74 70  .    $regKeyHttp
02c0: 20 20 3d 20 24 72 65 67 4b 65 79 20 2d 66 20 27    = $regKey -f '
02d0: 68 74 74 70 27 0d 0a 20 20 20 20 24 72 65 67 4b  http'..    $regK
02e0: 65 79 48 74 74 70 73 20 3d 20 24 72 65 67 4b 65  eyHttps = $regKe
02f0: 79 20 2d 66 20 27 68 74 74 70 73 27 0d 0a 0d 0a  y -f 'https'....
0300: 20 20 20 20 73 77 69 74 63 68 20 2d 52 65 67 65      switch -Rege
0310: 78 20 28 24 64 65 66 61 75 6c 74 42 72 6f 77 73  x ($defaultBrows
0320: 65 72 2e 54 6f 4c 6f 77 65 72 28 29 29 0d 0a 20  er.ToLower()).. 
0330: 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 23 20     {..        # 
0340: 49 6e 74 65 72 6e 65 74 20 45 78 70 6c 6f 72 65  Internet Explore
0350: 72 0d 0a 20 20 20 20 20 20 20 20 7b 20 27 69 65  r..        { 'ie
0360: 7c 69 6e 74 65 72 6e 65 74 7c 65 78 70 6c 6f 72  |internet|explor
0370: 65 72 27 20 7d 20 7b 0d 0a 20 20 20 20 20 20 20  er' } {..       
0380: 20 20 20 20 20 53 65 74 2d 49 74 65 6d 50 72 6f       Set-ItemPro
0390: 70 65 72 74 79 20 24 72 65 67 4b 65 79 46 74 70  perty $regKeyFtp
03a0: 20 20 20 2d 6e 61 6d 65 20 50 72 6f 67 49 64 20     -name ProgId 
03b0: 49 45 2e 46 54 50 0d 0a 20 20 20 20 20 20 20 20  IE.FTP..        
03c0: 20 20 20 20 53 65 74 2d 49 74 65 6d 50 72 6f 70      Set-ItemProp
03d0: 65 72 74 79 20 24 72 65 67 4b 65 79 48 74 74 70  erty $regKeyHttp
03e0: 20 20 2d 6e 61 6d 65 20 50 72 6f 67 49 64 20 49    -name ProgId I
03f0: 45 2e 48 54 54 50 0d 0a 20 20 20 20 20 20 20 20  E.HTTP..        
0400: 20 20 20 20 53 65 74 2d 49 74 65 6d 50 72 6f 70      Set-ItemProp
0410: 65 72 74 79 20 24 72 65 67 4b 65 79 48 74 74 70  erty $regKeyHttp
0420: 73 20 2d 6e 61 6d 65 20 50 72 6f 67 49 64 20 49  s -name ProgId I
0430: 45 2e 48 54 54 50 53 0d 0a 20 20 20 20 20 20 20  E.HTTPS..       
0440: 20 20 20 20 20 62 72 65 61 6b 0d 0a 20 20 20 20       break..    
0450: 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 23      }..        #
0460: 20 46 69 72 65 66 6f 78 0d 0a 20 20 20 20 20 20   Firefox..      
0470: 20 20 7b 20 27 66 66 7c 66 69 72 65 66 6f 78 27    { 'ff|firefox'
0480: 20 7d 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20   } {..          
0490: 20 20 53 65 74 2d 49 74 65 6d 50 72 6f 70 65 72    Set-ItemProper
04a0: 74 79 20 24 72 65 67 4b 65 79 46 74 70 20 20 20  ty $regKeyFtp   
04b0: 2d 6e 61 6d 65 20 50 72 6f 67 49 64 20 46 69 72  -name ProgId Fir
04c0: 65 66 6f 78 55 52 4c 0d 0a 20 20 20 20 20 20 20  efoxURL..       
04d0: 20 20 20 20 20 53 65 74 2d 49 74 65 6d 50 72 6f       Set-ItemPro
04e0: 70 65 72 74 79 20 24 72 65 67 4b 65 79 48 74 74  perty $regKeyHtt
04f0: 70 20 20 2d 6e 61 6d 65 20 50 72 6f 67 49 64 20  p  -name ProgId 
0500: 46 69 72 65 66 6f 78 55 52 4c 0d 0a 20 20 20 20  FirefoxURL..    
0510: 20 20 20 20 20 20 20 20 53 65 74 2d 49 74 65 6d          Set-Item
0520: 50 72 6f 70 65 72 74 79 20 24 72 65 67 4b 65 79  Property $regKey
0530: 48 74 74 70 73 20 2d 6e 61 6d 65 20 50 72 6f 67  Https -name Prog
0540: 49 64 20 46 69 72 65 66 6f 78 55 52 4c 0d 0a 20  Id FirefoxURL.. 
0550: 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b             break
0560: 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20  ..        }..   
0570: 20 20 20 20 20 23 20 47 6f 6f 67 6c 65 20 43 68       # Google Ch
0580: 72 6f 6d 65 0d 0a 20 20 20 20 20 20 20 20 7b 20  rome..        { 
0590: 27 63 72 7c 67 6f 6f 67 6c 65 7c 63 68 72 6f 6d  'cr|google|chrom
05a0: 65 27 20 2d 63 6f 6e 74 61 69 6e 73 20 24 5f 20  e' -contains $_ 
05b0: 7d 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  } {..           
05c0: 20 53 65 74 2d 49 74 65 6d 50 72 6f 70 65 72 74   Set-ItemPropert
05d0: 79 20 24 72 65 67 4b 65 79 46 74 70 20 20 20 2d  y $regKeyFtp   -
05e0: 6e 61 6d 65 20 50 72 6f 67 49 64 20 43 68 72 6f  name ProgId Chro
05f0: 6d 65 48 54 4d 4c 0d 0a 20 20 20 20 20 20 20 20  meHTML..        
0600: 20 20 20 20 53 65 74 2d 49 74 65 6d 50 72 6f 70      Set-ItemProp
0610: 65 72 74 79 20 24 72 65 67 4b 65 79 48 74 74 70  erty $regKeyHttp
0620: 20 20 2d 6e 61 6d 65 20 50 72 6f 67 49 64 20 43    -name ProgId C
0630: 68 72 6f 6d 65 48 54 4d 4c 0d 0a 20 20 20 20 20  hromeHTML..     
0640: 20 20 20 20 20 20 20 53 65 74 2d 49 74 65 6d 50         Set-ItemP
0650: 72 6f 70 65 72 74 79 20 24 72 65 67 4b 65 79 48  roperty $regKeyH
0660: 74 74 70 73 20 2d 6e 61 6d 65 20 50 72 6f 67 49  ttps -name ProgI
0670: 64 20 43 68 72 6f 6d 65 48 54 4d 4c 0d 0a 20 20  d ChromeHTML..  
0680: 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 0d            break.
0690: 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20  .        }..    
06a0: 20 20 20 20 23 20 53 61 66 61 72 69 0d 0a 20 20      # Safari..  
06b0: 20 20 20 20 20 20 7b 20 27 73 61 2a 7c 61 70 70        { 'sa*|app
06c0: 6c 65 27 20 7d 20 7b 0d 0a 20 20 20 20 20 20 20  le' } {..       
06d0: 20 20 20 20 20 53 65 74 2d 49 74 65 6d 50 72 6f       Set-ItemPro
06e0: 70 65 72 74 79 20 24 72 65 67 4b 65 79 46 74 70  perty $regKeyFtp
06f0: 20 20 20 2d 6e 61 6d 65 20 50 72 6f 67 49 64 20     -name ProgId 
0700: 53 61 66 61 72 69 55 52 4c 0d 0a 20 20 20 20 20  SafariURL..     
0710: 20 20 20 20 20 20 20 53 65 74 2d 49 74 65 6d 50         Set-ItemP
0720: 72 6f 70 65 72 74 79 20 24 72 65 67 4b 65 79 48  roperty $regKeyH
0730: 74 74 70 20 20 2d 6e 61 6d 65 20 50 72 6f 67 49  ttp  -name ProgI
0740: 64 20 53 61 66 61 72 69 55 52 4c 0d 0a 20 20 20  d SafariURL..   
0750: 20 20 20 20 20 20 20 20 20 53 65 74 2d 49 74 65           Set-Ite
0760: 6d 50 72 6f 70 65 72 74 79 20 24 72 65 67 4b 65  mProperty $regKe
0770: 79 48 74 74 70 73 20 2d 6e 61 6d 65 20 50 72 6f  yHttps -name Pro
0780: 67 49 64 20 53 61 66 61 72 69 55 52 4c 0d 0a 20  gId SafariURL.. 
0790: 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b             break
07a0: 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20  ..        }..   
07b0: 20 20 20 20 20 23 20 4f 70 65 72 61 0d 0a 20 20       # Opera..  
07c0: 20 20 20 20 20 20 7b 20 27 6f 70 2a 27 20 7d 20        { 'op*' } 
07d0: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53  {..            S
07e0: 65 74 2d 49 74 65 6d 50 72 6f 70 65 72 74 79 20  et-ItemProperty 
07f0: 24 72 65 67 4b 65 79 46 74 70 20 20 20 2d 6e 61  $regKeyFtp   -na
0800: 6d 65 20 50 72 6f 67 49 64 20 4f 70 65 72 61 2e  me ProgId Opera.
0810: 50 72 6f 74 6f 63 6f 6c 0d 0a 20 20 20 20 20 20  Protocol..      
0820: 20 20 20 20 20 20 53 65 74 2d 49 74 65 6d 50 72        Set-ItemPr
0830: 6f 70 65 72 74 79 20 24 72 65 67 4b 65 79 48 74  operty $regKeyHt
0840: 74 70 20 20 2d 6e 61 6d 65 20 50 72 6f 67 49 64  tp  -name ProgId
0850: 20 4f 70 65 72 61 2e 50 72 6f 74 6f 63 6f 6c 0d   Opera.Protocol.
0860: 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 65 74  .            Set
0870: 2d 49 74 65 6d 50 72 6f 70 65 72 74 79 20 24 72  -ItemProperty $r
0880: 65 67 4b 65 79 48 74 74 70 73 20 2d 6e 61 6d 65  egKeyHttps -name
0890: 20 50 72 6f 67 49 64 20 4f 70 65 72 61 2e 50 72   ProgId Opera.Pr
08a0: 6f 74 6f 63 6f 6c 0d 0a 20 20 20 20 20 20 20 20  otocol..        
08b0: 20 20 20 20 62 72 65 61 6b 0d 0a 20 20 20 20 20      break..     
08c0: 20 20 20 7d 0d 0a 20 20 20 20 7d 20 0d 0a 20 20     }..    } ..  
08d0: 20 20 0d 0a 23 20 74 68 61 6e 6b 73 20 74 6f 20    ..# thanks to 
08e0: 68 74 74 70 3a 2f 2f 6e 65 77 6f 6c 64 74 68 69  http://newoldthi
08f0: 6e 67 2e 77 6f 72 64 70 72 65 73 73 2e 63 6f 6d  ng.wordpress.com
0900: 2f 32 30 30 37 2f 30 33 2f 32 33 2f 68 6f 77 2d  /2007/03/23/how-
0910: 64 6f 65 73 2d 79 6f 75 72 2d 62 72 6f 77 73 65  does-your-browse
0920: 72 73 2d 6b 6e 6f 77 2d 74 68 61 74 2d 69 74 73  rs-know-that-its
0930: 2d 6e 6f 74 2d 74 68 65 2d 64 65 66 61 75 6c 74  -not-the-default
0940: 2d 62 72 6f 77 73 65 72 2f 0d 0a 20 20 20 20 20  -browser/..     
0950: 20 20 20 0d 0a 3c 23 0d 0a 28 47 65 74 2d 49 74     ..<#..(Get-It
0960: 65 6d 50 72 6f 70 65 72 74 79 20 27 48 4b 43 55  emProperty 'HKCU
0970: 3a 5c 53 6f 66 74 77 61 72 65 5c 4d 69 63 72 6f  :\Software\Micro
0980: 73 6f 66 74 5c 57 69 6e 64 6f 77 73 5c 53 68 65  soft\Windows\She
0990: 6c 6c 5c 41 73 73 6f 63 69 61 74 69 6f 6e 73 5c  ll\Associations\
09a0: 55 72 6c 41 73 73 6f 63 69 61 74 69 6f 6e 73 5c  UrlAssociations\
09b0: 66 74 70 5c 55 73 65 72 43 68 6f 69 63 65 27 29  ftp\UserChoice')
09c0: 2e 50 72 6f 67 49 64 0d 0a 28 47 65 74 2d 49 74  .ProgId..(Get-It
09d0: 65 6d 50 72 6f 70 65 72 74 79 20 27 48 4b 43 55  emProperty 'HKCU
09e0: 3a 5c 53 6f 66 74 77 61 72 65 5c 4d 69 63 72 6f  :\Software\Micro
09f0: 73 6f 66 74 5c 57 69 6e 64 6f 77 73 5c 53 68 65  soft\Windows\She
0a00: 6c 6c 5c 41 73 73 6f 63 69 61 74 69 6f 6e 73 5c  ll\Associations\
0a10: 55 72 6c 41 73 73 6f 63 69 61 74 69 6f 6e 73 5c  UrlAssociations\
0a20: 68 74 74 70 5c 55 73 65 72 43 68 6f 69 63 65 27  http\UserChoice'
0a30: 29 2e 50 72 6f 67 49 64 0d 0a 28 47 65 74 2d 49  ).ProgId..(Get-I
0a40: 74 65 6d 50 72 6f 70 65 72 74 79 20 27 48 4b 43  temProperty 'HKC
0a50: 55 3a 5c 53 6f 66 74 77 61 72 65 5c 4d 69 63 72  U:\Software\Micr
0a60: 6f 73 6f 66 74 5c 57 69 6e 64 6f 77 73 5c 53 68  osoft\Windows\Sh
0a70: 65 6c 6c 5c 41 73 73 6f 63 69 61 74 69 6f 6e 73  ell\Associations
0a80: 5c 55 72 6c 41 73 73 6f 63 69 61 74 69 6f 6e 73  \UrlAssociations
0a90: 5c 68 74 74 70 73 5c 55 73 65 72 43 68 6f 69 63  \https\UserChoic
0aa0: 65 27 29 2e 50 72 6f 67 49 64 0d 0a 23 3e 0d 0a  e').ProgId..#>..
0ab0: 0d 0a 7d 0d 0a 0d 0a 23 20 53 65 74 2d 44 65 66  ..}....# Set-Def
0ac0: 61 75 6c 74 42 72 6f 77 73 65 72 20 63 72 0d 0a  aultBrowser cr..
0ad0: 23 20 53 65 74 2d 44 65 66 61 75 6c 74 42 72 6f  # Set-DefaultBro
0ae0: 77 73 65 72 20 66 66 0d 0a 23 20 53 65 74 2d 44  wser ff..# Set-D
0af0: 65 66 61 75 6c 74 42 72 6f 77 73 65 72 20 69 65  efaultBrowser ie
0b00: 0d 0a 23 20 53 65 74 2d 44 65 66 61 75 6c 74 42  ..# Set-DefaultB
0b10: 72 6f 77 73 65 72 20 6f 70 0d 0a 23 20 53 65 74  rowser op..# Set
0b20: 2d 44 65 66 61 75 6c 74 42 72 6f 77 73 65 72 20  -DefaultBrowser 
0b30: 73 61 0d 0a                                      sa..