PoshCode Archive  Hex Artifact Content

Artifact 0e3bf77059b20a34034993480333477c34961c375fb84cfc3c4c5e3a0ed12932:

  • File drivers-list.ps1 — part of check-in [9dae751b55] at 2018-06-10 13:50:17 on branch trunk — Looks for drivers in Sysinternals Autoruns way (with some specific information) (user: greg zakharov size: 1517)

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 64  hell..# title: d
0030: 72 69 76 65 72 73 20 6c 69 73 74 0d 0a 23 20 64  rivers list..# d
0040: 65 73 63 72 69 70 74 69 6f 6e 3a 20 4c 6f 6f 6b  escription: Look
0050: 73 20 66 6f 72 20 64 72 69 76 65 72 73 20 69 6e  s for drivers in
0060: 20 53 79 73 69 6e 74 65 72 6e 61 6c 73 20 41 75   Sysinternals Au
0070: 74 6f 72 75 6e 73 20 77 61 79 20 28 77 69 74 68  toruns way (with
0080: 20 73 6f 6d 65 20 73 70 65 63 69 66 69 63 20 69   some specific i
0090: 6e 66 6f 72 6d 61 74 69 6f 6e 29 0d 0a 23 20 76  nformation)..# v
00a0: 65 72 73 69 6f 6e 3a 20 30 2e 31 0d 0a 23 20 74  ersion: 0.1..# t
00b0: 79 70 65 3a 20 73 63 72 69 70 74 0d 0a 23 20 61  ype: script..# a
00c0: 75 74 68 6f 72 3a 20 67 72 65 67 20 7a 61 6b 68  uthor: greg zakh
00d0: 61 72 6f 76 0d 0a 23 20 6c 69 63 65 6e 73 65 3a  arov..# license:
00e0: 20 43 43 30 0d 0a 23 20 78 2d 70 6f 73 68 63 6f   CC0..# x-poshco
00f0: 64 65 2d 69 64 3a 20 35 31 32 30 0d 0a 23 20 78  de-id: 5120..# x
0100: 2d 61 72 63 68 69 76 65 64 3a 20 32 30 31 34 2d  -archived: 2014-
0110: 30 38 2d 33 30 54 30 30 3a 32 37 3a 33 33 0d 0a  08-30T00:27:33..
0120: 23 20 78 2d 70 75 62 6c 69 73 68 65 64 3a 20 32  # x-published: 2
0130: 30 31 34 2d 30 34 2d 32 37 54 31 38 3a 34 37 3a  014-04-27T18:47:
0140: 30 30 0d 0a 23 0d 0a 23 0d 0a 23 72 65 71 75 69  00..#..#..#requi
0150: 72 65 73 20 2d 76 65 72 73 69 6f 6e 20 32 2e 30  res -version 2.0
0160: 0d 0a 67 70 20 2d 65 61 20 30 20 48 4b 4c 4d 3a  ..gp -ea 0 HKLM:
0170: 5c 53 59 53 54 45 4d 5c 43 75 72 72 65 6e 74 43  \SYSTEM\CurrentC
0180: 6f 6e 74 72 6f 6c 53 65 74 5c 53 65 72 76 69 63  ontrolSet\Servic
0190: 65 73 5c 2a 20 7c 20 3f 20 7b 0d 0a 20 20 24 5f  es\* | ? {..  $_
01a0: 2e 54 79 70 65 20 2d 65 71 20 31 20 2d 61 6e 64  .Type -eq 1 -and
01b0: 20 24 5f 2e 49 6d 61 67 65 50 61 74 68 20 2d 6e   $_.ImagePath -n
01c0: 65 20 24 6e 75 6c 6c 0d 0a 7d 20 7c 20 73 65 6c  e $null..} | sel
01d0: 65 63 74 20 40 7b 0d 0a 20 20 4e 3d 27 4e 61 6d  ect @{..  N='Nam
01e0: 65 27 3b 45 3d 7b 24 5f 2e 50 53 43 68 69 6c 64  e';E={$_.PSChild
01f0: 4e 61 6d 65 7d 0d 0a 7d 2c 20 40 7b 0d 0a 20 20  Name}..}, @{..  
0200: 4e 3d 27 50 61 74 68 27 3b 45 3d 7b 0d 0a 20 20  N='Path';E={..  
0210: 20 20 24 24 20 3d 20 24 5f 2e 49 6d 61 67 65 50    $$ = $_.ImageP
0220: 61 74 68 2e 54 6f 4c 6f 77 65 72 28 29 0d 0a 20  ath.ToLower().. 
0230: 20 20 20 69 66 20 28 24 24 2e 53 74 61 72 74 73     if ($$.Starts
0240: 57 69 74 68 28 28 24 70 61 74 20 3d 20 53 70 6c  With(($pat = Spl
0250: 69 74 2d 50 61 74 68 20 2d 4c 65 61 66 20 28 24  it-Path -Leaf ($
0260: 64 69 72 20 3d 20 5b 45 6e 76 69 72 6f 6e 6d 65  dir = [Environme
0270: 6e 74 5d 3a 3a 53 79 73 74 65 6d 44 69 72 65 63  nt]::SystemDirec
0280: 74 6f 72 79 29 29 29 29 20 7b 0d 0a 20 20 20 20  tory)))) {..    
0290: 20 20 24 73 63 72 69 70 74 3a 69 74 6d 20 3d 20    $script:itm = 
02a0: 5b 52 65 67 65 78 5d 3a 3a 52 65 70 6c 61 63 65  [Regex]::Replace
02b0: 28 24 24 2c 20 24 70 61 74 2c 20 24 64 69 72 29  ($$, $pat, $dir)
02c0: 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 65 6c 73  ..    }..    els
02d0: 65 69 66 20 28 24 24 2e 53 74 61 72 74 73 57 69  eif ($$.StartsWi
02e0: 74 68 28 27 5c 27 29 20 2d 61 6e 64 20 24 24 20  th('\') -and $$ 
02f0: 2d 6d 61 74 63 68 20 24 70 61 74 29 20 7b 0d 0a  -match $pat) {..
0300: 20 20 20 20 20 20 24 24 20 3d 20 24 24 2e 53 75        $$ = $$.Su
0310: 62 73 74 72 69 6e 67 28 28 28 24 69 20 3d 20 24  bstring((($i = $
0320: 24 2e 49 6e 64 65 78 4f 66 28 27 5c 27 2c 20 32  $.IndexOf('\', 2
0330: 29 29 20 2b 20 31 29 2c 20 28 24 24 2e 4c 65 6e  )) + 1), ($$.Len
0340: 67 74 68 20 2d 20 24 69 20 2d 20 31 29 29 0d 0a  gth - $i - 1))..
0350: 20 20 20 20 20 20 24 73 63 72 69 70 74 3a 69 74        $script:it
0360: 6d 20 3d 20 5b 52 65 67 65 78 5d 3a 3a 52 65 70  m = [Regex]::Rep
0370: 6c 61 63 65 28 24 24 2c 20 24 70 61 74 2c 20 24  lace($$, $pat, $
0380: 64 69 72 29 0d 0a 20 20 20 20 7d 0d 0a 20 20 20  dir)..    }..   
0390: 20 24 69 74 6d 0d 0a 20 20 7d 0d 0a 7d 2c 20 40   $itm..  }..}, @
03a0: 7b 0d 0a 20 20 4e 3d 27 44 65 73 63 72 69 70 74  {..  N='Descript
03b0: 69 6f 6e 27 3b 45 3d 7b 0d 0a 20 20 20 20 24 73  ion';E={..    $s
03c0: 63 72 69 70 74 3a 64 65 73 20 3d 20 28 67 63 69  cript:des = (gci
03d0: 20 24 69 74 6d 29 2e 56 65 72 73 69 6f 6e 49 6e   $itm).VersionIn
03e0: 66 6f 0d 0a 20 20 20 20 24 64 65 73 2e 46 69 6c  fo..    $des.Fil
03f0: 65 44 65 73 63 72 69 70 74 69 6f 6e 0d 0a 20 20  eDescription..  
0400: 7d 0d 0a 7d 2c 20 40 7b 0d 0a 20 20 4e 3d 27 50  }..}, @{..  N='P
0410: 75 62 6c 69 73 68 65 72 27 3b 45 3d 7b 24 64 65  ublisher';E={$de
0420: 73 2e 43 6f 6d 70 61 6e 79 4e 61 6d 65 7d 0d 0a  s.CompanyName}..
0430: 7d 2c 20 40 7b 0d 0a 20 20 4e 3d 27 56 65 72 73  }, @{..  N='Vers
0440: 69 6f 6e 27 3b 45 3d 7b 24 64 65 73 2e 50 72 6f  ion';E={$des.Pro
0450: 64 75 63 74 56 65 72 73 69 6f 6e 7d 0d 0a 7d 2c  ductVersion}..},
0460: 20 40 7b 0d 0a 20 20 4e 3d 27 45 72 72 6f 72 20   @{..  N='Error 
0470: 43 6f 6e 74 72 6f 6c 27 3b 45 3d 7b 27 30 78 7b  Control';E={'0x{
0480: 30 3a 58 38 7d 27 20 2d 66 20 24 5f 2e 45 72 72  0:X8}' -f $_.Err
0490: 6f 72 43 6f 6e 74 72 6f 6c 7d 0d 0a 7d 2c 20 40  orControl}..}, @
04a0: 7b 0d 0a 20 20 4e 3d 27 4c 61 75 6e 63 68 20 54  {..  N='Launch T
04b0: 79 70 65 27 3b 45 3d 7b 0d 0a 20 20 20 20 73 77  ype';E={..    sw
04c0: 69 74 63 68 20 28 24 5f 2e 53 74 61 72 74 29 20  itch ($_.Start) 
04d0: 7b 0d 0a 20 20 20 20 20 20 30 20 7b 20 27 52 69  {..      0 { 'Ri
04e0: 6e 67 30 27 20 7d 20 20 20 20 23 6c 6f 77 20 6c  ng0' }    #low l
04f0: 65 76 65 6c 20 64 72 69 76 65 72 0d 0a 20 20 20  evel driver..   
0500: 20 20 20 31 20 7b 20 27 4f 6e 42 6f 6f 74 27 20     1 { 'OnBoot' 
0510: 7d 20 20 20 23 6c 6f 61 64 20 61 6e 64 20 69 6e  }   #load and in
0520: 69 74 20 61 66 74 65 72 20 6b 65 72 6e 65 6c 20  it after kernel 
0530: 6c 6f 61 64 69 6e 67 0d 0a 20 20 20 20 20 20 32  loading..      2
0540: 20 7b 20 27 41 75 74 6f 27 20 7d 20 20 20 20 20   { 'Auto' }     
0550: 23 53 43 4d 20 6c 6f 61 64 73 20 64 72 69 76 65  #SCM loads drive
0560: 72 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 0d  r automatically.
0570: 0a 20 20 20 20 20 20 33 20 7b 20 27 4d 61 6e 75  .      3 { 'Manu
0580: 61 6c 27 20 7d 20 20 20 23 53 43 4d 20 6c 6f 61  al' }   #SCM loa
0590: 64 73 20 64 72 69 76 65 72 20 77 68 65 6e 20 69  ds driver when i
05a0: 74 20 6e 65 65 64 0d 0a 20 20 20 20 20 20 34 20  t need..      4 
05b0: 7b 20 27 44 69 73 61 62 6c 65 64 27 20 7d 0d 0a  { 'Disabled' }..
05c0: 20 20 20 20 7d 0d 0a 20 20 7d 0d 0a 7d 20 7c 20      }..  }..} | 
05d0: 4f 75 74 2d 47 72 69 64 56 69 65 77 20 2d 54 69  Out-GridView -Ti
05e0: 74 6c 65 20 44 72 69 76 65 72 73 0d 0a           tle Drivers..