Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] PowerShell не выполняет команду. (http://forum.oszone.net/showthread.php?t=348813)

sputnikk 20-05-2021 06:33 2958476

PowerShell не выполняет команду.
 
Что делаю не так на виртуальной 20Н2?
В статье https://www.outsidethebox.ms/20667/?...лог%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


Foreigner 20-05-2021 08:14 2958481

Ну так посмотрите, что у вас в $dupe.

Код:

PS C:\WINDOWS\system32> $dupe

sputnikk 20-05-2021 09:01 2958483

Цитата:

Цитата Foreigner
что у вас в $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 2958485

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 2958500

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

Foreigner 20-05-2021 12:08 2958502

Цитата:

Цитата sputnikk
Похоже синтаксис нарушается не только при редактировании в Блокноте , но и копировании оригинальной команды из Блокнота или из постов выше, реакция есть только при копировании из статьи. »

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

Vadikan 24-05-2021 22:41 2958894

Цитата:

Цитата sputnikk
реакция есть только при копировании из статьи »

В статье же есть целый скрипт файлом. А так, если взять фрагмент из раздела Получение списка дубликатов и вставить в консоль, то код отработает. Дальше пишете $dupe и жмете Enter, как вам и сказали сразу.

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

Цитата:

Цитата sputnikk
Хотел написать $dupe = 1 »

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


Время: 23:41.

Время: 23:41.
© OSzone.net 2001-