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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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.
• Сторонние консольные утилиты можно использовать только в виде готового решения и только в рамках сценариев. Никаких обсуждений и обучений работе с утилитами не предусмотрено и прямо запрещено правилами топика.
Шапка и около-темные вопросы |

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



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
farag
Вопрос, а зачем его импортировать через батник, если скрипт PS и так увидит это модуль?

----------
Разум когда-нибудь победит

Всего записей: 3214 | Зарегистр. 09-02-2003 | Отправлено: 15:22 17-08-2018
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis
Я запускаю батник, и модуль сразу копируется в нужное место и импортируется. ps1 так не запустить.

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 15:26 17-08-2018
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
farag
Любой модуль из psmodulepath подхватиться новым процессом PS. Т.е., если Вы скопировали модуль и потом запустили PS, он этот модуль увидит без всякого импорта.


----------
Разум когда-нибудь победит

Всего записей: 3214 | Зарегистр. 09-02-2003 | Отправлено: 15:36 17-08-2018 | Исправлено: Smitis, 15:37 17-08-2018
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis
Верю, но запуск PSScriptAnalyzer сразу ругается, что команда найдена, но импортировать не получилось. Сделайте импорт сами. Как так тогда?

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 16:23 17-08-2018
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
farag
Я не знаю последовательность Ваших действий.
У меня так:
- Копирую модуль (всю папку с файлами, относящимися к модулю)
- Запускаю PS
- Profit
Сейчас вот ради эксперимента установил PSScriptAnalyzer (как положено, через install-module). Скопировал папку с ним на другой компьютер, где его никогда не было. Открыл там консольный PS. Вызвал Invoke-ScriptAnalyzer для какого-то скрипта. Получил кучу ворнингов (не используемые переменные, не канонические verbs и пр.). Никто делать import-module не предлагал. ЧЯДНТ?
 


----------
Разум когда-нибудь победит

Всего записей: 3214 | Зарегистр. 09-02-2003 | Отправлено: 19:36 17-08-2018 | Исправлено: Smitis, 19:38 17-08-2018
farag



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

Цитата:
ЧЯДНТ?  

Вот и я тоже так делаю на виртуалке. А что-то ошибка. Буду дальше думать.
 
Добавлено:
Просто скопировал на ПК, где его никогда не было, и  

Код:
 
Invoke-ScriptAnalyzer : Команда "Invoke-ScriptAnalyzer" найдена в модуле "PSScriptAnalyzer", но загрузить этот модуль не уда
лось. Для получения дополнительных сведений выполните команду "Import-Module PSScriptAnalyzer".
 

Ошибка исчезла лишь после

Код:
 
Set-ExecutionPolicy Unrestricted -Force
 

Вот и ответ.

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 20:26 17-08-2018 | Исправлено: farag, 20:36 17-08-2018
Eternal07



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый вечер.
Можно ли powershell использовать как hex-редактор и скриптом вносить изменения в файл? Если можно, то как?

Всего записей: 101 | Зарегистр. 21-12-2007 | Отправлено: 21:29 17-08-2018
Smitis



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

Цитата:
Можно ли powershell использовать как hex-редактор и скриптом вносить изменения в файл? Если можно, то как?

Вариант, читаем весь файл как массив байт (символов) [char[]] $f = Get-Content $FilePath -Encode Byte. Можно после этого преобразовать [string]$f = -join $f и обрабатывать как "гигантскую строку". В конце концов, можно напрямую использовать методы dot.net из System.IO.


----------
Разум когда-нибудь победит

Всего записей: 3214 | Зарегистр. 09-02-2003 | Отправлено: 00:12 18-08-2018
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Eternal07
Цитата:
Можно ли powershell использовать как hex-редактор и скриптом вносить изменения в файл? Если можно, то как?
Smitis
Цитата:
В конце концов, можно напрямую использовать методы dot.net из System.IO

 
Да. Например: #

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 03:46 18-08-2018 | Исправлено: iNNOKENTIY21, 03:50 18-08-2018
Eternal07



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
Smitis
Что-то я нихрена не понимаю. И на stackoverflow.com нашел подходящие варианты, но не могу собрать в один рабочий скрипт.
Есть "F:\Files\0014.upk" файл. В нём нужно найти offset "0000D390" и заменить "00 00 50 61 72 74 69 63 6C 65 53 79 73 74 65 6D " на "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00". Как это сделать?

Всего записей: 101 | Зарегистр. 21-12-2007 | Отправлено: 12:39 18-08-2018 | Исправлено: Eternal07, 13:40 18-08-2018
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Eternal07
пример же выше, под ковриком #
открой мой пост на редактирование (модно там убрать тэг #, отметить галку предпросмотра и поглядеть)

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 16:42 18-08-2018 | Исправлено: iNNOKENTIY21, 16:44 18-08-2018
Eternal07



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
Да, спасибо, работает.

Всего записей: 101 | Зарегистр. 21-12-2007 | Отправлено: 18:00 18-08-2018
Eternal07



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста: массив ниже, в нём offset_ы значения в которых нужно изменить на "00".  Почему этот скрипт не срабатывает?
 
$fp = "0014.upk"
$bs = [System.IO.File]::ReadAllBytes("${fp}")  
 
$bs[0xD392..0xD39F] | ForEach-Object {$_ = 00}
 
[System.IO.File]::WriteAllBytes("${fp}",$bs)

Всего записей: 101 | Зарегистр. 21-12-2007 | Отправлено: 18:41 19-08-2018 | Исправлено: Eternal07, 18:42 19-08-2018
YuS_2



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

Цитата:
Почему этот скрипт не срабатывает?


Цитата:
$bs[0xD392..0xD39F] | ForEach-Object {$_ = 00}

патамушта так не делается изменение элементов...

Код:
for($i = 0xD392;$i -le 0xD39F;$i++){
    $bs[$i] = 0x00
}

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 19:49 19-08-2018 | Исправлено: YuS_2, 19:52 19-08-2018
farag



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

Код:
 
$vm = Get-VM -Name 10
$n = (Mount-VHD -Path $vm.HardDrives.Path -Passthru | Get-Disk).Number
$letter = (Get-Partition -DiskNumber $n).DriveLetter
Resize-Partition -DriveLetter $letter -Size 34GB
Dismount-VHD -Path $vm.HardDrives.Path
 

Хочу изменить объем диска для виртуальной машины. $letter выдает правильную букву диска (E), Но при подстановки в

Код:
 
Resize-Partition -DriveLetter $letter -Size 30GB
 

сыпятся в ошибку Resize-Partition

Код:
 
Resize-Partition : Неправильное свойство  
строка:5 знак:1
+ Resize-Partition -DriveLetter $letter -Size 30GB
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : MetadataError: (MSFT_Partition:ROOT/Microsoft/.../MSFT_Partition) [Resize-Partition], CimExce  
   ption
    + FullyQualifiedErrorId : HRESULT 0x80041031,Resize-Partition
 

 
Заработало только так:

Код:
 
(Get-Partition -DiskNumber $n | Sort-Object Size -Descending | Select-Object -First 1).DriveLetter
 

 
Почему

Код:
 
(Get-Partition -DiskNumber $n | Sort-Object Size -Descending | Select-Object -First 1).DriveLetter
 

выдает

Код:
 
E
 

а

Код:
 
(Get-Partition -DiskNumber $n).DriveLetter
 


Код:
 
 
 
 
 
E
 

выдает с пробелами?

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 12:34 20-08-2018 | Исправлено: farag, 12:56 20-08-2018
iNNOKENTIY21



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

Цитата:
выдает с пробелами?

Там не пробелы, там массив char. Почему так хз. Можно решить например обратившись по индексу: (Get-Partition -DiskNumber $n).DriveLetter[1]. Но надо бы погуглить почему так, мало ли

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 14:48 20-08-2018
YuS_2



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

Цитата:
выдает с пробелами?

Как сказали выше, это не пробелы, а символы 0x00, т.к. результат выполнения (get-partition).driveletter - массив, с типом элементов System.Char, а там перечислены и разделы без присвоенных символов букв...
их можно увидеть, запустив get-partition без параметров...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 15:18 20-08-2018
batoy

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, можно ли как-то сделать, чтобы ноут выключался, когда заряд батареи опустится ниже 50%, с 30 секундным дилэем и вопросом "система завершает работу, уверены что хотите?"

Всего записей: 2 | Зарегистр. 25-08-2018 | Отправлено: 20:40 25-08-2018
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
Потому что на подопытном vhd не один раздел, а несколько
Среди которых присутствуют такие разделы, созданные на которых файловые системы винда не понимает или не настроена автоматически монтировать буквой.
 
ЗЫ. Это _свойство предмета_ (storage) важное для всех скриптеров, имеющих c ним дело.
Возня с повершелом может помочь его изучить!
Но только если начать с понимания, что некоторые "символы" Char-am рознь, и являются _непосредственно живым_ представлением сути вещей (get-command -Module storage | select -unique noun).
 
 
Добавлено:
Eternal07
Можно так
 

Цитата:
    0..($newbytes.count-1) | foreach-object {
        $bytes[$offset + $_] = $newbytes[$_]
    }
 

Всего записей: 17149 | Зарегистр. 14-10-2001 | Отправлено: 21:01 25-08-2018 | Исправлено: LevT, 21:19 25-08-2018
Smitis



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

Цитата:
Подскажите, пожалуйста: массив ниже, в нём offset_ы значения в которых нужно изменить на "00".  Почему этот скрипт не срабатывает?  

[System.Array]::Clear($bs,0xD392,0xD39F-0xD392+1)

----------
Разум когда-нибудь победит

Всего записей: 3214 | Зарегистр. 09-02-2003 | Отправлено: 21:33 25-08-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