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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 226 227 228 229 230

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

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

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



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

Цитата:
Я правильно понял, что copyhere это не простое копирование?

Теоретически, да.
Не зря при создании указывается контекст($ssfFONTS) и от этого зависит, видимо, какой copyhere будет использоваться.
Но вот, что там на самом деле делается, я хз

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 10:14 09-09-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пара файлов, несколько функций для работы со всплывающими уведомлениямив Windows 10
 
Создаётся всплывающее уведомление (toast notification) с кнопкой (button) <Открыть в блокноте> при нажатии на которую исполняется файл notepad.bat
Файлы должны быть в одной папке, запускать SampleToastNotification.ps1 появится всплывающее уведомление с кнопкой <Открыть в блокноте> при нажатии на которую откроется файл скрипта в блокноте
 
Пример вносит изменения в реестр HKEY_CURRENT_USER\SOFTWARE\Classes\$ProtocolName где по умолчанию $ProtocolName = 'iNNOKENTIY21'
и HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Notifications\Settings\{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\WindowsPowerShell\v1.0\powershell.exe
 
Файлы: notepad.bat и SampleToastNotification.ps1
 
Не знаю как проверять и надо ли в функции Set-ShowInActionCenter параметр [string] $Application а то туда всё можно написать?
Да… поглядеть guid папок типа {1AC14E77-02E7-4E5D-B744-2EB1AE5198B7} = windows, есть вариант получше?
 
 
Добавлено:
notepad.bat кодировка лучше oem-866 и для SampleToastNotification.ps1 utf-8 with BOM
 
Добавлено:
Созданный скриптом, протокол, можно запускать start iNNOKENTIY21: сработает батник, откроется файл скрипта в блокноте
 
Добавлено:

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 11:53 13-09-2020
dddimmm



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет! Ребята, может кто сталкивался...
Собираюсь настроить архивацию в локальной сети с помощью Acronis.
На ПК1 установлен Acronis в котором создана "Безопасная зона", эта зона находится под паролем.
На компах в сетке так же установлен Acronis, который в назначенное время делает архив и по сетке этот архив помещает в расшаренную папку на ПК1. Далее мне хотелось бы скриптом на ПК1 переместить архив из расшаренной папки в безопасную зону акрониса, которая повторюсь находится под паролем. Сталкивался кто с таким?

Раздел на скриншоте объемом 1613,99 это та самая безопасная зона акрониса, она видна в проводнике.

Всего записей: 1861 | Зарегистр. 28-07-2007 | Отправлено: 14:15 14-09-2020 | Исправлено: dddimmm, 14:18 14-09-2020
farag



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

Код:
 
{
    "list":  [
                 {
                     "guid":  "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                     "name":  "1"
                 },
                 {
                     "guid":  "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                     "name":  "2"
                 }
             ]
}
 

Хочу, допустим, сюда добавить в каждый раздел по записи "Type":  "Switch"
 
Так все работает

Код:
 
$JsonPath = "D:\Desktop\Scripts\Settings.json"
$Terminal = Get-Content -Path $JsonPath | ConvertFrom-Json
foreach ($item in $Terminal.list)
{
   $item | Add-Member -MemberType NoteProperty -Name Type -Value Switch -Force  
}
ConvertTo-Json -InputObject $Terminal -Depth 100 | Set-Content -Path $JsonPath -Force
 

Но если JSON в таком виде

Код:
 
[
    {
        "guid":  "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
        "name":  "1"
    },
    {
        "guid":  "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
        "name":  "2"
    }
]
 

то все ломает, превращая в

Код:
 
{
    "value":  [
                  {
                      "guid":  "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                      "name":  "1",
                      "Type":  "Switch"
                  },
                  {
                      "guid":  "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                      "name":  "2",
                      "Type":  "Switch"
                  }
              ],
    "Count":  2
}
 

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 15:47 14-09-2020 | Исправлено: farag, 15:53 14-09-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
всё дело как подать на конвертер: $Terminal | ConvertTo-Json

Код:
$json = @"
[
    {
        "guid":  "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
        "name":  "1"
    },
    {
        "guid":  "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
        "name":  "2"
    }
]
"@
 
$Terminal = ConvertFrom-Json $Json
$Terminal | Add-Member -MemberType NoteProperty -Name Type -Value Switch -Force
$Terminal | ConvertTo-Json

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 16:43 14-09-2020
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
Хм, как же можно было додуматься?..
А есть непосредственно в файл записать потом? Что-то на Set-Content у меня орет.

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 08:57 15-09-2020
newhk



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

Код:
 
While ($true){
    Try {
        $recipients = @(
            '2222@domain.ru'
        )
        $date = (Get-Date).ToString('hh:mm yyyyMMdd')
        $file = 'C:\!\LoadCPU.txt'
        [int]$a = 0
        $Threshold = 50
        $count = 1
        $CpuLoad = 0
        while ($count -ne 60){
            $CL = (Get-WmiObject win32_processor | Measure-Object -property LoadPercentage -Average | Select Average ).Average
            $count += 1
            $CpuLoad += $CL
        }
        [int]$a = $CpuLoad / $count
        Write-Host "CPU load is $a %"
        IF($CpuLoad -gt $Threshold){
            $subject = "Внимание! Высокая загрузка процессора на сервере SERVER"
            $body = "$date  -  Процессор загружен на $a %"
            Send-MailMessage -From roboadmin@domain.ru -To $recipients -SmtpServer mail.domain.ru -Subject $subject -body $body -enc UTF8
            Add-Content -Path $file $body
        } Else {      
            Write-Host  "Script Check Passed"
            }
    } Catch {
 
        Write-Host  "Script Check Failed"
   
    }
}
 

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 09:23 15-09-2020 | Исправлено: newhk, 09:24 15-09-2020
iNNOKENTIY21



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

Цитата:
А есть непосредственно в файл записать потом? Что-то на Set-Content у меня орет.

Хоть это и не валидный json, валидный в первом блоке кода у тебя, где "list":  
Но если очень хочется, то нормально сохраняет, как у тебя в примере:

Код:
$Terminal | ConvertTo-Json | Set-Content -Path $JsonPath -Force

Какая ошибка?

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 09:37 15-09-2020
newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
newhk
На серваке 4 физических проца.
Есть вероятность, что берется случайно выбранный проц?

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 09:59 15-09-2020
farag



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

Код:
 
ConvertFrom-Json : Недопустимый примитив JSON: D.
строка:3 знак:13
+ $Terminal = ConvertFrom-Json $Json
 

 
 

Код:
 
    [byte[]]$bytes = Get-Content -Path "shortcut.lnk" -Encoding Byte -Raw
    $bytes[0x15] = $bytes[0x15] -bor 0x20
    Set-Content -Path "shortcut.lnk" -Value $bytes -Encoding Byte -Force
 

 
А как обратно?

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 10:33 15-09-2020 | Исправлено: farag, 10:39 15-09-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
Так это же не Set-Content, а ConvertFrom-Json ругается, Json надо и глядеть, чего с ним не так и чего он конвертеру не нравится.
весь sample код



Цитата:
А как обратно?

$bytes[0x15] = 0x20 # туда
$bytes[0x15] = 0x00 # обратно
 
про от админа же?
 
Добавлено:
готовая функция есть на mdl Enable or disable shortcut elevation: Set-ShortcutElevation | My Digital Life Forums

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 11:43 15-09-2020
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
$bytes[0x15] = $bytes[0x15] -bor 0x00 ?
 
Добавлено:

Цитата:
Json надо и глядеть, чего с ним не так и чего он конвертеру не нравится.  

JSON

Код:
 
[
    {
        "guid":  "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
        "name":  "1"
    },
    {
        "guid":  "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
        "name":  "2"
    }
]
 

 

Код:
 
$JsonPath = D:\Desktop\Scripts\test.json
 
$Terminal = ConvertFrom-Json $JsonPath
$Terminal | Add-Member -MemberType NoteProperty -Name Type -Value Switch -Force
$Terminal | ConvertTo-Json | Set-Content -Path $JsonPath -Force
 

 
Не удается привязать аргумент к параметру "InputObject", так как он имеет значение NULL.

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 12:49 15-09-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
Цитата:
$bytes[0x15] = $bytes[0x15] -bor 0x00 ?

Сразу 0 или 0x00: $bytes[0x15] = 0x00
 
А лучше поглядеть как было, если нужно точно как было
ls -Recurse -File -Filter "*.lnk" -Path "$env:ProgramData\Microsoft\Windows\Start Menu\Programs\" |
% { "$($PSItem.BaseName) - $(((Get-Content -Path $PSItem.FullName -Encoding Byte -Raw)[0x15]).ToString("X"))" }
А то разные, мой вывод команды выше а ещё лучше найти доки, зачем так
 


 

Цитата:
JSON

Где то, по дороге потерялся get-content, кобыле не легче

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 12:56 15-09-2020
farag



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

Цитата:
Где то, по дороге потерялся get-content, кобыле не легче

Он же есть!
 

Цитата:
Сразу 0 или 0x00: $bytes[0x15] = 0x00  


Код:
 
[byte[]]$bytes = Get-Content -Path "$env:APPDATA\Microsoft\Windows\Start menu\Programs\System Tools\Command Prompt.lnk" -Encoding Byte -Raw
# как пользовтель
# $bytes[21] = 3
# как админ
# $bytes[21] = 35
Set-Content -Path "$env:APPDATA\Microsoft\Windows\Start menu\Programs\System Tools\Command Prompt.lnk" -Value $bytes -Encoding Byte -Force
 

 
Только интересно, всегда ли так будет...

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 14:36 15-09-2020
YuS 2



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

Цитата:
всегда ли так будет

не всегда...
туда:

Код:
$bytes = [system.io.file]::readallbytes("command prompt.lnk")  
$bytes[0x15] = $bytes[0x15] -bor 0x20
[system.io.file]::writeallbytes("command prompt_.lnk", $bytes)

 
обратно:

Код:
$bytes = [system.io.file]::readallbytes("command prompt_.lnk")  
$bytes[0x15] = $bytes[0x15] -bxor 0x20
[system.io.file]::writeallbytes("command prompt__.lnk", $bytes)

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите установить SpeculationControl.
 

 
Как это правильно сделать?

Всего записей: 911 | Зарегистр. 06-10-2018 | Отправлено: 09:20 16-09-2020
iNNOKENTIY21



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

Цитата:
Помогите установить SpeculationControl.
Как это правильно сделать?

Попробуйте сперва

Код:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

действует на текущий сеанс консоли, поэтому не закрывая консоль после команды, ставьте модуль SpeculationControl, соглашаясь на установку nuget.

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 11:15 16-09-2020 | Исправлено: iNNOKENTIY21, 11:16 16-09-2020
RL200t

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
Спасибо. Продвинулся на 1 шаг и снова застрял.
 

 
Что теперь делать? ))

Всего записей: 911 | Зарегистр. 06-10-2018 | Отправлено: 14:57 16-09-2020
iNNOKENTIY21



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

Цитата:
Что теперь делать? ))

Надо сперва разрешить выполнение сценариев. от админа:

Код:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

затем:

Код:
Get-SpeculationControlSettings

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 16:31 16-09-2020 | Исправлено: iNNOKENTIY21, 16:37 16-09-2020
RL200t

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
Да, сработало, спасибо. Выяснил, что «отключение» Spectre & Meltdown Mitigations ничего на деле не меняет. Похоже, деприкейтед.

Всего записей: 911 | Зарегистр. 06-10-2018 | Отправлено: 16:38 16-09-2020
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 226 227 228 229 230

Компьютерный форум 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