Яка ваша найкраща команда Powershell? Давайте складемо список і проголосуємо за найкращих!
Яка ваша найкраща команда Powershell? Давайте складемо список і проголосуємо за найкращих!
Відповіді:
Get-Member - король командлетів PowerShell.
Get-Member дозволяє вам інтерактивно досліджувати статичні члени та типи об’єктів (за допомогою -статичного перемикача).
Мені подобається створити сценарій пошуку користувачів 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()
Get-ADUser -filter 'Name -like "*"'
(замініть "фільтр" будь-яким)
На даний момент я великий фанат Get-WMIObject.
Це скоріше техніка, ніж певний командлет або функція, але моєю улюбленою річчю PS є побудова об'єктів:
$foo=""|select bar, baz, gronk|ft
дає тобі
bar baz gronk
----- ----- ------
що зручно для перетворення неструктурованих даних у набір об’єктів для подальшої обробки.
Один із моїх улюблених:
Get-Content "c: \ logfile.log" -зачекайте
Версія повноважень журналу 'tail -f'
Я бачу в списку Get-Member, який, мабуть погодитись, найкращий, але найближчий і не менш необхідний для мене другий:
Format-List
Те, як я частіше це використовую, - це після того, як труба показує мені всі значення властивостей об'єкта:
$SomeObject | fl *
GM розповість вам, що таке об'єкт, і перелічить назви та типи його властивостей, але частіше за все це не допоможе вам зрозуміти спосіб використання цих властивостей, не шукаючи документації, яка може бути нудною.
$SomeObject | Format-List *
виведе всі значення властивостей, наявних на об'єкті, щоб ви могли побачити, які їх поточні значення, і почати шукати властивості, які ви хочете вибрати або використовувати для фільтрації об'єктів.
Я часто виявляю, що об’єкт має декілька властивостей, які на основі документації виглядають так, що вони мають потрібні мені дані, але насправді лише одна властивість має дані, або дані в одному з них - це зовсім не те, чого ви очікували на основі документація одна.
Я зробив лише невеликий метод, який я додав до свого профілю. Дивіться http://blog.keystroke.ch/2007/08/30/diskusage-in-powershell/ .
diskusage myserver
це моя краща команда.
На додаток до Get-Member, я повинен би сказати Add-Member та New-Object, які дають вам можливість використовувати розширювану систему типів.
Можливість додати членів до будь-якого об’єкта в будь-який час дозволяє отримати точну інформацію, яка вам потрібна, з можливістю сортувати її, згрупувати її, нарізати її, нарізати кубиками, експортувати, або все, що ви хочете робити з нею.