Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Активные темы » Сценарии для Windows

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225

Открыть новую тему     Написать ответ в эту тему

KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Старые и смежные темы: по CMD и в Программах | по PowerShell | В помощь системному администратору | Прикладное программирование

PowerShell
Версии | Ассоциация и подпись сценариев
Сценарий для ассоциации файлов PowerShell и запуска неподписанных скриптов.
 
Прочее
Расширение возможностей
Функции
Write-Color
Output-DebugString
Провайдеры
Готовые скрипты
Полезные ссылки | Будет ли репозиторий PowerShell на ru-board?
Книги в PDF
Cheat Sheets
 

Cmd
Для перекодирования кириллицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы
 
Готовые решения и частые вопросы
 
Описания работы команд и символов участниками темы:
setlocal enabledelayedexpansion и переменные окружения
символы & и && в командной строке
Переменная %0
 
Полезные ссылки и утилиты

WSH (VBScript, JScript)
Программирование "удобняшек" на VBScript

Примечания:
• Большие куски кода заключайте в тэг [ more ]
• Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте код без пробелов иначе сценарий может работать неправильно. Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
• Сторонние консольные утилиты можно использовать только в виде готового решения и только в рамках сценариев. Никаких обсуждений и обучений работе с утилитами не предусмотрено и прямо запрещено правилами топика.
Шапка и около-темные вопросы |

Всего записей: 11058 | Зарегистр. 12-10-2001 | Отправлено: 13:40 17-02-2018 | Исправлено: YuS 2, 08:24 19-06-2021
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Export-WindowsDriver из модуля-обёртки Dism экспортирует все сторонние дрова, присутствующие в DriverStore
 
У меня есть системы которые грузятся поочерёдно на десятке десктопов и ноутов: там дров в этом Store наросло сотни.
Идея скрипта в том именно, чтобы экспортнуть только активные на данном железе дрова (те, что выбраны PnP-подсистемой винды исходя из наличного оборудования)

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 21:01 08-11-2018 | Исправлено: LevT, 21:05 08-11-2018
dialmak



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Цитата:
Как узнать драйвера, раельно используемые живой системой?  

Насколько понял интересуют критические бутовые драйвера..
Есть такой скрипт osddiag.tbs. работает под DOS\EFIx64\Linux\Windows
Его смысл в проверке рабочей версии винды и нерабочей, он пишет чего не хватает. Если честно - никогда не пригодился.
 

Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 21:10 08-11-2018 | Исправлено: dialmak, 21:11 08-11-2018
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мне это занадобилось, чтобы добавить только нужные дрова к запущенной на конкретной железке WinPE
У меня это уже работает.
 
На моих железках встречается такое, что обычная не-PE система выбирает неверный драйвер (типа есть уже в DriverStore, и не лезет уточнять)
Должно помочь сформировать комплект правильных дров чистой системой - но это потом постепенно...
 
 
Добавлено:
dialmak

Цитата:
Насколько понял интересуют критические бутовые драйвера..  

 
Нет )  наоборот, в первую очередь видео ))
Критические бутовые дрова сейчас неактуальны в десктопном сегменте: всё грузится с AHCI или USB
 
Ну и да: кроме десяток ничего не рассматриваю )
 

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 21:12 08-11-2018 | Исправлено: LevT, 21:23 08-11-2018
dialmak



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT

Цитата:
Нет )  наоборот, в первую очередь видео ))  

Так они не критичны и это маловажно, доустановить всегда можно.

Цитата:
Критические бутовые дрова сейчас неактуальны в десктопном сегменте: всё грузится с AHCI или USB  

ну это смотря какая ОС, для 7-8 это актуально

Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 21:23 08-11-2018 | Исправлено: dialmak, 21:25 08-11-2018
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT

Цитата:
там дров в этом Store наросло сотни.


Цитата:
Идея скрипта в том именно, чтобы экспортнуть только активные на данном железе дрова (те, что выбраны PnP-подсистемой винды исходя из наличного оборудования)

Понятно.  
Но, всё равно, некоторые дрова будут утеряны, из-за их отсутствия в WMI классе... 13 против 4

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 21:26 08-11-2018
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dialmak
 
Ага... у меня как раз подопытный UHD-ноут с двумя видяхами, активная выбирается от фазы Луны фонаря.
Цель добавить к свежезапущенной WinPE полную поддержку оборудования минимумом телодвижений: я её загрузил чтобы работать, а не настраивать )
 
 
Добавлено:
YuS_2
Посмотрим... у меня в планах сейчас это активно юзать.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 21:27 08-11-2018 | Исправлено: LevT, 21:39 08-11-2018
dialmak



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT Я PE вообще не рассматривал в принципе, и там кстати драйвера видео нужны менее всего.

Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 21:33 08-11-2018
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dialmak
Я хочу попробовать соорудить статическую конструкцию на основе PE, с репозиториями всего нужного софта и скриптов.
В качестве мобильной админской/девопсной станции.
Соответственно, глаза ломать в мои планы не входит.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 21:34 08-11-2018 | Исправлено: LevT, 21:39 08-11-2018
dialmak



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT А смысл? Есть же VHD(X)....

Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 21:40 08-11-2018
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dialmak
Которые у меня плодятся как кролики и каждый из них засирается постепенно.  
В результате бывает что я точно знаю, что что-то качал, куда-то скачанное ставил - но проще заново скачать, чем искать по моим носителям...
 
Система должна собираться из конструктора, сейчас рассматриваю RusLive с собственными добавками.
Лезть внутрь сборки не планирую, кладу своё рядом - так что обновления проблемой не станут
 
 
 
Добавлено:
 
А VHD/X для установки на железки клепать буду потом, из той же мобильной кухни.
Чтобы в них не было ничего ни лишнего, ни главное эксклюзивного.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 21:58 08-11-2018
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Ты был прав: по сути ты меня вчера научил новой "ковыряльной палочке" именно в повершел.
Другое дело, что нижележащий движок WMI то ещё гавно.
 
Вывод сокращён
 

Код:
 
PS C:\Windows\system32> Get-CimClass *process*
 
 
   NameSpace: ROOT/CIMV2
 
CimClassName                        CimClassMethods      CimClassProperties
------------                        ---------------      ------------------
Win32_ProcessTrace                  {}                   {SECURITY_DESCRIPTOR, TIME_CREATED, ParentProcessID, Proces...
Win32_ProcessStartTrace             {}                   {SECURITY_DE
 
PS C:\Windows\system32> (gcim CIM_ProcessExecutable).Antecedent | Get-CimAssociatedInstance
Get-CimAssociatedInstance : Critical error
At line:1 char:43
+ (gcim CIM_ProcessExecutable).Antecedent | Get-CimAssociatedInstance
+                                           ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (CIM_DataFile (N...32\win32u.dll"):CimInstance) [Get-CimAssociatedInstance
   ], CimException
    + FullyQualifiedErrorId : HRESULT 0x8004100a,Microsoft.Management.Infrastructure.CimCmdlets.GetCimAssociatedInstan
   ceCommand
 
Get-CimAssociatedInstance : Critical error
At line:1 char:43
+ (gcim CIM_ProcessExecutable).Antecedent | Get-CimAssociatedInstance
+                                           ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (CIM_DataFile (N..
 

 
прервано Ctrl-C
 
 
PS C:\Windows\system32> Get-CimClass *process*
 
и ЗАВИСОН!
 
 
Добавлено:
 
Похоже, что данная повершел "палочка" положила WMI насмерть, вплоть до ребута.
Десятка отличается от стандартной только тем, что применён "WUMT wrapper script"
 

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 10:56 09-11-2018 | Исправлено: LevT, 10:58 09-11-2018
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT

Цитата:
Get-CimClass *process*


Цитата:
что данная повершел "палочка" положила WMI насмерть, вплоть до ребута.

Ну, не знаю... не то, чтобы зависон, но тормоза присутствуют, это же WMI
Хотя жалоб на него много попадалось, так что не удивительно...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 15:26 09-11-2018
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжаю ковырять WMI
 

Код:
 
function Get-WmiNamespace {
    Param ($Namespace=’ROOT’)
 
    Get-WmiObject -Namespace $Namespace -Class __NAMESPACE | ForEach-Object  
    {
            ($ns=’{0}\{1}’-f $_.__NAMESPACE,$_.Name)
            Get-WmiNamespace -Namespace $ns    #рекурсия
    }  
}
 
$WmiClasses = Get-WmiNamespace | ForEach-Object {
    Get-WmiObject -Namespace $_ -List |  
                                         ForEach-Object {  
                                                 $_.Path.Path  
                                         }
} | Sort-Object -Unique
 

 
Пахало долго, нашло 15360 классов (у меня 1809)
Но в 11 пространств имён даже с админскими правами не пустило.
 

Цитата:
Could not get objects from namespace ROOT\Microsoft\Windows\DesiredStateConfiguration. Access denied  
Could not get objects from namespace ROOT\Microsoft\Windows\DesiredStateConfigurationProxy. Access denied  
Could not get objects from namespace ROOT\Microsoft\Windows\Hgs. Access denied  
Could not get objects from namespace ROOT\ServiceModel. Access denied  
Could not get objects from namespace ROOT\PEH. Access denied  
Could not get objects from namespace ROOT\RSOP\Computer. Access denied  
Could not get objects from namespace ROOT\RSOP\User. Access denied  
Could not get objects from namespace ROOT\SECURITY. Access denied  
Could not get objects from namespace ROOT\CIMV2\Security\MicrosoftVolumeEncryption. Access denied  
Could not get objects from namespace ROOT\CIMV2\Security\MicrosoftTpm. Access denied  
Could not get objects from namespace ROOT\CIMV2\mdm\dmmap. Access denied  

 
Идеи, как туда заглянуть?

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 19:12 09-11-2018 | Исправлено: LevT, 19:17 09-11-2018
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT

Цитата:
даже с админскими правами не пустило.  

А с правами TrustedInstaller?

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 19:24 09-11-2018
dialmak



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT Я смотрю через WMI Explorer https://www.ks-soft.net/hostmon.eng/wmi/index.htm
Но глубоко не лез.

Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 19:55 09-11-2018 | Исправлено: dialmak, 19:55 09-11-2018
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
function get-namespace {
param([int]$i)
    switch ($i)
    {
        0 {  
            'ROOT'
            break
          }
        default {
            $parents = get-namespace ($i-1)
            $parents | foreach {
                $parent = $_
                try {
                    $children = (Get-CimInstance -Namespace $_ -ClassName __NAMESPACE -ea Stop).Name
                    $children | foreach {
                        "{0}/{1}" -f $parent,$_
                        }  
                    $_              
                 
                } catch [Microsoft.Management.Infrastructure.CimException] {
                    $accessdenied = $Error[0].TargetObject    
                    "access denied to CIM instance`n`t $accessdenied" | Write-Warning
                }
            }
         }
    }
}
 

 
Функция работает быстро, потому что использует т.н. хвостовую рекурсию.
Вызов:
 
$depth = 3
get-namespace $depth
 
 
Добавлено:
NIKZZZZ

Цитата:
А с правами TrustedInstaller?  

 
Те же Access denied (
 
Я проверил дважды:
1) запустил powershell прямо из дефолтной проги (cmd)
2) сделал ярлык с параметром powershell.exe
 
Добавлено:
 
Кстати, эта последняя функция работает на Вашей RusLive в Powershell Core  
get-namespace $depth  
 
Несмотря на системную учётку в PE, отказы в доступе налицо.
ЗЫ. Где-то я слегка накосячил с логикой выявления отказов, подправлю.
 
 
Добавлено:
NIKZZZZ
В PE другие ошибки на этом месте: NullReferenceException
 

Цитата:
Get-CimInstance : Неправильное пространство имен
At Y:\CIMExplorer.ps1:17 char:38
+ ... children = (Get-CimInstance -Namespace $_ -ClassName __NAMESPACE -ea  ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : MetadataError: (ROOT/SECURITY/:__NAMESPACE:String) [Get-CimInstance], CimException
+ FullyQualifiedErrorId : HRESULT 0x8004100e,Microsoft.Management.Infrastructure.CimCmdlets.GetCimInstanceCommand
 

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 21:24 09-11-2018 | Исправлено: LevT, 23:03 09-11-2018
virjokk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто знает как в PS качать файлы по динамическим ссылкам?
Например, по этой.
Пробовал так:

Код:
 
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$dlink = 'https://www.slimjet.com/ru/postdl.php?version=win64&type=zip'
$ua= '[Microsoft.PowerShell.Commands.PSUserAgent]::Firefox'
Invoke-WebRequest -uri $dlink -UserAgent $ua -outfile sjt_x64.exe
 

И так:

Код:
 
Start-BitsTransfer –source $dlink -destination c:\download
 

И вот так:

Код:
 
$client = new-object System.Net.WebClient
$client.DownloadFile("$dlink","C:\download\sjt_x64.exe")
 

Во всех случаях качается html-файл, а не требуемый экзешник.
Понятно, что можно использовать классический wget, который это умеет.
Но может есть нативное?
 

Всего записей: 288 | Зарегистр. 19-05-2006 | Отправлено: 22:35 10-11-2018
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
virjokk

Цитата:
Но может есть нативное?

В чистом виде, наверное, динамические ссылки не обрабатываются, но можно обрабатывать получаемую страницу и потом получать ссылку для скачивания...
Если такое решение устроит, то позже попробую небольшой скрипт наваять...
 
Добавлено:

Код:
[net.servicepointmanager]::securityprotocol = 'ssl3,tls,tls11,tls12'
$file = 'sjt_x64.exe'
$url = "https://www.slimjet.com/ru/postdl.php?version=win64&type=zip"
$link = (-join ($url -split "(/)")[0..4]) + (
    (((iwr $url).links.href -match 'version=win64') -notmatch 'local') -replace '^\.\.|amp;'
)
iwr $link -out $file

но если что-либо поменяют "web-строители", то код придется корректировать... т.е. решение не совсем универсальное.

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 15:15 11-11-2018 | Исправлено: YuS_2, 19:13 11-11-2018
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
virjokk
YuS_2
 

Код:
 
$dlink = 'https://www.slimjet.com/getfile.php?xp=&amp;version=win64&amp;type=zip&amp;beta=&amp;server='
 
Invoke-WebRequest -uri $dlink -UserAgent $ua -OutFile Y:\path\sjtwebsetup_x86.exe
 

Но повершел тут не при чём: реальная ссылка есть в хтмл (если б она формировалась жабаскриптом, фокус не удался бы)
Имя файла узнал потом вручную.
Притом файл оказался заглушкой, которая после запуска вытягивает откуда-то реальный инсталлятор и потом запускает его из %temp%\sjtsetup_x86.exe
 
Можно таким же образом вручную поглядеть каким-нибудь фиддлером реальный url
 
 
Добавлено:
 
Короче, если в wget этот гимор автоматизирован - то я также присоединяюсь к розыскам годного решения на повершел.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 16:03 11-11-2018 | Исправлено: LevT, 16:11 11-11-2018
virjokk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Это работает, пусть и не универсально, но ведь и статическая ссылка может
измениться так, что придется менять критерии ее поиска.
Посмотрел, как качает wget c дебаг по той же ссылке.
В ответе сервера в поле Location сразу выдается реальная ссылка для скачивания:

Код:
 
---response begin---
HTTP/1.1 302 Moved Temporarily
Date: Mon, 12 Nov 2018 05:06:41 GMT
Server: Apache
Set-Cookie: lastip=92.124.137.29; expires=Tue, 12-Nov-2019 05:06:41 GMT; Max-Age=31536000; path=/; domain=www.slimjet.com
Set-Cookie: lastcc=RU; expires=Tue, 12-Nov-2019 05:06:41 GMT; Max-Age=31536000; path=/; domain=www.slimjet.com
Location: //www.slimjetbrowser.com/release/sjt7z_x64.exe
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
---response end---
 

Но через PS сервер отдает лишь тот же динамический линк:

Код:
 
PS C:\>$HTTP_Request = [System.Net.WebRequest]::Create('https://www.slimjet.com/ru/postdl.php?version=win64&type=zip')
PS C:\>$HTTP_Request.GetResponse()
...
ResponseUri: https://www.slimjet.com/ru/postdl.php?version=win64&type=zip
...
 

Если делать правильные запросы, вероятно, можно получить универсальное решение.

Всего записей: 288 | Зарегистр. 19-05-2006 | Отправлено: 09:18 12-11-2018 | Исправлено: virjokk, 09:23 12-11-2018
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Активные темы » Сценарии для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru