├── DeviceManagement └── 1.3.0 │ ├── DeviceManagement.dll-Help.xml │ ├── DeviceManagement.format.ps1xml │ ├── DeviceManagement.psd1 │ ├── DeviceManagementCmdlet.dll │ └── DeviceManagementEngine.dll ├── LICENSE └── README.md /DeviceManagement/1.3.0/DeviceManagement.dll-Help.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Disable-Device 6 | 7 | Disables a PnP device. 8 | 9 | 10 | 11 | 12 | Disable 13 | Device 14 | 15 | 16 | 17 | The Disable-Device cmdlet disables a Plug and Play (PnP) device. You must use an Administrator account to disable a device. 18 | 19 | 20 | 21 | Disable-Device 22 | 23 | InstanceId 24 | 25 | Specifies a unique instance IDs of a device. 26 | 27 | String 28 | 29 | 30 | Class 31 | 32 | 33 | 34 | Nullable`1[DeviceClass] 35 | 36 | 37 | InformationAction 38 | 39 | 40 | 41 | ActionPreference 42 | 43 | 44 | InformationVariable 45 | 46 | 47 | 48 | String 49 | 50 | 51 | WhatIf 52 | 53 | 54 | 55 | SwitchParameter 56 | 57 | 58 | Confirm 59 | 60 | 61 | 62 | SwitchParameter 63 | 64 | 65 | 66 | Disable-Device 67 | 68 | Name 69 | 70 | Specifies the name of the a device. 71 | 72 | String 73 | 74 | 75 | Class 76 | 77 | 78 | 79 | Nullable`1[DeviceClass] 80 | 81 | 82 | InformationAction 83 | 84 | 85 | 86 | ActionPreference 87 | 88 | 89 | InformationVariable 90 | 91 | 92 | 93 | String 94 | 95 | 96 | WhatIf 97 | 98 | 99 | 100 | SwitchParameter 101 | 102 | 103 | Confirm 104 | 105 | 106 | 107 | SwitchParameter 108 | 109 | 110 | 111 | 112 | 113 | InstanceId 114 | 115 | Specifies a unique instance IDs of a device. 116 | 117 | String 118 | 119 | String 120 | 121 | 122 | 123 | 124 | 125 | Class 126 | 127 | 128 | 129 | Nullable`1[DeviceClass] 130 | 131 | Nullable`1[DeviceClass] 132 | 133 | 134 | 135 | 136 | 137 | InformationAction 138 | 139 | 140 | 141 | ActionPreference 142 | 143 | ActionPreference 144 | 145 | 146 | 147 | 148 | 149 | InformationVariable 150 | 151 | 152 | 153 | String 154 | 155 | String 156 | 157 | 158 | 159 | 160 | 161 | WhatIf 162 | 163 | 164 | 165 | SwitchParameter 166 | 167 | SwitchParameter 168 | 169 | 170 | 171 | 172 | 173 | Confirm 174 | 175 | 176 | 177 | SwitchParameter 178 | 179 | SwitchParameter 180 | 181 | 182 | 183 | 184 | 185 | Name 186 | 187 | Specifies the name of the a device. 188 | 189 | String 190 | 191 | String 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | string 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | DeviceManagementLib.Device 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | -------------------------- Example 1 -------------------------- 242 | 243 | PS C:\> 244 | 245 | PS C:\> Disable-Device -InstanceId 'VMBUS\{0EC56B6F-245E-4EA5-92FD-683D208E05C9}\5&296C0F0E&0&{0EC56B6F-245E-4EA5-92FD-683D208E05C9}' 246 | 247 | This command disables the device identified by the Instance ID. 248 | 249 | 250 | Confirm 251 | Are you sure you want to perform this action? 252 | Performing the operation "Disable Device" on target "Microsoft Virtual Machine Bus Network Adapter #3". 253 | [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | Enable-Device 271 | 272 | Enables a PnP device. 273 | 274 | 275 | 276 | 277 | Enable 278 | Device 279 | 280 | 281 | 282 | The Enable-Device cmdlet disables a Plug and Play (PnP) device. You must use an Administrator account to enable a device. 283 | 284 | 285 | 286 | Enable-Device 287 | 288 | InstanceId 289 | 290 | Specifies a unique instance IDs of a device. 291 | 292 | String 293 | 294 | 295 | Class 296 | 297 | 298 | 299 | Nullable`1[DeviceClass] 300 | 301 | 302 | InformationAction 303 | 304 | 305 | 306 | ActionPreference 307 | 308 | 309 | InformationVariable 310 | 311 | 312 | 313 | String 314 | 315 | 316 | WhatIf 317 | 318 | 319 | 320 | SwitchParameter 321 | 322 | 323 | Confirm 324 | 325 | 326 | 327 | SwitchParameter 328 | 329 | 330 | 331 | Enable-Device 332 | 333 | Name 334 | 335 | Specifies the name of the a device. 336 | 337 | String 338 | 339 | 340 | Class 341 | 342 | 343 | 344 | Nullable`1[DeviceClass] 345 | 346 | 347 | InformationAction 348 | 349 | 350 | 351 | ActionPreference 352 | 353 | 354 | InformationVariable 355 | 356 | 357 | 358 | String 359 | 360 | 361 | WhatIf 362 | 363 | 364 | 365 | SwitchParameter 366 | 367 | 368 | Confirm 369 | 370 | 371 | 372 | SwitchParameter 373 | 374 | 375 | 376 | 377 | 378 | InstanceId 379 | 380 | Specifies a unique instance IDs of a device. 381 | 382 | String 383 | 384 | String 385 | 386 | 387 | 388 | 389 | 390 | Class 391 | 392 | 393 | 394 | Nullable`1[DeviceClass] 395 | 396 | Nullable`1[DeviceClass] 397 | 398 | 399 | 400 | 401 | 402 | InformationAction 403 | 404 | 405 | 406 | ActionPreference 407 | 408 | ActionPreference 409 | 410 | 411 | 412 | 413 | 414 | InformationVariable 415 | 416 | 417 | 418 | String 419 | 420 | String 421 | 422 | 423 | 424 | 425 | 426 | WhatIf 427 | 428 | 429 | 430 | SwitchParameter 431 | 432 | SwitchParameter 433 | 434 | 435 | 436 | 437 | 438 | Confirm 439 | 440 | 441 | 442 | SwitchParameter 443 | 444 | SwitchParameter 445 | 446 | 447 | 448 | 449 | 450 | Name 451 | 452 | Specifies the name of the a device. 453 | 454 | String 455 | 456 | String 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | string 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | DeviceManagementLib.Device 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | -------------------------- Example 1 -------------------------- 507 | 508 | PS C:\> 509 | 510 | PS C:\> Enable-Device -Name 'System Speaker' 511 | 512 | This command enables the system speaker. 513 | 514 | 515 | Confirm 516 | Are you sure you want to perform this action? 517 | Performing the operation "Enable Device" on target "System speaker". 518 | [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | -------------------------- Example 2 -------------------------- 530 | 531 | PS C:\> 532 | 533 | PS C:\> Get-Device | Where-Object Name -like *Floppy* | Enable-Device 534 | 535 | This command enables all devices having names like *Floppy*. 536 | 537 | 538 | Confirm 539 | Are you sure you want to perform this action? 540 | Performing the operation "Enable Device" on target "Standard floppy disk controller". 541 | [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y 542 | 543 | Confirm 544 | Are you sure you want to perform this action? 545 | Performing the operation "Enable Device" on target "Floppy disk drive". 546 | [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | -------------------------- Example 3 -------------------------- 558 | 559 | PS C:\> 560 | 561 | Get-Device -Class GUID_DEVCLASS_NET | Where-Object { -not $_.IsEnabled } | Enable-Device -Confirm:$false 562 | 563 | This command enables all disabled network adapters. 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | Get-Device 584 | 585 | Returns information about PnP devices. 586 | 587 | 588 | 589 | 590 | Get 591 | Device 592 | 593 | 594 | 595 | The Get-Device cmdlet returns basic information about Plug and Play (PnP) devices. The values returned are common to all devices. 596 | 597 | 598 | 599 | Get-Device 600 | 601 | InstanceId 602 | 603 | Looks for the device with this Instance ID. 604 | 605 | String 606 | 607 | 608 | Class 609 | 610 | Returns all devices of the given class. 611 | 612 | Nullable`1[DeviceClass] 613 | 614 | 615 | ShowNonpresentPresentDevices 616 | 617 | Also shows hidden devices that are not visible in the Windows Device Manager without enabling "Show hidden devices. 618 | 619 | SwitchParameter 620 | 621 | 622 | InformationAction 623 | 624 | 625 | 626 | ActionPreference 627 | 628 | 629 | InformationVariable 630 | 631 | 632 | 633 | String 634 | 635 | 636 | 637 | Get-Device 638 | 639 | Name 640 | 641 | Looks for the device with the given name 642 | 643 | String 644 | 645 | 646 | Class 647 | 648 | Returns all devices of the given class. 649 | 650 | Nullable`1[DeviceClass] 651 | 652 | 653 | ShowNonpresentPresentDevices 654 | 655 | Also shows hidden devices that are not visible in the Windows Device Manager without enabling "Show hidden devices. 656 | 657 | SwitchParameter 658 | 659 | 660 | InformationAction 661 | 662 | 663 | 664 | ActionPreference 665 | 666 | 667 | InformationVariable 668 | 669 | 670 | 671 | String 672 | 673 | 674 | 675 | 676 | 677 | InstanceId 678 | 679 | Looks for the device with this Instance ID. 680 | 681 | String 682 | 683 | String 684 | 685 | 686 | 687 | 688 | 689 | Class 690 | 691 | Returns all devices of the given class. 692 | 693 | Nullable`1[DeviceClass] 694 | 695 | Nullable`1[DeviceClass] 696 | 697 | 698 | 699 | 700 | 701 | ShowNonpresentPresentDevices 702 | 703 | Also shows hidden devices that are not visible in the Windows Device Manager without enabling "Show hidden devices. 704 | 705 | SwitchParameter 706 | 707 | SwitchParameter 708 | 709 | 710 | 711 | 712 | 713 | InformationAction 714 | 715 | 716 | 717 | ActionPreference 718 | 719 | ActionPreference 720 | 721 | 722 | 723 | 724 | 725 | InformationVariable 726 | 727 | 728 | 729 | String 730 | 731 | String 732 | 733 | 734 | 735 | 736 | 737 | Name 738 | 739 | Looks for the device with the given name 740 | 741 | String 742 | 743 | String 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | string 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | DeviceManagementLib.Device 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | -------------------------- Example 1 -------------------------- 784 | 785 | PS C:\> 786 | 787 | PS C:\> Get-Device -ShowNonpresentPresentDevices 788 | 789 | Gets all devices, also the hidden ones. 790 | 791 | 792 | Name Enabled Class InstanceId 793 | ---- ------- ----- ---------- 794 | Browser Support Driver True GUID_DEVCLASS_LEGACYDRIVER ROOT\LEGACY_BOWSER\0000 795 | WAN Miniport (IKEv2) True GUID_DEVCLASS_NET ROOT\MS_AGILEVPNMINIPORT\0000 796 | msisadrv True GUID_DEVCLASS_LEGACYDRIVER ROOT\LEGACY_MSISADRV\0000 797 | Communications Port (COM2) True GUID_DEVCLASS_PORTS ACPI\PNP0501\2 798 | Security Driver True GUID_DEVCLASS_LEGACYDRIVER ROOT\LEGACY_SECDRV\0000 799 | CD/DVD File System Reader True GUID_DEVCLASS_LEGACYDRIVER ROOT\LEGACY_CDFS\0000 800 | ... 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | -------------------------- Example 2 -------------------------- 812 | 813 | PS C:\> 814 | 815 | PS C:\> Get-Device -Name 'System Speaker' 816 | 817 | Gets only the System Speaker device. 818 | 819 | 820 | Name Enabled Class InstanceId 821 | ---- ------- ----- ---------- 822 | System speaker True GUID_DEVCLASS_SYSTEM ACPI\PNP0800\4&215D0F95&0 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | 833 | -------------------------- Example 3 -------------------------- 834 | 835 | PS C:\> 836 | 837 | PS C:\> Get-Device -InstanceId 'ACPI\GENUINEINTEL_-_INTEL64_FAMILY_6_MODEL_45_-________INTEL(R)_CORE(TM)_I7-3930K_CPU_@_3.20GHZ\_1' 838 | 839 | Gets the device by the Instance ID. 840 | 841 | 842 | Name Enabled Class InstanceId 843 | ---- ------- ----- ---------- 844 | Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz True GUID_DEVCLASS_PROCESSOR ACPI\GENUINEINTEL_-_INTEL64_FAMILY_6_MODEL_45_-________INTEL(R)_CORE(TM)_I7-3930K_CPU_@_3.20GHZ\_1 845 | 846 | 847 | 848 | 849 | 850 | 851 | 852 | 853 | 854 | 855 | -------------------------- Example 4 -------------------------- 856 | 857 | PS C:\> 858 | 859 | PS C:\> Get-Device | Where-Object { -not $_.IsEnabled } 860 | 861 | Get all disabled devices. 862 | 863 | 864 | Name Enabled Class InstanceId 865 | ---- ------- ----- ---------- 866 | SDA Standard Compliant SD Host Controller False 4294967295 ROOT\SDHOST\0000 867 | 868 | 869 | 870 | 871 | 872 | 873 | 874 | 875 | 876 | 877 | 878 | 879 | 880 | 881 | 882 | 883 | Uninstall-Device 884 | 885 | Uninstalls a PnP device. 886 | 887 | 888 | 889 | 890 | Uninstall 891 | Device 892 | 893 | 894 | 895 | The Uninstall-Device cmdlet uninstalls a Plug and Play (PnP) device. You must use an Administrator account to uninstall a device. 896 | 897 | 898 | 899 | Uninstall-Device 900 | 901 | InstanceId 902 | 903 | Specifies a unique instance IDs of a device. 904 | 905 | String 906 | 907 | 908 | Class 909 | 910 | 911 | 912 | Nullable`1[DeviceClass] 913 | 914 | 915 | InformationAction 916 | 917 | 918 | 919 | ActionPreference 920 | 921 | 922 | InformationVariable 923 | 924 | 925 | 926 | String 927 | 928 | 929 | WhatIf 930 | 931 | 932 | 933 | SwitchParameter 934 | 935 | 936 | Confirm 937 | 938 | 939 | 940 | SwitchParameter 941 | 942 | 943 | 944 | Uninstall-Device 945 | 946 | Name 947 | 948 | Specifies the name of the a device. 949 | 950 | String 951 | 952 | 953 | Class 954 | 955 | 956 | 957 | Nullable`1[DeviceClass] 958 | 959 | 960 | InformationAction 961 | 962 | 963 | 964 | ActionPreference 965 | 966 | 967 | InformationVariable 968 | 969 | 970 | 971 | String 972 | 973 | 974 | WhatIf 975 | 976 | 977 | 978 | SwitchParameter 979 | 980 | 981 | Confirm 982 | 983 | 984 | 985 | SwitchParameter 986 | 987 | 988 | 989 | 990 | 991 | InstanceId 992 | 993 | Specifies a unique instance IDs of a device. 994 | 995 | String 996 | 997 | String 998 | 999 | 1000 | 1001 | 1002 | 1003 | Class 1004 | 1005 | 1006 | 1007 | Nullable`1[DeviceClass] 1008 | 1009 | Nullable`1[DeviceClass] 1010 | 1011 | 1012 | 1013 | 1014 | 1015 | InformationAction 1016 | 1017 | 1018 | 1019 | ActionPreference 1020 | 1021 | ActionPreference 1022 | 1023 | 1024 | 1025 | 1026 | 1027 | InformationVariable 1028 | 1029 | 1030 | 1031 | String 1032 | 1033 | String 1034 | 1035 | 1036 | 1037 | 1038 | 1039 | WhatIf 1040 | 1041 | 1042 | 1043 | SwitchParameter 1044 | 1045 | SwitchParameter 1046 | 1047 | 1048 | 1049 | 1050 | 1051 | Confirm 1052 | 1053 | 1054 | 1055 | SwitchParameter 1056 | 1057 | SwitchParameter 1058 | 1059 | 1060 | 1061 | 1062 | 1063 | Name 1064 | 1065 | Specifies the name of the a device. 1066 | 1067 | String 1068 | 1069 | String 1070 | 1071 | 1072 | 1073 | 1074 | 1075 | 1076 | 1077 | 1078 | string 1079 | 1080 | 1081 | 1082 | 1083 | 1084 | 1085 | 1086 | 1087 | 1088 | DeviceManagementLib.Device 1089 | 1090 | 1091 | 1092 | 1093 | 1094 | 1095 | 1096 | 1097 | 1098 | 1099 | 1100 | 1101 | 1102 | 1103 | 1104 | 1105 | 1106 | 1107 | 1108 | 1109 | 1110 | 1111 | 1112 | 1113 | 1114 | 1115 | 1116 | 1117 | 1118 | 1119 | -------------------------- Example 1 -------------------------- 1120 | 1121 | PS C:\> 1122 | 1123 | PS C:\> Get-Device -Name 'Microsoft Virtual Machine Bus Network Adapter #2' | Uninstall-Device 1124 | 1125 | Confirm 1126 | Are you sure you want to perform this action? 1127 | Performing the operation "Uninstall Device" on target "Microsoft Virtual Machine Bus Network Adapter #2". 1128 | [Y] Yes [A] Yes to All [N] No [L] No to All Suspend [?] Help (default is "Y"): y 1129 | 1130 | 1131 | This command removes the device selected by Get-Device by piping it to Uninstall-Device. 1132 | 1133 | 1134 | 1135 | 1136 | 1137 | 1138 | 1139 | 1140 | 1141 | 1142 | -------------------------- Example 2 -------------------------- 1143 | 1144 | PS C:\> 1145 | 1146 | PS C:\> Get-Device -Class GUID_DEVCLASS_NET | Select-Object -First 2 | Uninstall-Device -Confirm:$false -Verbose 1147 | 1148 | DANGEROUS: This command removes the first 2 network adapters without asking for verification. 1149 | 1150 | 1151 | VERBOSE: Performing the operation "Uninstall Device" on target "Microsoft Virtual Machine Bus Network Adapter #2". 1152 | VERBOSE: Performing the operation "Uninstall Device" on target "Microsoft Virtual Machine Bus Network Adapter #3". 1153 | 1154 | 1155 | 1156 | 1157 | 1158 | 1159 | 1160 | 1161 | 1162 | 1163 | 1164 | 1165 | 1166 | -------------------------------------------------------------------------------- /DeviceManagement/1.3.0/DeviceManagement.format.ps1xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | DeviceManagementLib.Device 7 | 8 | DeviceManager.Engine.Driver 9 | 10 | 11 | 12 | 13 | 30 14 | 15 | 16 | 17 | 17 18 | 19 | 20 | 21 | 12 22 | 23 | 24 | 25 | 14 26 | 27 | 28 | 29 | 13 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | Description 38 | 39 | 40 | ManufacturerName 41 | 42 | 43 | ProviderName 44 | 45 | 46 | DriverDate 47 | 48 | 49 | DriverVersion 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | DeviceManagementLib.Device 59 | 60 | DeviceManager.Engine.Device 61 | 62 | 63 | 64 | 65 | 35 66 | 67 | 68 | 69 | 9 70 | 71 | 72 | 73 | 10 74 | 75 | 76 | 77 | 21 78 | 79 | 80 | 81 | 20 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | Name 90 | 91 | 92 | IsPresent 93 | 94 | 95 | HasProblem 96 | 97 | 98 | InstallState 99 | 100 | 101 | DriverProvider 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /DeviceManagement/1.3.0/DeviceManagement.psd1: -------------------------------------------------------------------------------- 1 | @{ 2 | RootModule = 'DeviceManagementCmdlet.dll' 3 | ModuleVersion = '1.3.0' 4 | GUID = 'fc6a72f2-57ea-4066-8489-a76ca0ce4fa2' 5 | Author = 'Ricardo Mendes, Tobias Weltner' 6 | CompanyName = 'https://powershell.one' 7 | Copyright = '2015' 8 | Description = 'Windows PowerShell Module for managing devices' 9 | FormatsToProcess = @('DeviceManagement.format.ps1xml') 10 | PrivateData = @{ 11 | PSData = @{ 12 | # Tags = @() 13 | LicenseUri = 'https://en.wikipedia.org/wiki/MIT_License' 14 | ProjectUri = 'https://github.com/TobiasPSP/Modules.DeviceManagement' 15 | # IconUri = '' 16 | ReleaseNotes = 'Initial Release based on work performed by Ricardo Mendes (MSFT)' 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /DeviceManagement/1.3.0/DeviceManagementCmdlet.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobiasPSP/Modules.DeviceManagement/4eaa2b6d89c8ae7eea6a8d9d2df39c5d37488a2e/DeviceManagement/1.3.0/DeviceManagementCmdlet.dll -------------------------------------------------------------------------------- /DeviceManagement/1.3.0/DeviceManagementEngine.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobiasPSP/Modules.DeviceManagement/4eaa2b6d89c8ae7eea6a8d9d2df39c5d37488a2e/DeviceManagement/1.3.0/DeviceManagementEngine.dll -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Dr. Tobias Weltner 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Modules.DeviceManagement 2 | PowerShell module to manage devices and drivers 3 | 4 | This module is based on work published here by Ricardo Mendes (MSFT): https://gallery.technet.microsoft.com/device-management-7fad2388 5 | Raimund Andree has forked this work and published his source code here: https://github.com/AutomatedLab/DeviceManagement 6 | 7 | Since the original TechNet gallery is deprecated soon and this is not accessible via a PowerShell module available on the PowerShell Gallery, I decided to publish one. 8 | 9 | I decided to base the module on the *original* code published 2012 because it was downloaded 40K+ vs. 6K+. The last update of the derived work was 2018 so both can be considered either done or orphaned. 10 | 11 | The derived work from Raimund has made substantial breaking changes in an effort to combine cmdlet functionality. Unfortunately, it turned out that the new (and better) cmdlets do not work for non-admins at all anymore. In the original approach, read-only cmdlets like Get-Driver worked well for non-admins. 12 | 13 | Hopefully I will be able to restore the original c# source codes and continue to improve the code. 14 | 15 | You can download and install the module like this: 16 | 17 | `Install-Module -Name DeviceManagement -Scope CurrentUser -Force` 18 | 19 | To see the list of commands, run: 20 | 21 | `Get-Command -Module DeviceManagement` 22 | 23 | To get a list of drivers, run: 24 | 25 | `Get-Driver | Out-GridView` 26 | 27 | `Get-Device | Out-GridView` 28 | 29 | --------------------------------------------------------------------------------