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

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

tarasov.evgeny 10-01-2011 17:25 1585328

Get-Member и MemberType (Method)
 
Добрый день,

Интересует теоретический вопрос, на конкретном примере.

Вот я хочу например отключить FDC (Floppy Disk) на своем компьютере.
Выполняю команду:
Код:

Get-WMIObject -Class Win32_SystemDriver | `
Where-Object -FilterScript {$_.Name -like "FDC"} | `
Get-Member -MemberType Method

Получаем все методы работы - Change, Create, Delete, StartService, StopService...
Я так понимаю если я буду использовать StopService - то я отключу драйвер FDC (другими словами в диспетчере устройств - устройство будет отключено)
Как дать понять powershell, что я хочу отключить устройство?


С уважением, Евгений

amel27 11-01-2011 05:35 1585829

Цитата:

Цитата tarasov.evgeny
если я буду использовать StopService »

Код:

Get-WMIObject -Class Win32_SystemDriver | `
Where-Object -FilterScript {$_.Name -like "FDC"} | `
Format-List AcceptPause, AcceptStop

как вариант - метод ChangeStartMode, но изменения применятся только после перезагрузки

tarasov.evgeny 11-01-2011 18:00 1586261

amel27,

Спасибо, но я не понял :(
Есть желание отключить устройство в диспетчере устройств (например fdc).
Есть желание понять как работать с методами, а не свойствами. Свойства позволяют отображать информацию, а методы менять свойства (это грубо) объекта.
Вот вы написали скрипт, он должен показать свойства (я кстати не понял, что они значат)
А как воспользоваться методом changeStartMode?
Какой должен быть синтаксис для данного метода? Вообще для методов, если они "одинаковы".

Вообщем, вопросов значительно больше, чем ответов :blush: Надеюсь на помощь.
P.S. Может быть вы слышали про утилиту devcon.exe. Это аналог device manager, только консольный. При помощи этой утилиты можно отключать устройства, но хочется перейти на PowerShell.

amel27 12-01-2011 05:26 1586617

Цитата:

Цитата tarasov.evgeny
Вот вы написали скрипт, он должен показать свойства (я кстати не понял, что они значат) »

AcceptPause=False - оперативная остановка устройства средствами WMI не поддерживается
AcceptStop=False - оперативная отключение устройства средствами WMI не поддерживается

Цитата:

Цитата tarasov.evgeny
А как воспользоваться методом changeStartMode?

пример отключения FDC (требуется перезагрузка):
Код:

Get-WMIObject -Class Win32_SystemDriver | `
Where-Object -FilterScript {$_.Name -like "FDC"} | `
ForEach-Object {$_.ChangeStartMode("Disabled")}

Цитата:

Цитата tarasov.evgeny
Какой должен быть синтаксис для данного метода? Вообще для методов, если они "одинаковы". »

искать описание класса в MSDN, для ChangeStartMode: http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

Цитата:

Цитата tarasov.evgeny
Может быть вы слышали про утилиту devcon.exe. Это аналог device manager, только консольный. При помощи этой утилиты можно отключать устройства, но хочется перейти на PowerShell. »

Сравнение некорректно - DevCon написан на Си с использованием Setup API... даже если возможно портировать его код в PowerShell (что еще большой вопрос), это будет всё равно что банкой гвозди заколачивать... :)

Родным для PowerShell является движок .NET, попробуйте задать вопрос в ветке общего программирования, возможно ли средствами .NET сделать аналогичное DevCon отключение/включение устройств... если возможно, то переделать для PS не составит труда, пока что гугль дал мне отрицательный ответ на этот вопрос... :(


Время: 17:29.

Время: 17:29.
© OSzone.net 2001-