Какая ваша любимая команда или скрипт Powershell для системного администрирования? [закрыто]

16

Какая ваша главная команда Powershell? Давайте составим список и проголосуем за лучших!

Джон Галлоуэй
источник
@Jon: ты имел в виду "командлет"?
dance2die
Должен быть помечен как субъективный
halr9000

Ответы:

13

Get-Member - король командлетов PowerShell.

Get-Member позволяет в интерактивном режиме исследовать статические элементы «члены и типы» объектов (с ключом -static).

Стивен Муравски
источник
5

Мне нравится иметь скрипт для поиска пользователей AD:

$strFilter = "(&(objectCategory=User)(sAMAccountName=[USERNAME]))";
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher;
$objSearcher.SearchRoot = "LDAP://dc=[AD_Location]";
$objSearcher.Filter = $strFilter;
$objSearcher.SearchScope = "Subtree";
$objSearcher.FindALL()
Eldila
источник
2
Это можно сделать в одну строку с помощью командлетов Quest AD - они бесплатны и очень полезны! quest.com/activeroles-server/arms.aspx
Даг Чейз
Также см. Blogs.msdn.com/adpowershell/default.aspx !
Даг Чейз
1
@Doug Chase Да, это бесплатно, но некоторые организации не разрешают вам использовать неутвержденное программное обеспечение, с очень плохими сроками подготовки к утверждению материала, но сценарии, которые вы пишете сами, мгновенно доступны.
Орихара
1
Если кто-то увидит это сейчас и сочтет, что это хороший сценарий, если у вас установлены инструменты RSAT, вы можете сделать это с помощью одной строки в Powershell 2.0: Get-ADUser -filter 'Name -like "*"'(заменить «фильтр» на что угодно)
Марк Хендерсон
3

Я должен идти с помощью помощи. Этот командлет является ключом к поиску функциональности других командлетов. Близкая секунда была бы получателем.

Маркус
источник
2

На данный момент я большой поклонник Get-WMIObject.

Тим Беннингхофф
источник
2

«Test-Path» - это полезно для проверки, если данные уже есть или нужно добавить значение по умолчанию.

Brandan
источник
1

Для меня -WhatIf является наиболее полезным.

Трэвис
источник
-1: -Whatif это не командлет, а опция командлета.
dance2die
1
он просто указал «команду», а не командлет
Трэвис
1

CD (Change-Location) - я могу перемещаться по реестру, как будто это файловая система. в основном вы можете сделать это для всех провайдеров PowerShell (возвращается Get-PSProviders)

cd HKLM:\
dance2die
источник
1

Без вопросов - Get-Member. Я не могу представить себе сеанс PowerShell без его использования. Обнаружение - одна из самых сильных функций Windows PowerShell.

Александар
источник
1

Это больше техника, чем конкретный командлет или функция, но моя любимая вещь PS - это создание объектов:

$foo=""|select bar, baz, gronk|ft

дает тебе

bar   baz   gronk
----- ----- ------

что удобно для превращения неструктурированных данных в набор объектов для дальнейшей обработки.

user2278
источник
1

Один из любимых:

Get-Content "c: \ logfile.log" -wait

PowerShell-версия файла журнала 'tail -f'

SlinkingAnt
источник
1
Это не похоже на работу для меня. Я запустил эту команду для файла CSV, в который другая команда powershell записывала данные, и он не отображал обновления файла по мере его изменения, а отображал только те строки файла, какими они были, когда я выполнил команду, а затем просто завис в ожидании CTRL + Break.
Крис Магнусон
1

Я вижу, что Get-Member в списке, что я должен согласиться, является лучшим, но почти и столь же необходимым для меня является:

Format-List

Я чаще всего использую это после канала, чтобы показать мне все значения свойств объекта:

$SomeObject | fl *

GM расскажет вам, что это за объект, и перечислит имена и типы его свойств, но чаще всего это не поможет вам по-настоящему понять, как эти свойства используются, без поиска документации, которая может быть утомительной.

$SomeObject | Format-List * выведет все значения свойств, доступных для объекта, чтобы вы могли увидеть их текущие значения и начать поиск свойств, которые вы хотите выбрать или использовать для фильтрации объектов.

Я часто обнаруживаю, что у объекта есть несколько свойств, которые на основании документации выглядят так, как будто у них есть данные, которые я хочу, но в действительности только одно из свойств имеет данные, или данные в одном из них совсем не соответствуют ожиданиям, основанным на документация одна.

Крис Магнусон
источник
0

В дополнение к Get-Member, я бы сказал, Add-Member и New-Object, которые дают вам возможность использовать систему расширяемых типов.

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

Энди Шнайдер
источник