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

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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ipmanyak, спасибо за комментарий
Цитата:
WMIC nicconfig WHERE "IPEnabled = true" GET IPAddress /FORMAT:value  
Это я ещё тогда попробовал и т.к. было глухо - написал в тред.
Цитата:
wmic nicconfig where index="4" get ipaddress
Глухо в общем. Посмотрел список, взял индекс последний записи (58) и прогнал через for
Код:
for /L %t in (0,1,58) do wmic nicconfig where index="%t" get ipaddress
и получил среди пустых значений только то, что ранее выдавалось через
Цитата:
WMIC nicconfig WHERE "IPEnabled = true" GET IPAddress /FORMAT:value  

Всего записей: 2080 | Зарегистр. 19-09-2011 | Отправлено: 08:52 20-09-2021
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Быстрая настройка Windows (рабочее место)
fly_indiz
Цитата:
А можно ли сделать так, чтобы при запуске powershell-а (желательно независимо - открывается ли просто powershell.exe из пуска или запускается какой-либо скрипт) автоматом исполнялся короткий подготовительный скрипт?

о профилях - PowerShell | Microsoft Docs

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 08:48 23-09-2021
Linksach



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
нужно  в этом текстовом документе через батник или программу какую удалить в конце названия программ точку с rar  
.rar,
https://transfiles.ru/3o176

Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 11:13 12-10-2021 | Исправлено: Linksach, 11:15 12-10-2021
BorlandIMHO

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

Код:
for /F "delims=" %A in (123.txt) do 1>>123_norar.txt echo %~nA

Если будете совать в скрипт - не забудьте % удвоить...

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

Всего записей: 2388 | Зарегистр. 12-10-2006 | Отправлено: 11:52 12-10-2021
cl85

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может кто поможет.
Ссылка на пост, чтоб не повторяться.

Всего записей: 408 | Зарегистр. 26-10-2005 | Отправлено: 01:26 13-10-2021 | Исправлено: cl85, 01:26 13-10-2021
RemComm



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую.
 
Вопрос про PowerShell: Есть ли какой-то простой способ перенаправить STDOUT+STDERR в один файл (общий лог) и только STDERR в другой (лог только ошибок)?
 
Думал сделать на редиректах, но нет, повершел умеет только сливать потоки в &1. Т.е. 2>&1 3>&1 - работает, а 1>&2 падает с ошибкой. Вот тут-то я и затупил... Гуглевание совсем ничего не рассказывает...

Всего записей: 838 | Зарегистр. 30-09-2003 | Отправлено: 10:18 15-10-2021
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RemComm
 
Всё о редиректах именно в повершеле сказано тут https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_redirection
 
Можно ещё дёргать powershell.exe из другого процесса - и соотв. редиректить средствами того процесса.

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



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

Код:
$err = $($result = <команда>) 2>&1  

 
А дальше можешь ошибки в общий лог писать.

Всего записей: 2184 | Зарегистр. 17-11-2005 | Отправлено: 20:45 16-10-2021
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
----
 
Есть ноут подключённый вайфаем через микротик.
Железо вайфая в роутере жарким летом изощрённо поломалось: раз в час или в два-три часа клиент отваливается, да так что ничего в логах на микротике.
 
На винде десятке немногим лучше: Error 2505 - эта ошибка означает недоступность дефолтного гейта,  
 

Цитата:
The server could not bind to the transport \Device\NetBT_Tcpip_{1E30FBEF-2EA1-4F9D-98DE-78736FFA5241} because another computer on the network has the same name.  The server could not start.

 
аж четыре штуки подряд таких события вылазят, и больше опереться не на что:  
вайфай остаётся подключенным с т. зр. обоих и винды, и микротика.
 
---
 
При отвале интернета заодно дисконнектится клиентский VPN интерфейс с ноута в корп сетку (split horizon, то есть интернет не оттуда а напрямую).  
 
Посоветуйте алгоритм для детекта виндою этого состояния и переподключения (сначала вайфай, затем VPN).
 
Добавлено:
 
пробовал установить в 1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\EnableActiveProbing
 
то ли недошаманил, то ли это шаманство негодное и неподходящее.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 10:52 17-10-2021 | Исправлено: LevT, 10:59 17-10-2021
newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую!
Ваяю скриптик, для добавления пользователей в группу.
Столкнулся с некоторой загвоздкой.
бывают однофамильцы, из-за которых скрипт отрабатывает неправильно, по этому, хочу добавить условие и динамическое меню с выбором пользователя, если в переменной более одно пользователя.
Но пока не могу понять, как мне это реализовать...
 
сам скрипт:

Код:
 
$usrs = (Get-ADUser -SearchBase "Здесь полный путь до OU где искать" -Properties * -Filter *).SamAccountName
 
[array]$polz = $null
 
write-host "Для завершения цикла нужно ввести слово 'end' без кавычек"
# по хорошему, выход надо сделать прямо в условии цикла, но у меня не очень это получилось ))
while ($true){
    $word = Read-Host "Вводим имя пользователя"
    if ($word -eq 'end'){
        break
    }
    else
    {
        foreach ($us in $usrs){
            if ($us -match $word){
                if (если больше 1 результата для $us){
                    # то надо создать меню с выбором
                }
                else
                {
                    Write-Host "Добавляется пользователь - $us" -ForegroundColor Cyan
                    $polz += $us
                }
            }
        }
    }
}
 
foreach ($p in $polz){
    Add-AdGroupMember 'Нужная группа' $p
    set-aduser $p -replace @{msnpallowdialin=$true}
}
 

 
Как реализовать? Подскажите пожалуйста.

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 16:14 28-10-2021 | Исправлено: newhk, 16:52 28-10-2021
newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если бы это был Python, я бы в условии сделал $us.count >= 2
А в PowerShell не знаю как задать условие для данной задачи.

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 09:08 29-10-2021
YuS 2



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

Цитата:

Код:
# по хорошему, выход надо сделать прямо в условии цикла, но у меня не очень это получилось ))
while ($true){
    $word = Read-Host "Вводим имя пользователя"


Код:
$word = ""
while ($word -ne "end"){
    $word = Read-Host "Вводим имя пользователя"

 

Цитата:
бывают однофамильцы, из-за которых скрипт отрабатывает неправильно, по этому, хочу добавить условие и динамическое меню с выбором пользователя, если в переменной более одно пользователя.

Это уже не автоматизация...
У пользователей не может быть полного совпадения, должны быть отличающиеся характеристики... вот, по этим параметрам и надо производить сравнения. Там ведь (в переменной $usrs) можно хранить полные объекты с данными, а не только .SamAccountName
 
Добавлено:

Цитата:
Если бы это был Python, я бы в условии сделал $us.count >= 2

В powershell, в цикле foreach не может быть count итема больше единицы, т.к. там происходит поштучный разбор массива
 
Добавлено:
newhk

Цитата:
Если бы это был Python, я бы в условии сделал $us.count >= 2

Если таки хочется отбор делать исключительно по SamAccountName, то можно сделать, что-то типа:
Исправлено:
Исправил формирование массива пользователей, чтобы не дергать каждый раз в цикле Get-ADUser:

Код:
$usrs = Get-ADUser -SearchBase "Здесь полный путь до OU где искать" -Properties * -Filter *
$word = ""
while ($word -ne "end"){
    $word = Read-Host "Вводим имя пользователя"
    $us = $usrs|?{$_.SamAccountName -eq $word}
    if ($us.count -gt 1){
        <набор команд>
    }
}

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 09:39 29-10-2021 | Исправлено: YuS 2, 11:07 29-10-2021
newhk



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

Цитата:
Это уже не автоматизация...

Дело в том, что у пользователей есть определенные префиксы, которые не всегда запомнишь, а скрипт делал как раз для ускорения настройки пользователей.
Автоматизация заключается в том, что я ввожу только часть логина, а потом скрипт ищет соответствия и находит больше одного, если введено ivanov, например.
Вот здесь мне и нужно динамическое меню с выбором.

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 14:45 29-10-2021
YuS 2



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

Цитата:
Вот здесь мне и нужно динамическое меню с выбором.

Так я не понял, нужно само меню или конструкция для его запуска?
Если последнее, то последний пример, как раз подходит для него... <набор команд> - сюда надо прописать меню для выбора из массива нескольких пользователей.
 
Добавлено:

Цитата:
{$_.SamAccountName -eq $word}

- а здесь, можно написать условие вплоть до применения регэкспов, для выборки пользователей:

Код:
$us = $usrs|?{$_.SamAccountName -match $word}

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 17:05 29-10-2021
newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно, чтобы, при вводе ключевого слова, которое, за тем, помещается в переменную "$word", находился пользователь, слово может быть неполным, например "ivano" и оно должно найти одного пользователя ivanov(a) (Это пример, пользователь может быть и другим, но содержать искомое ключевое слово. Если больше одного, вот здесь и нужно меню с выбором)
То что я сделал, работает для одного пользователя, а если их несколько, то в переменную попадают сразу несколько пользователей, что неправильно.

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 09:00 01-11-2021 | Исправлено: newhk, 12:21 01-11-2021
Linksach



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите с батником очистки текущей папки от всех файлов(в основном это будут jpg,если это надо знать) кроме самого батника,находящегося в той же папке

Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 13:09 02-11-2021 | Исправлено: Linksach, 13:15 02-11-2021
KiloSub



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

Код:
@(for %%F in ("*") do if "%~nx0" neq "%%F" del /q "%%F") >nul 2>&1

или может так

Код:
@(for %%F in ("%~dp0*") do if "%~nx0" neq "%%~nxF" del /q "%%F") >nul 2>&1

Всего записей: 420 | Зарегистр. 30-05-2020 | Отправлено: 13:39 02-11-2021 | Исправлено: KiloSub, 14:12 02-11-2021
Linksach



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[q][/q]
 
Благодарю!и первый и второй варинты работают

Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 14:03 02-11-2021
KiloSub



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

Всего записей: 420 | Зарегистр. 30-05-2020 | Отправлено: 14:11 02-11-2021
YuS 2



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

Цитата:
Вот здесь мне и нужно динамическое меню с выбором.

Т.е. нужно таки меню...

Код:
$usrs = Get-ADUser -SearchBase "Здесь полный путь до OU где искать" -Properties * -Filter *
$word = ""
while ($word -ne "end"){
    $word = Read-Host "Вводим пользователя, уточните имя:"
    $us = $usrs|?{$_.SamAccountName -match $word}
    if ($us.count -gt 1){
        $us.SamAccountName
    } else {
        [array]$polz += $us
    }
}
...
 

- но это если SamAccountName - у всех уникальные. Если же есть по ним полные совпадения, то придется выводить дополнительную инфу из $us, для однозначной идентификации.
И не забываем, что при выходе из цикла while, в переменной $polz будет содержаться массив аккаунтов пользователей

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 15:13 02-11-2021 | Исправлено: YuS 2, 15:15 02-11-2021
Открыть новую тему     Написать ответ в эту тему

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