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

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

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



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

Код:
 
PS C:\> Get-Command -Noun clipboard
 
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Get-Clipboard                                      3.1.0.0    Microsoft.PowerShell.Management
Cmdlet          Set-Clipboard                                      3.1.0.0    Microsoft.PowerShell.Management
 


Всего записей: 17165 | Зарегистр. 14-10-2001 | Отправлено: 15:31 19-09-2022
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
                              LevT
     'PowerShell' - это, конечно, хорошо. Но задача заключается в редактировании указанного кода.

Всего записей: 2214 | Зарегистр. 09-01-2010 | Отправлено: 19:42 19-09-2022
newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую!
Создал БД и таблицу в ней.
В таблице добавил столбцы:
ID,  
Server,  
DB_Time,  
DB_Check,  
и т.д.
Когда я скриптом пытаюсь добавить данные в таблицу,  добавляется только ID, на остальные записи ругается...
 
...
Подробнее...
 
Подскажите плиз, что я делаю не так?
Я только начинаю работать с запросами в SQL, по этому прошу помощи в доработке скрипта

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

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

Цитата:
что я делаю не так?

Команда "insert" добавляет в таблицу целую строку. Ваш код, соответственно, пытается добавить значение каждого столбца отдельной строкой.
Если нужно изменить данные в уже созданной строке - это, НЯП, делается командой "update"...
Но, насколь я вижу, в вашем случае нужно просто вставить все данные одним insert'ом.

----------
http://www.imho.ws

Всего записей: 2403 | Зарегистр. 12-10-2006 | Отправлено: 10:25 20-09-2022
newhk



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

Код:
 
$connection.Execute("insert into Region_Backups (ID) Values ($ID) (Server) Values ($server) и т.д.")
 

 
Т.е. так?

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 12:43 20-09-2022
BorlandIMHO

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

Цитата:
Т.е. так?

По смыслу так. Конкретно по синтаксису - не уверен, уточнять требуется....

----------
http://www.imho.ws

Всего записей: 2403 | Зарегистр. 12-10-2006 | Отправлено: 13:04 20-09-2022
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
newhk
 
Вы тут уже изучали Powershell методом тыка. Что ж, таким же образом SQL будете в этой теме изучать?  
 
Попробую объяснить логику.
 
Вот есть SQL сервер. Это "вещь в себе", которой можно посылать команды на языке SQL.
Чтобы посылать команды, в операционной системе должен быть установлен клиентский софт, умеющий эти команды посылать.
 
Древние варианты такого софта это ODBC и ADODB - последним вы пытаетесь воспользоваться "через гланды" (то есть создавая COM object из повершел).
 
 
Если вам интересны более прямые варианты - попробуйте копнуть/спросить о них.  
Если не интересны, то я не понимаю, при чём тут "скрипты для Windows" - ведь проблемы в вашем невежестве:
 
1) о языке SQL и  
2) о существовании (разных) клиентов SQL сервера.
 
 
Ещё, поимейте в виду, что с локальным SQL сервером управляться гораздо проще чем, по сети (именно на удалённое управление заточены все старые клиентские библиотеки, в них много всякого ненужного локально шаманства, которое ещё и может быть заблокировано из-за обнаруженных впоследствии уязвимостей).
 
Для управления SQL сервером есть PS модуль - сюрприз, SqlServer. Это тоже клиентский софт.
 
Если сервер стоит локально - то модёль повершел-управления им у вас в системе тоже стоит вместе с ним. Если он стоит где-то в сети, то нормальный способ подгрузка этого модуля в удалённую повершел сессию (remoting).

Всего записей: 17165 | Зарегистр. 14-10-2001 | Отправлено: 13:46 20-09-2022 | Исправлено: LevT, 14:03 20-09-2022
newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
У меня, как раз, удаленные подключения (через ВПН), по этому современные варианты не рассматривал.
 
У меня есть сервера, как 2012, так и 2003. Не везде можно накатить средства управления MSSQL для  PowerShell. По этому использую старые методы подключения.

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 14:03 20-09-2022
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
newhk
 
Впн - это обычное подключение по сети с точки зрения прикладного софта.
 

Цитата:
Не везде можно накатить средства управления MSSQL для  PowerShell.

 
Всё ж стоит попробовать. Я недавно вылечил для отчаявшегося коллеги "несовместимость" SQL (емнип) 2008 с Windows 2022. Всего-то надо было накатить .NET 3.5 - а для этого вытащить тот компонент из загрузок для старых версий винды.
 
 
Добавлено:
 
Хотя нет. 2003 сервер - это ФСЁ. ССЗБ.  
Копирастия головного мозга, или обычная лень?
 
Поймите, что в обновлении софта заинтересован лично админ, и больше никому это не нужно (ещё поставщикам прикладного софта, которые тоже могут вынудить контору обновить серверный софт, на котором крутятся их изделия).  
 
Древний софт - ненужный админский (и разработчика) гимор, для себя же любимого и ленивого.
 

Всего записей: 17165 | Зарегистр. 14-10-2001 | Отправлено: 14:06 20-09-2022 | Исправлено: LevT, 14:16 20-09-2022
newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Здесь не все просто.
Есть 3 группы филиалов, где рулит каждый админ.
Есть центральный офис, где я.
В каждом филиале свой домен (мы только идем к тому, чтобы сделать единый домен).
В общем, пока, куча геморроя, из-за этого и грабли (костыли)
 
Да еще и СМБ закрыто по ВПН (требование СБ)

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 14:19 20-09-2022 | Исправлено: newhk, 14:22 20-09-2022
LevT



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

Цитата:
сделать единый домен

 
Зачем? Для этого трасты. (технически)
Хотя понимаю, что выбор, возможно, политический - если ты хочешь по факту отобрать или ограничить админские прова у регионалов.  
 
 

Цитата:
СМБ закрыто по ВПН (требование СБ)

 
Отличный вариант начать юзать повершел ремотинг - возможно что СБ не в курсе его существования.
Ну и ВПН иногда можно проковырять себе любимому отдельный админский...

Всего записей: 17165 | Зарегистр. 14-10-2001 | Отправлено: 16:35 20-09-2022 | Исправлено: LevT, 16:38 20-09-2022
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Почему приходится ставить паузу, чтобы отловить ошибку?

Код:
 
$Job = Start-Job -Name Job -ScriptBlock {test}
Start-Sleep 3
$Job.ChildJobs.JobStateInfo.Reason.Message
 

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 11:36 28-09-2022
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
 
Потому что ты запускаешь работу в другом потоке, что хотел то и получил. Основной поток не заметит этой работы, чтобы заметил надо его заблокировать на время - например, бездельничаньем, как это делаешь ты.
 
Всякие Start-Sleep и -Wait годятся только в целях отладочных и ради обучения, ещё в интерактивной консоли. Если тебе начнёт казаться, что они уместны в скрипте - ты точно пошёл не той дорогой.
 
Конкурентное программирование отдельная большая тема, и от языка не зависит. Везде одно и то же.

Всего записей: 17165 | Зарегистр. 14-10-2001 | Отправлено: 12:12 28-09-2022
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Это да... Но как же тогда отлавливать ошибки в ScriptBlock'ах-то?

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 12:56 28-09-2022
LevT



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

Всего записей: 17165 | Зарегистр. 14-10-2001 | Отправлено: 13:03 28-09-2022
farag



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

Код:
 
cls
$Error.Clear()
Get-Job | Remove-Job -Force
$job = start-job {get-item 1} | wait-job
try {
    receive-job $job -ErrorAction SilentlyContinue
}
catch {}
$Error.Exception.Message
 

 
так покроет мои нужды, или я опять что-то не учел?

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 15:05 28-09-2022
iNNOKENTIY21



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

Цитата:
так покроет мои нужды, или я опять что-то не учел?

Никто кроме вас   не знает ваших нужд. А Представленный код не имеет смысла и в нём вся эта возня с job излишня.

Всего записей: 3521 | Зарегистр. 16-08-2012 | Отправлено: 10:50 29-09-2022
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
Я просто хочу многие функции в модуле переписать на job, чтобы быстрее было. А пример выше как бы показывал, как будут отлавливаться ошибки при возникновении оных.

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 11:26 29-09-2022
iNNOKENTIY21



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

Цитата:
Я просто хочу многие функции в модуле переписать на job, чтобы быстрее было.

LevT уже сказал про Всякие Start-Sleep и -Wait это как один поток, только с job зачем то, а job`ы сами по себе медленные. Распараллелить некоторые функции с их помощью можно, типа ping, но тема не простая.
 
Есть ещё альтернатива: PowerShell workflows

Всего записей: 3521 | Зарегистр. 16-08-2012 | Отправлено: 11:52 29-09-2022
LevT



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

Код:

$pwshPath = 'E:\A\SCOOP\shims\pwsh.exe'
 
if(-not (Get-PSDrive -PSProvider Registry | Where-Object Root -EQ "HKEY_CLASSES_ROOT")) {
    New-PSDrive -PSProvider Registry -Root "HKEY_CLASSES_ROOT" -Name "HKCR"
}
 
New-Item -Path "HKCR:\Microsoft.PowerShellScript.1\Shell" -Name "1"
New-ItemProperty -Path "HKCR:\Microsoft.PowerShellScript.1\Shell\1" -PropertyType String -Name "MUIVerb" -Value "Run with PowerShell &Core"
New-ItemProperty -Path "HKCR:\Microsoft.PowerShellScript.1\Shell\1" -PropertyType String -Name "Icon" -Value $pwshPath
 
New-Item -Path "HKCR:\Microsoft.PowerShellScript.1\Shell\1" -Name "Command"
 
 
$value = ('"{0}" "-Command" "if((Get-ExecutionPolicy ) -ne ''AllSigned'') {{ Set-ExecutionPolicy -Scope Process Bypass }}; & ''%1''"' -f $pwshPath)
 
Set-ItemProperty -Path "HKCR:\Microsoft.PowerShellScript.1\Shell\1\Command" -Name "(Default)" -Value $value

 
- зарегать пункт контекстного меню
 
Хотя лично я и решительный противник такого использования повершел... (но: могу ошибаться)

Всего записей: 17165 | Зарегистр. 14-10-2001 | Отправлено: 16:26 07-10-2022 | Исправлено: LevT, 16:36 07-10-2022
Открыть новую тему     Написать ответ в эту тему

Страницы: 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