Показать полную графическую версию : Get-Member и MemberType (Method)
tarasov.evgeny
10-01-2011, 17:25
Добрый день,
Интересует теоретический вопрос, на конкретном примере.
Вот я хочу например отключить 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, что я хочу отключить устройство?
С уважением, Евгений
если я буду использовать StopService »
Get-WMIObject -Class Win32_SystemDriver | `
Where-Object -FilterScript {$_.Name -like "FDC"} | `
Format-List AcceptPause, AcceptStop
как вариант - метод ChangeStartMode, но изменения применятся только после перезагрузки
tarasov.evgeny
11-01-2011, 18:00
amel27,
Спасибо, но я не понял :(
Есть желание отключить устройство в диспетчере устройств (например fdc).
Есть желание понять как работать с методами, а не свойствами. Свойства позволяют отображать информацию, а методы менять свойства (это грубо) объекта.
Вот вы написали скрипт, он должен показать свойства (я кстати не понял, что они значат)
А как воспользоваться методом changeStartMode?
Какой должен быть синтаксис для данного метода? Вообще для методов, если они "одинаковы".
Вообщем, вопросов значительно больше, чем ответов :blush: Надеюсь на помощь.
P.S. Может быть вы слышали про утилиту devcon.exe. Это аналог device manager, только консольный. При помощи этой утилиты можно отключать устройства, но хочется перейти на PowerShell.
Вот вы написали скрипт, он должен показать свойства (я кстати не понял, что они значат) »AcceptPause=False - оперативная остановка устройства средствами WMI не поддерживается
AcceptStop=False - оперативная отключение устройства средствами WMI не поддерживается
А как воспользоваться методом changeStartMode?пример отключения FDC (требуется перезагрузка):
Get-WMIObject -Class Win32_SystemDriver | `
Where-Object -FilterScript {$_.Name -like "FDC"} | `
ForEach-Object {$_.ChangeStartMode("Disabled")}
Какой должен быть синтаксис для данного метода? Вообще для методов, если они "одинаковы". »искать описание класса в MSDN, для ChangeStartMode: http://msdn.microsoft.com/en-us/library/aa384898(v=vs.85).aspx
Может быть вы слышали про утилиту devcon.exe. Это аналог device manager, только консольный. При помощи этой утилиты можно отключать устройства, но хочется перейти на PowerShell. »
Сравнение некорректно - DevCon написан на Си с использованием Setup API... даже если возможно портировать его код в PowerShell (что еще большой вопрос), это будет всё равно что банкой гвозди заколачивать... :)
Родным для PowerShell является движок .NET, попробуйте задать вопрос в ветке общего программирования, возможно ли средствами .NET сделать аналогичное DevCon отключение/включение устройств... если возможно, то переделать для PS не составит труда, пока что гугль дал мне отрицательный ответ на этот вопрос... :(
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.