|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Автоматизировать отключение и включение оборудования |
|
|
Любой язык - Автоматизировать отключение и включение оборудования
|
|
Новый участник Сообщения: 5 |
Здравствуйте. Сразу скажу что я далек от темы программирования и прошу простить за предстоящие глупые вопросы.
Суть собственно вот в чем. Нужно при старте системы отключить и подключить оборудование например с айди USB\VID_0955&PID_9000. И все. Желательно в свернутом виде виде без всплывающих окон командных строк (но это необязательно) |
|
|
Отправлено: 14:11, 04-03-2025 |
|
fascinating rhythm Сообщения: 6699
|
Профиль | Отправить PM | Цитировать Почитайте про команды Powershell
Get-PnpDevice - получение информации об устройствах Disable-PnpDevice - отключение Enable-PnpDevice - включение |
|
------- Отправлено: 15:13, 04-03-2025 | #2 |
|
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Получилось решить так
If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { $arguments = "& '" + $myinvocation.mycommand.definition + "'" Start-Process powershell -Verb runAs -ArgumentList $arguments Break -Confirm:$false } disable-PnpDevice -InstanceId 'HDAUDIO\FUNC_01&VEN_10EC&DEV_0897&SUBSYS_14629D48&REV_1005\4&E112F93&0&0001' -Confirm:$false enable-PnpDevice -InstanceId 'HDAUDIO\FUNC_01&VEN_10EC&DEV_0897&SUBSYS_14629D48&REV_1005\4&E112F93&0&0001' -Confirm:$false Осталось решить как это хозяйство запускать незаметно. С атрибутом -WindowStyle Hidden окно все равно появляется на секунду |
|
Отправлено: 08:49, 06-03-2025 | #3 |
|
Ветеран Сообщения: 2211
|
Профиль | Отправить PM | Цитировать Цитата Wicked43:
|
|
|
------- Отправлено: 09:13, 06-03-2025 | #4 |
|
fascinating rhythm Сообщения: 6699
|
Профиль | Отправить PM | Цитировать |
|
|
------- Отправлено: 12:55, 06-03-2025 | #5 |
|
Crazy Сообщения: 1234
|
Профиль | Отправить PM | Цитировать Цитата Wicked43:
C# hide.exe using System;
using System.Diagnostics;
using System.Windows;
namespace hide
{
class Program
{
static void Main(string[] args)
{
string st = "", ar = "";
if (args.Length == 0)
MessageBox.Show("фигассе, а параметры кто будет задавать?:)");
else
{
st = args[0];
for (int i = 1; i < args.Length; i++) {
ar += " " + args[i];
}
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = st,
WindowStyle = ProcessWindowStyle.Hidden,
//аргументы
Arguments = ar
};
//запуск процесса
Process.Start(startInfo);
}
}
}
}
d:\TEST1\hide.exe powershell.exe -c "d:\TEST1\script.ps1 -d 'Intel(R) Ethernet Connection (11) I219-V'" ЗЫ Если будут проблемки с компиляцией, могу помочь... а это скрипт, с возможностью автоопределения, что требуется сделать с устройством (выкл/вкл), если не указывать значение аргумента -type: powershell script.ps1 param([string]$device,[string]$type)
# если запущен не от имени админа:
if (
!([security.principal.windowsprincipal]`
[security.principal.windowsidentity]::getcurrent()).isinrole([security.principal.windowsbuiltinrole]`
"Administrator")
) {
saps powershell.exe "-nop -exe Bypass -f `"$PSCommandPath`" -dev `"$device`" -t `"$type`"" -verb RunAs
exit
}
# получаем устройство:
$d = get-pnpdevice |?{$_.friendlyname -like $device -or $_.instanceid -like $device}
$d
# автовыбор противоположного действия текущему состоянию:
if($type -ne "enable" -and $type -ne "disable") {
if($d.status -eq 'OK') {$type = "disable"}else {$type = "enable"}
}
if ($type -eq "enable") {
"Включаем $($d.friendlyname)"
$d | enable-pnpdevice -confirm:$false
} elseif ($type -eq "disable") {
"Выключаем $($d.friendlyname)"
$d | disable-pnpdevice -confirm:$false
}
sleep -s 2
|
|
|
------- Последний раз редактировалось YuS_2, 06-03-2025 в 20:24. Причина: поправил строку запуска. В таком виде можно использовать в батнике Отправлено: 15:47, 06-03-2025 | #6 |
|
Crazy Сообщения: 1234
|
Профиль | Отправить PM | Цитировать А это скомпилированный файлик (для Net Framework 4.8.1)
hide.zip |
|
------- Отправлено: 20:30, 06-03-2025 | #7 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Мышь - [решено] Отключение и включение мыши | Derentius | Прочее железо | 9 | 06-06-2017 23:50 | |
| Разное - Отключение-включение клавиатуры скриптом | Moneton | Microsoft Windows 10 | 7 | 15-02-2016 01:30 | |
| Циклическое включение и отключение ПК | gO0gler@twitter | Материнские платы и память | 4 | 02-02-2016 11:00 | |
| Разное - Кратковременное отключение оборудования | FatherFreeman | Microsoft Windows 7 | 20 | 23-10-2013 01:15 | |
| CMD/BAT - Отключение и включение звука | FallenArh | Скриптовые языки администрирования Windows | 3 | 03-03-2013 19:51 | |
|