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

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

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

KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Старые и смежные темы: по CMD и в Программах | по PowerShell | В помощь системному администратору | Прикладное программирование

PowerShell
Версии | Ассоциация и подпись сценариев
Сценарий для ассоциации файлов PowerShell и запуска неподписанных скриптов.
 
Прочее
  • Если используете "белый список" в брандмауэре Windows, то для работы сценариев в сети необходимо создать 2 исходящих правила для svchost.exe и PowerShell.exe.
  • В отличие от батников, кодировка скриптов на PowerShell должна быть 1251 (ANSI). Начиная с версии PowerShell Core 6.0, кодировка по умолчанию UTF8NoBOM.
Расширение возможностей
Функции
Write-Color
Output-DebugString
Провайдеры
Готовые скрипты
Ошибки и предупреждения в журнале событий по электронной почте (в4.0)
Преобразование алиасов в скриптах к полным командам.
Получение детализированной информации из файлов.
Скачивание файлов по списку из файла .csv, ведение лога
Компиляция страниц html сохранённых из браузера в chm
 
Полезные ссылки | Будет ли репозиторий PowerShell на ru-board?

Cmd
Для перекодирования кирилицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы
 
Готовые решения и частые вопросы
 
Описания работы команд и символов участниками темы:
setlocal enabledelayedexpansion и переменные окружения
символы & и && в командной строке
Переменная %0
 
Полезные ссылки и утилиты

WSH (VBScript, JScript)
Программирование "удобняшек" на VBScript

Примечания:
• Большие куски кода заключайте в тэг [ more ]
• Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте код без пробелов иначе сценарий может работать неправильно. Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
• Сторонние консольные утилиты можно использовать только в виде готового решения и только в рамках сценариев. Никаких обсуждений и обучений работе с утилитами не предусмотрено и прямо запрещено правилами топика.
Шапка и около-темные вопросы |

Всего записей: 7634 | Зарегистр. 12-10-2001 | Отправлено: 13:40 17-02-2018 | Исправлено: m00slim25, 22:28 01-11-2018
YuS_2



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

Цитата:
Все работает ровно до того, когда имеется ПК с 1 диском, разбитым на 2.

А в каких случаях не работает?  
Кроме того, надо сформулировать конечную идею, причем наиболее полно. Тогда будет легче реализовывать...
Т.е. возможные конфигурации дисков:
1 диск - 1 раздел
2 диска по 1 разделу
2 диска -  1 диск с двумя разделами, где 1 раздел системный, активный, загрузочный и 1 дополнительный
 
и т.д.
проще всего, для проверки сделать так:

Код:
 get-disk|get-partition|ft DiskNumber,PartitionNumber,DriveLetter,IsActive,IsBoot,IsSystem,MbrType -auto  -wrap

получим примерно это:

Цитата:
DiskNumber PartitionNumber DriveLetter IsActive IsBoot IsSystem MbrType
---------- --------------- ----------- -------- ------ -------- -------
         1               1           E     True  False    False      11
         0               1                 True  False     True       7
         0               2           C    False   True    False       7
         0               3           D    False  False    False       7

Всего записей: 2227 | Зарегистр. 03-02-2009 | Отправлено: 13:00 12-02-2019 | Исправлено: YuS_2, 13:18 12-02-2019
farag



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Идея в том, что запустив скрипт на новом ПК, не думать, на каком диске создавать папки Загрузки и Документы.

Всего записей: 673 | Зарегистр. 27-07-2009 | Отправлено: 13:27 12-02-2019
YuS_2



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

Цитата:
Идея в том

Вообще-то, идеей можно назвать "Хочу всё автоматизировать"
Вот, только по такой идее алгоритмы построить оооочень непросто...
 
Для тестов дисков, в таблицу добавлено поле Размер:

Код:
get-disk|get-partition|ft DiskNumber,PartitionNumber,DriveLetter,IsActive,IsBoot,IsSystem,@{Label="Size"; Expression={'{0:n2} {1}' -f $(if($_.Size/1GB -gt 1){$_.Size/1GB;$a='GB'}else{$_.Size/1MB;$a='MB'}),$a}},MbrType -a -w

 
Добавлено:
farag

Цитата:
на новом ПК, не думать, на каком диске создавать папки Загрузки и Документы.

Вот тут надо составлять список вариантов конфигураций, потом уже учитывать как поступит человек при той или иной конфигурации дисков... а потом уже реализовывать алгоритм в код. Наоборот - не выйдет каменный цветок.

Всего записей: 2227 | Зарегистр. 03-02-2009 | Отправлено: 13:37 12-02-2019
LevT



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

Цитата:
Идея в том, что запустив скрипт на новом ПК, не думать, на каком диске создавать папки Загрузки и Документы.

 
Я тут пару раз по полмесяца боролся с последствиями аналогичной автоматизяции в одним модуле с гитхаба.
Разработчик наворотил изощрённую логику для выбора самого быстрого раздела для создания там лабораторных виртуалок из vhdx  (запускает winsat с параметрами и т.п) и очень ею горд. Относительно установленной буквы строятся пути, всё это записывается в конфиг и запускается процесс сборки лабы.  
Дело было задолго до моего появления... с тех пор модуль обновляется раз в пару месяцев, а логика эта кочует из версии в верию.
 
Мне вот она нахрен не нужна, а нужна наоборот определённость.
У меня например бывает UEFI ESP смонтирован буквой - и авторская машинерия норовит выбрать этот FAT32 раздел на SSD неминуемым дальнейшим обломом (но предварительно выжирает кучу моего времени).
 
Впоследствии обнаружился параметр, который позволяет отключить изврат и выбрать том вручную.
Но у автора противоположное мнение, чтО есть изврат - потому достижение автора документировано хорошо, а способ его отключить плохо.

Всего записей: 11204 | Зарегистр. 14-10-2001 | Отправлено: 14:03 12-02-2019 | Исправлено: LevT, 15:41 12-02-2019
farag



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Я остановился на всплывающем вопросе, какой диск использовать. А так да, все не автоматизируешь.

Всего записей: 673 | Зарегистр. 27-07-2009 | Отправлено: 14:15 12-02-2019
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
Любая автоматизация любой код основывается на некоторых допущениях.
Разумный автор ПРЕЖДЕ чем делиться своим кодом подумает о пользователе, у которого эти допущения не соблюдены.
 
 
Добавлено:
farag

Цитата:
Я остановился на всплывающем вопросе, какой диск использовать. А так да, все не автоматизируешь.

 
Я б попросил назначить определённую метку тома (только в случае если она не назначена раньше).
Зачем отказываться, если возможность их использовать дана даром вместе с ОС, проводником и файловыми менеджерами?
 
 
Добавлено:
И да, я подумал о тех, у кого всё завязано на эти метки, и они имеют свой смысл несовместимый с твоим.
Вот я например такой.
Узок круг их, и страшно далеки они от народа!

Всего записей: 11204 | Зарегистр. 14-10-2001 | Отправлено: 14:21 12-02-2019 | Исправлено: LevT, 14:44 12-02-2019
2as

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

Цитата:
Идея в том, что запустив скрипт на новом ПК, не думать, на каком диске создавать папки Загрузки и Документы.

а в ручном режиме Вы чем руководствуетесь при выборе диска (логического, на локальном компе? Или может быть диск сетевой/внешнийUSB & etc... )?
1. Для какой ОС (или семейства)?
2. Чем не устраивают стандартные (если речь идет о локальном HDD/SSD)?

Всего записей: 3311 | Зарегистр. 09-09-2003 | Отправлено: 14:49 12-02-2019 | Исправлено: 2as, 14:50 12-02-2019
farag



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2as
Если 1 диск, то скорее всего это SSD мелкий. Тогда в корне C можо папки создать.
Если 2 диска, то скорее всего SSD+HDD, и будем на HDD создавать.
Если 1 диск, разбитый на 2, то скорее всего это HDD, разбитый на 2.

Цитата:
1. Для какой ОС (или семейства)?  

Win 10 (8.1).

Цитата:
Чем не устраивают стандартные (если речь идет о локальном HDD/SSD)?

Не люблю, когда нужная папка (на считая ссылки на нее) находится в заднице: %userprofile%\Downloads, etc.

Всего записей: 673 | Зарегистр. 27-07-2009 | Отправлено: 14:56 12-02-2019
LevT



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

Всего записей: 11204 | Зарегистр. 14-10-2001 | Отправлено: 14:58 12-02-2019
YuS_2



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

Цитата:
Если 1 диск, то скорее всего это SSD мелкий. Тогда в корне C можо папки создать.  
Если 2 диска, то скорее всего SSD+HDD, и будем на HDD создавать.  
Если 1 диск, разбитый на 2, то скорее всего это HDD, разбитый на 2.

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

Код:
get-disk|?{$_.isboot -eq $true -and $_.numberofpartitions -gt 1}|get-partition

Т.е. загрузочные диски с одним разделом не рассматриваем, а если есть с двумя и более, то уже разбираем разделы и т.д.

Всего записей: 2227 | Зарегистр. 03-02-2009 | Отправлено: 15:10 12-02-2019 | Исправлено: YuS_2, 15:12 12-02-2019
dragovich01

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
слушать готов, конечно
 
LevT
фуфлокод нашел в инете, подкорректировал для себя как сумел)
Вы имеете ввиду что в том виде в котором я выложил код устарел и не надо идти тем путем?
 
 
$Computer = Get-ADComputer -Filter * | Where-Object { $_.enabled -eq $true }  
$Computer.name | Get-CimInstance win32_computersystem -ea SilentlyContinue | Where Username -match User1
 
предложенный вами код вернул такую ошибку:
 
Get-CimInstance : WinRM не удается выполнить операцию Убедитесь, что имя компьютера указано правильно, компьютер доступен по сети, а в брандмауэре
 задано исключение для службы WinRM, которое разрешает доступ к этому компьютеру. По умолчанию исключение брандмауэра для WinRM для общедоступных  
профилей ограничивает доступ к удаленным компьютерам в той же локальной подсети.
строка:1 знак:18
+ $Computer.name | Get-CimInstance win32_computersystem <#-ea SilentlyContinue#> | ...
+                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : Ошибка подключения: (root\cimv2:win32_computersystem:String) [Get-CimInstance], CimException
    + FullyQualifiedErrorId : HRESULT 0x80338126,Microsoft.Management.Infrastructure.CimCmdlets.GetCimInstanceCommand
    + PSComputerName        :
 
это из-за того что служба WinRM не запущена? массово запустить пока нет возможности

Всего записей: 104 | Зарегистр. 03-09-2014 | Отправлено: 08:38 13-02-2019 | Исправлено: dragovich01, 10:13 13-02-2019
farag



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Спасибо за советы, но, наверное, останусь на варианте вбивать просто букву диска: слишком много разных ПК.

Всего записей: 673 | Зарегистр. 27-07-2009 | Отправлено: 10:28 13-02-2019
YuS_2



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

Цитата:
слишком много разных ПК.

Это да, все варианты предусмотреть сложно... тут, всё же, действительно, практичнее и главное надежнее, будет ручной выбор.

Всего записей: 2227 | Зарегистр. 03-02-2009 | Отправлено: 10:52 13-02-2019
2as

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

Цитата:
Не люблю, когда нужная папка (на считая ссылки на нее) находится в заднице: %userprofile%\Downloads, etc.

так это же можно решить ярлыками на рабочем столе. И реализация сценарием этого радикально проще )))

Всего записей: 3311 | Зарегистр. 09-09-2003 | Отправлено: 12:22 13-02-2019
LevT



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

Цитата:
это из-за того что служба WinRM не запущена?
 
 
ну да  
Без ремотинга повершел калека на костылях.
 
 

Цитата:
массово запустить пока нет возможности

 
https://www.dtonias.com/enable-powershell-remoting-group-policy/
Мешают злые "безопасники" - или сами опасаетесь?  
 
Ну нету причин его не включать, кроме самопризнания админов "мы блондинки".
Это как с безопасностью на основе блокирования ICMP-ответов: для любителей садомазо самое оно
 
 
Добавлено:
dragovich01

Цитата:
Вы имеете ввиду что в том виде в котором я выложил код устарел и не надо идти тем путем?  

 
Ну можно вернуться к использованию WMI - но вообще-то обеспечить работу RPC в среднестатистической корп. сети значительно геморройнее чем работу Wsman
Трудно поверить, что у вас все пингуемые клиенты доступны для WMI вызовов: обычно без специальных усилий с этим лотерея.
Оттого и тормоза возможны.

Всего записей: 11204 | Зарегистр. 14-10-2001 | Отправлено: 13:46 13-02-2019 | Исправлено: LevT, 15:03 13-02-2019
dragovich01

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

Цитата:
Мешают злые "безопасники" - или сами опасаетесь?

типа того) недавно я в компании, доступа до контроллера AD не имею. надо будет договариваться со старшим админом)
 
и на этом спасибо)

Всего записей: 104 | Зарегистр. 03-09-2014 | Отправлено: 04:59 14-02-2019
Tiikker

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня в системной папке Temp (обе переменные объединены в одну) какая-то софтинка гадит, создаёт уйму подпапок с именами tw-*.* - до полутысячи штук.. ) Надоело мне это, написал простой батник, может, кому и пригодится:
 
@echo off
for /d %%i in (Z:\Temp\tw-*.*) do rd /s /q %%i
 
... батник поставил исполняемым в задачи при загрузке Винды. Теперь Темп у меня чистенький )
 
Z - это у меня отдельный хард под временные файлы. Исправляйте по своим путям.

----------
Ех. http://forum.ru-board.com/profile.cgi?action=show&member=Uncle%20KILLER

Всего записей: 387 | Зарегистр. 05-06-2018 | Отправлено: 11:53 14-02-2019
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tiikker
 
PS>  'D:\Temp\tw*' | Remove-Item -Recurse
 
А лучше б посмотрел кто гадит, руссиновичем.

Всего записей: 11204 | Зарегистр. 14-10-2001 | Отправлено: 12:41 14-02-2019
Death_INN

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Get-WinEvent -Path 'C:\Windows\System32\Winevt\Logs\Microsoft-Windows-Diagnostics-Performance%4Operational.evtx' | Where-Object {$_.ID -eq "100"} | Format-List
 
Требуется вывести 20 событий с ID 100 в виде таблицы со столбцами: ID, Date, Time и столбец с длительностью загрузки.

Всего записей: 1508 | Зарегистр. 24-10-2002 | Отправлено: 12:38 15-02-2019 | Исправлено: Death_INN, 12:40 15-02-2019
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Death_INN
 
Format-List выводит только избранные свойства объекта
Можно добавить *, чтобы ознакомиться с полным их списком

Всего записей: 11204 | Зарегистр. 14-10-2001 | Отправлено: 13:04 15-02-2019
Открыть новую тему     Написать ответ в эту тему

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

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru

Рейтинг.ru