Войти

Показать полную графическую версию : [решено] PowerShell не выполняет команду.


sputnikk
20-05-2021, 06:33
Что делаю не так на виртуальной 20Н2?
В статье https://www.outsidethebox.ms/20667/?utm_source=feedburner&utm_medium=email&utm_campaign=Feed%3A+outsidethebox%2Fmain+%28Вадим+Стеркин+%7C+Блог%29#_Toc633 предлагается команда для получения списка дубликатов драйверов. Однако ничего не получаю, хотя дубликат есть.
Вставляю в PowerShell (администратор):
$dupe = @()
Get-WindowsDriver -Online |
Select-Object ClassDescription, ProviderName, Driver, Version, Date, BootCritical,
@{name="Name"; expression= {Split-Path -Path $_.OriginalFileName -Leaf}},
@{name="Cat"; expression= {Split-Path -Path $_.OriginalFileName}} |
Group-Object -Property Name | Where-Object {$_.Count -gt 1} |
ForEach-Object {$dupe += $_.Group | Sort-Object Date -Descending | Select-Object -Skip 1}

Получаю:
Windows PowerShell
(C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

Попробуйте новую кроссплатформенную оболочку PowerShell (https://aka.ms/pscore6)

PS C:\WINDOWS\system32> $dupe = @()
PS C:\WINDOWS\system32> Get-WindowsDriver -Online |
>> Select-Object ClassDescription, ProviderName, Driver, Version, Date, BootCritical,
>> @{name="Name"; expression= {Split-Path -Path $_.OriginalFileName -Leaf}},
>> @{name="Cat"; expression= {Split-Path -Path $_.OriginalFileName}} |
>> Group-Object -Property Name | Where-Object {$_.Count -gt 1} |
>> ForEach-Object {$dupe += $_.Group | Sort-Object Date -Descending | Select-Object -Skip 1}
>>
PS C:\WINDOWS\system32>


Лишний драйвер в виртуальной 20Н2

http://ipic.su/img/img7/fs/Driver.1621481148.png

Foreigner
20-05-2021, 08:14
Ну так посмотрите, что у вас в $dupe.


PS C:\WINDOWS\system32> $dupe

sputnikk
20-05-2021, 09:01
что у вас в $dupe. » ничего
Windows PowerShell
(C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

Попробуйте новую кроссплатформенную оболочку PowerShell (https://aka.ms/pscore6)

PS C:\WINDOWS\system32> $dupe
PS C:\WINDOWS\system32>

А, понял. Там надо скачивать скрипт, потом выполнять команду

Foreigner
20-05-2021, 09:08
sputnikk, Вы выполнили скрипт-блок, результат выполнения которого помещен в переменную $dupe. Вот эту переменную и посмотрите.


$dupe = @()
Get-WindowsDriver -Online |
Select-Object ClassDescription, ProviderName, Driver, Version, Date, BootCritical,
@{name="Name"; expression= {Split-Path -Path $_.OriginalFileName -Leaf}},
@{name="Cat"; expression= {Split-Path -Path $_.OriginalFileName}} |
Group-Object -Property Name | Where-Object {$_.Count -gt 1} |
ForEach-Object {$dupe += $_.Group | Sort-Object Date -Descending | Select-Object -Skip 1}

$dupe # Допишите

sputnikk
20-05-2021, 11:46
Похоже синтаксис нарушается не только при редактировании в Блокноте , но и копировании оригинальной команды из Блокнота или из постов выше, реакция есть только при копировании из статьи.
Хотел написать $dupe = 1

Foreigner
20-05-2021, 12:08
Похоже синтаксис нарушается не только при редактировании в Блокноте , но и копировании оригинальной команды из Блокнота или из постов выше, реакция есть только при копировании из статьи. »

Я копировал из вашего поста. Сейчас посмотрел первоисточник, там помимо этого есть дополнительные блоки кода. Вы их объедините с тем, что уже выложили и попробуйте, я сейчас не могу проверить результат. Или спросите у Vadikan'a, если не ошибаюсь, это его блог.

Vadikan
24-05-2021, 22:41
реакция есть только при копировании из статьи »
В статье же есть целый скрипт файлом. А так, если взять фрагмент из раздела Получение списка дубликатов (https://www.outsidethebox.ms/20667/#_Toc633) и вставить в консоль, то код отработает. Дальше пишете $dupe и жмете Enter, как вам и сказали сразу.

Короче, непонятно, в чем проблема.

Хотел написать $dupe = 1 »
Зачем это писать? В $dupe у вас выборка дубликатов уже. Ну поместите вы вместо нее 1. И что это даст? Адын!




© OSzone.net 2001-2012