3 административных скрипта

Комментарии (3)

  • 4 мая 2017 в 09:10

    0

    Более-менее полезно выглядит только по почтовым ящикам. Остальное — практически неработоспособное решение. Мало того, что «запускать с домена» (что это? с КД запускать чтоли?), так и куча недоработок, которые суммарно не позволят это использовать. Про смену шлюза через доменный скрипт вовсе промолчу — неужто хочется в случае ошибок бегать и менять настройки на сотнях-тысячах компах?
    Подробнее могу про первый подсказать:
    1. Нет смысла собирать информацию с компьютеров, без сброса её в какую-либо базу, или хотя бы текстовый файл. Компьютер может быть выключен, и информации по нему не будет. Поэтому, правильнее сделать список ПК в файле, и периодически прогонять скрипт, пополняя файл данными (ну или базу, если есть).
    2. Нет никакой обработки ошибок. У меня используется подобный скрипт, правда запускаю на своём ПК (учётка имеет адм.права на всех ПК из списка). Так вот, при более чем 3-летней эксплуатации и постоянного «допиливания» выяснилось, что компьютер может быть выключен (нужно периодически опрашивать и дозаписывать отсутствующие данные в файл или базу), на компьютере может не работать WMI (это серьёзные проблемы, и нужно решать, для этого ошибки отлавливать и записывать в лог), на компьютере может даже не работать RPC (при доступности по пингу), и до компьютера могут быть перекрыты какие-либо порты на сетевом оборудовании. Да и много других может быть ошибок, и в некоторых случаях они будут критическими, и скрипт не отработает как надо или запишет в базу мусор. Поэтому используем $ErrorActionPreference, trap и в нужных случаях меняем поведение при обработке.
    3. Мелочь, но: ненужные данные зачем собирать? К примеру, объект $disk будет содержать и всякие картридеры, встроенную память на принтерах, подключенные флешки и прочее. Как минимум можно сделать что-то типа if ($disk.mediatype.Contains («Fixed») -and ($disk.Size -gt 0)). К тому же объект $disk может оказаться массивом (дисков несколько), и DiskName=$disk.Caption даст ошибку, их нужно всегда перебирать в цикле foreach. (это же и процессоров касается). Да и вместо caption диска лучше взять model (если нужны всё-таки fixed диски).

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

  • 4 мая 2017 в 09:40

    0

    обычно перед использованием таких штук надо подумать

    вы кстати как WMI включаете через политики?

  • 4 мая 2017 в 09:49

    +1

    1. Лучше в логон скрипты запихать и логировать в тот же файл.
    2. Тоже самое.
    3. три команды выпелено в большущий скрипт. В Гет-маилбоксес добавте анлимитед.

    В сотый миллиардный раз одно и тоже, ScriptCenter вам в помощь, там уже по 10 раз в любых вариациях все
    написано.

© Habrahabr.ru