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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть функция получения версии ОС: [PowerShell] Get-OSVersion - Pastebin.com
Какие еще есть способы?

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 23:34 09-10-2018
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
iNNOKENTIY21
Get-WmiObject Win32_OperatingSystem
Можно прямо из реестра

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

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 09:54 10-10-2018 | Исправлено: Smitis, 09:58 10-10-2018
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis
От души вери матч, чего то я про него не вспомнил.

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 11:07 10-10-2018
PhoenixUA



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis
Get-CimInstance вроде то же самое, или я ошибаюсь?

Всего записей: 2184 | Зарегистр. 17-11-2005 | Отправлено: 14:52 10-10-2018
LevT



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

Код:
 
PS C:\windows\system32> (gcim Win32_OperatingSystem ).GetType().name
CimInstance
PS C:\windows\system32> (gwmi Win32_OperatingSystem ).GetType().name
ManagementObject
 

 
если залезть во внутренности объектов, инфа там та же самая
 
сейчас лучше использовать gcim  
cim и wmi командлетами используются разные протоколы ремотинга
а на PSCore wmi-командлетов вовсе нет

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CCleaner создает ярылк после установки в $env:Public\Desktop\CCleaner.lnk. Я не понимаю, почему руками могу удалить ярлык, а через PS выдает:

Код:
 
Remove-Item C:\Users\Public\Desktop\CCleaner.lnk
Remove-Item : Не удается удалить элемент C:\Users\Public\Desktop\CCleaner.lnk: Отказано в доступе по пути "C:\Users\Public\Desktop\CCleaner.lnk".
строка:1 знак:1
+ Remove-Item C:\Users\Public\Desktop\CCleaner.lnk
 

Права есть на все, но формально на папку C:\Users\Public\Desktop у пользователя стоит галочки лишь "Особые разрешения".

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 12:11 16-10-2018 | Исправлено: farag, 12:42 16-10-2018
iNNOKENTIY21



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

Цитата:
Права есть на все, но формально на папку C:\Users\Public\Desktop у пользователя стоит галочки лишь "Особые разрешения".  

Поди из за того что скрытая C:\Users\Public\Desktop а если с -force

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 12:40 16-10-2018
farag



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

Цитата:
-force

Конечно, пробовал...

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 12:41 16-10-2018
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Надо бы добавить в шапку, а то затерялась в старом топике:
script.ps1
Скрипт для автоматического скачивания файлов по списку, с выводом прогресс-бара
 
Пример файла .csv :
soft.csv

Код:
"Source", "Destination"
;"http://amlpages.com/Source/pwdcrack.zip", ".\soft\pwdcrack.zip"
"http://azjio.ucoz.ru/file/TextReplace.7z", ".\soft\TextReplace.7z"
"http://download.directorymonitor.com/files/DirectoryMonitor2_Portable.zip", ".\soft\DirectoryMonitor2_Portable.zip"
"http://live.sysinternals.com/Files/SysinternalsSuite.zip", ".\soft\SysinternalsSuite.zip"

где в каждой, отдельной строке, должно быть указано:
Source - ссылка на скачиваемый файл.
Destination - относительный, либо абсолютный путь к локальному файлу (скачиваемый файл будет переименован именно в такое название).
- знак ";" или "#", указанные в начале строки, позволяют исключить ненужные строки из обработки.
 
батник для запуска:
run.bat

Код:
echo off
rem обязательный параметр:
if "%~1" equ "" (set "par1=soft.csv") else (set "par1=%~1")
rem необязательные параметры:
rem Второй параметр - ведение лога: 1 - да, 0 - нет; по умолчанию - 0
set "par2=%~2"
rem Третий параметр - переопределение файла, для записи лога; по умолчанию - log.txt
set "par3=%~3"
 
echo Выполняем...
rem powershell -nologo .\script.ps1 "%par1%" "%par2%" "%par3%"
pwsh .\script.ps1
echo Готово.
pause

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 13:22 16-10-2018 | Исправлено: YuS_2, 23:10 11-05-2020
Smitis



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

Цитата:
.\script.ps1

А если текущая папка не содержит скрипт?


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

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 19:50 16-10-2018
YuS_2



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

Цитата:
А если текущая папка не содержит скрипт?

Ну, это же очевидно, он не запустится.
и powershell выдаст ошибку, в которой будет всё написано.

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



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

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

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 20:33 16-10-2018
westlife



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую всех. Есть пара вопросов по PS, предложили мне сюда заглядывать, если будут трудности.
 
1. Проблема с доступом к WMI (настройке задач с ограниченным доступом) под локальным Impersonate. Так как WMI это не разрешает. Есть ли способ обхода разрешения?
на пример установить где-то доступ в реестре, типа этого для "удаленки" вроде этот:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wbem\Scripting\ "Default Impersonation Level"
То есть "законфигурировать" ее временно на доступ, где угодно.
 
2. Из-из первой проблемы. Есть хэш таблица с объектами (для примера CimInstance от New-ScheduledTaskAction).
Нужна идея как таблицу передать, сохранив объекты, во внешний файл, для возможности ее исполнения при запуске этого файла, так как отдельный процесс можно запустить под полноценными правами, и WMI это уже устраивает.  

Всего записей: 1390 | Зарегистр. 12-12-2006 | Отправлено: 23:15 19-10-2018 | Исправлено: westlife, 23:26 19-10-2018
YuS_2



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

Цитата:
Так как WMI это не разрешает. Есть ли способ обхода разрешения?

Не совсем понятно, что именно требуется... но:
вся система безопасности в WMI построена таким образом, чтобы с помощью утилит или сценариев WMI пользователь мог на определенной машине выполнить только те действия, на которые ему даны на ней разрешения.
А реестр вполне можно править, опять же в зависимости от уровня разрешений пользователя:
получить значения:

Код:
get-itemproperty hklm:\software\microsoft\wbem\scripting

установить значения:

Код:
set-itemproperty hklm:\software\microsoft\wbem\scripting -n 'Default Impersonation Level' -val 3

Или с чем именно возникла проблема?
 

Цитата:
Есть хэш таблица с объектами (для примера CimInstance от New-ScheduledTaskAction).Нужна идея как таблицу передать, сохранив объекты, во внешний файл

Тоже не отчетливо понял, что именно требуется, но если проблема c выводом таблицы в файл и последующим его чтением, возможно, это поможет:

Код:
$a = new-scheduledtaskaction -exe "notepad.exe"
$a
$a|export-csv out.csv
$b= import-csv out.csv
$b

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



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
westlife
2. Попробуйте Export-Clixml и потом Import-Clixml

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 09:18 20-10-2018
drol1



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Объясните (доступным языком) что происходит при запуске этого сценария: dir Cert:\LocalMachine\Root |% {$_.Verify()}, СПАСИБО

Всего записей: 33 | Зарегистр. 04-10-2008 | Отправлено: 10:28 20-10-2018
YuS_2



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

Цитата:
Попробуйте Export-Clixml и потом Import-Clixml

Кстати, да... это наиболее корректная работа с объектами, т.е. сохраняется даже тип и все свойства объекта.
т.о.:

Код:
$a = new-scheduledtaskaction -exe "notepad.exe"  
$a
$a.gettype()
 
$a|export-clixml out.xml
$b= import-clixml out.xml
$b
$b.gettype()

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 10:53 20-10-2018 | Исправлено: YuS_2, 10:56 20-10-2018
iNNOKENTIY21



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

Цитата:
Объясните (доступным языком) что происходит при запуске этого сценария: dir Cert:\LocalMachine\Root |% {$_.Verify()}, СПАСИБО

dir — показать содержимое директории (получаем один или много элементов или ничего)
| — результат предыдущей команды, передать следующей команде
% — % = ForEach-Object = цикл по элементам
{$_.Verify()} — блок скрипта, что будет сделано с каждым элементом из цикла
$_ — текущий элемент в цикле
.Verify() — метод/команда вызываемая для текущего элемента
 

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 11:26 20-10-2018
westlife



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

Цитата:
Или с чем именно возникла проблема?  

Простые задачи на подобии внесения параметров в реестр я понимал до того, как начал писать на PS. У меня тут все сложней сейчас.
WMI принимает Impersonate от удаленных машин, но локально он запрещает доступ под Impersonate, тут подробней о WMI и о чем я.
Думал есть ли способ локально заставить его принимать Impersonate. Может кто нашел решение уже когда то.
Такая ошибка под Impersonate:
Не удается подключиться к CIM-серверу. Клиенту не удалось получить доступ к ресурсу CIM.
С полноценными правами доступ дает.
В общем, для доступа к задаче WMI пропускает, если сменить права на файл задачи, но проблема была в том случае, если нет задачи нужной. Решение нашел через создание файла пустышки и назначение ему нужных прав, и WMI доступ дает на создание этой задачи, заменяется этот файл пустышка. По этому в этом плане универсальный способ обхода доступа нашёл. Только не такой красивый, как хотел.
Я ищу все возможные варианты, останавливаюсь на самом быстром и универсальном, универсальность на первом месте, то есть учет всех возможных вариантов заранее.
 
LevT

Цитата:
2. Попробуйте Export-Clixml и потом Import-Clixml  

Вот это самое оно! Благодарю.
Я не смотрел этот командлет, так как не хотел связываться с xml. И не думал, что они сделают это с помощью него, по названию то хрен догадаешься о чем он =). Сохраняет все специфические нюансы объекта, так, как если и не было экспорта импорта. В сложных случаях может пригодится.
 
 
 
 

Всего записей: 1390 | Зарегистр. 12-12-2006 | Отправлено: 13:32 20-10-2018
YuS_2



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

Цитата:
С полноценными правами доступ дает.

Ну так это ведь понятно... потому и привел цитату про систему безопасности в WMI...
Вот здесь только непонятно:

Цитата:
WMI принимает Impersonate от удаленных машин, но локально он запрещает доступ под Impersonate

Олицетворение выполняется также в соответствии с установками системы безопасности...
"Защита ресурсов WMI состоит в том, что CIMOM проверяет права пользователя, который пытается воспользоваться сервисами WMI на локальном или удаленном компьютере."
Т.е. нет разделения на локальный-удаленный, просто у клиента должны быть права на выполнение операции...
В общем, если, всё же, я не понимаю о чем речь, то лучше на примерах показать где загвоздка... чтобы более предметно говорить.
 
Добавлено:

Цитата:
Вот это самое оно! Благодарю.

Вот я и говорю, что это чаще обоюдно полезно, ибо "вариться в собственном соку" всегда сложнее...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 15:19 20-10-2018 | Исправлено: YuS_2, 15:21 20-10-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