Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 11695|Відповідь: 1

Урок початку роботи з PowerShell — версія версії 0.3

[Копіювати посилання]
Опубліковано 19.04.2017 16:48:30 | | |


---------- Глава 1 Історія скриптів Windows --------------


1 Перше покоління script кажанів. Все почалося з win95, win98--------- і закінчилося приблизно у 2008 році. Функції: Команди, орієнтовані на символи, з командним рядком і конвеєром.
2 Скрипт другого покоління VBS. Функції: Лише функції, передачі значень, виклики.
3 Powershell третього покоління скриптів. Починаючи з 2012 року, командування повністю еволюціонувало до об'єктно-орієнтованого. Наприклад, tasklist і get-process — це повторювані характеристики колеса: об'єктно-орієнтовані. Успадковуючи переваги попередніх двох поколінь сценаріїв.



Питання: Чому варто вивчати PowerShell?
A:
Місіонер відповів, що навчатиметься один рік і п'ять років до BAT. Простий синтаксис і сильні бібліотечні функції!
Єдиний у світі, який підтримує об'єкти з командами з обох боків конвеєра. тобто об'єктно-орієнтована команда 1 | Об'єктно-орієнтована команда 2

Windows і Linux — це різні речі:
У скрипті PowerShell на Win,
Підтримуйте CR, LF, CRLF вход. Підтримка багатопоточності та багатопроцесної паралелізації.
Легко вбудувати [звук Text2], «Звіт капітану, диск заповнений».
Вбудувати графічний інтерфейс просто. (Коли спливаюче окно просить ввести ім'я користувача, пароль, одиночне вибір, множинне вибірання тощо.) Це заздрість скриптів Linux.

PowerShell відрізняється від Python:
У PowerShell легко використовувати китайську. Китайська назва письма, змінна назва, коментар. Китайські одинарні лапки, китайські подвійні лапки.
Автоматично розпізнає кодування GBK, UTF8, Unicode. Об'єкти підтримки конвеєрів, яким заздрять скрипти Python.



Простий приклад синтаксису 1: Магія одинарних і подвійних лапок у powershell.
Окремі лапки можна цитувати з подвійними лапками. І навпаки.
Окремі та подвійні лапки можна @引用 @''.
BAT не спрацював.


Місіонерський оповідач:
Я багато думав над дизайном туторіалу. Ви не читали, що частина про історію в тому, що я написав, була дуже [простою і грубою]? Історія несе одним ударом.
Але оскільки я це сказав, це не нісенітниця, я просто хочу, щоб студенти чітко дали зрозуміти, що з 2008 року [об'єктивація] сценаріїв стала популярною. Веде до наступного розділу об'єктно-орієнтованого пояснення.
У будь-якому вступному туторіалі для PS слід згадувати різницю між орієнтацією на персонажа та об'єктно-орієнтованою. Цілком доречно записати цю тему в історію командного рядка.

---------- Розділ 2 Чудовий -------------- об'єктно-орієнтованого
Що таке об'єкт, чому він орієнтований на об'єкт і чому Microsoft підсилює колесо?

Об'єктно-орієнтований приклад 1:
Питання: Я їм 2,2 яблука на день, скільки яблук я з'їдаю за 17 днів?
A:
Доступний розмір 2,2 x 17. Також можливо використовувати i++, підтримуваний будь-якою мовою скриптів.
для ($i = 1; $i -LT 18; $i++)
{
        $Apple = 2,2 + $Apple
        Write-host $i,$Apple
}

--------------------------------------------
Як тільки питання зміниться, я не скажу вам кількість днів, лише скажу,
Я їм 2,2 яблука на день, скільки яблук я їм з 20 січня по 20 червня 2017 року?
$days = ((get-date '2017-06-20') - (get-date '2017-01-20').днів #值151


Я їм 2,2 яблука на день, скільки яблук я їм з 20 січня по 20 червня 2020 року?
$days = ((get-date '2020-06-20') - (get-date '2020-01-20').days #值152

для ($i=(дата отримання '2020-01-20'); $i -LT (дата отримання '2020-06-20'); $i=$i.adddays(1))
{
        $Apple = 2,2 + $Apple
        Write-host $i,$Apple
}

Висновок: З об'єктом дати рахувати дні, години тощо просто. [for,,i++] — поширене, але я ніколи не думав, що число I може бути типом дати.

------------------------------------------



Які переваги об'єктно-орієнтованої програми?
До об'єктно-орієнтованого у нас були лише рядки та цілі числа.
1 Існує об'єкт.
----- [Тип персонажа]-----
Гліф має system.string, який є найпростішим.
Пам'ять System.Text.StringBuilder, часто змінювана, великі рядки

----- [Числовий тип]-----
system.int32, system.int64, system.decimal, system.double, System.Numerics.BigInteger infinite integ.
Зазвичай використовується int32, десяткова система.

Чи дорівнює 1/3*3 1 чи 0,9999, залежить від типу даних.
----- [Масив]-----
масив system.array
Масив system.arraylist часто змінюється, наприклад, завжди переписує, додаєш або видаляєш — це потрібно використовувати. Швидкість досить висока.
System.Collections.Generic.HashSet дедуплікувати масиви. Те саме, що й об'єкт множини в Python.

-----【Form】-----
1 командний вихід. Наприклад, dir, get-process.
2. Під час написання скриптів ми використовуємо об'єкти та атрибути для побудови.

----- [Інші] -----
хеш-таблиці, файли тощо.



2 має атрибути. Атрибути є аргументами і менші за рядки. Перш ніж зникнуть атрибути, потрібно відфільтрувати рядки за допомогою [регулярного для мозку], що називається [рядок дедукції]. Якщо у вас є атрибути, вони вам не потрібні.
3 Є спосіб. Метод — це програма, код. Немає потреби переписувати це самостійно. Bat точно не хороший, це неможливо, там також є особистий текст, ненадійний, не наважся його використовувати.
Методи можуть бути самонаписаними функціями ps, самонаписаними методами у класах ps.
Метод, який ви пишете самостійно, можна тимчасово [об'єднати] з стороннім курсом.
Метод, який ви пишете самостійно, можна тимчасово [об'єднати] з класом .net.

Які недоліки об'єктно-орієнтованої програми?
Проповідник навчає PowerShell тих, хто користується winxp. Людина сказала, що PowerShell — це погано, об'єкт занадто інтенсивний для пам'яті, і він правий.
У cmd я повертаю 100 імен файлів (рядків) з dir. У PowerShell я використовую dir для повернення 100 об'єктів файлів, і Powershell займає багато пам'яті.
Але зараз все інакше:
1. Непотрібний контент не повинен існувати у змінних. Або знищити його одразу після використання, щоб зменшити використання пам'яті.
2. Втрата пам'яті — це достатньо. Оскільки продуктивність процесора більше не може зростати, ми лихоманково збільшуємо пам'ять, намагаючись обміняти простір на час.
3. Ми хочемо більш потужні функції, і орієнтація на об'єкти зараз є найпростішою. Який не є об'єктно-орієнтованим, py, php, java, .net, c++?

Зведення:
1 Об'єкти більші та мають більшу кількість пам'яті, ніж рядки.
2. Існує більше методів для об'єктно-орієнтації та сильніших функцій.
3 атрибути менші за деталізацію рядків, що надзвичайно зручно у використанні. Уникав [божевільного використання звичайних мозкових фільтрів] струн!


=== Божевільне використання постійних гравців, які спалюють мозок, для фільтрації прикладів, кажан-версія стандартного шлюзу ping ===
@echo off&setlocal, enabledelayedexpansion
Ехо шукає стандартний шлюз...

для /f "usebackq delims=" %%i у ('ipconfig /all') do (
echo %%i|Знайти /i "Gateway">nul|| echo %%i|знайти "шлюз за замовчуванням" >nul
якщо "!errorlevel!" =="0" (
для /f "tokens=2 delims=:" %%a in ("%%i") do for /f "delims= " %%m in ("%%a") do set ipgate=%%m
)
)

Стандартний шлюз Echo: !ipgate!
=========== пінг на стандартний gateway.ps1============
$default шлюз = (get-netroute -DestinationPrefix 0.0.0.0/0). NextHop
& ping.exe $ Стандартний шлюз

# тест-з'єднання $ шлюз за замовчуванням
=======================






Питання: Навіть якщо об'єктно-орієнтована така хороша, звідки беруться ці об'єкти?
Відповідь: З бібліотеки .net.


---------- Розділ 3 Вступ до .NET --------------


Питання: Скільки версій гілок має .NET Core?
A:
Наразі існує три версії.
.NET 2.0 Остання версія .NET 3.51
.NET 4.0 Остання версія .NET 4.70
.NET Core 1.x Остання версія .NET 1.2 для систем Apple, Linux та вбудованих систем.
.NET Core 2.x Остання версія .NET 2.0 для систем Apple, Linux та вбудованих систем.



Питання: Скільки функціональних гілок має .net?
A:
Десктопна гілка в .NET. WinForm. Для розробки Windows для робочого столу.
Звукова бібліотека
asp.net у .NET та .NET Core. Бібліотека функцій веб-сервера. Раніше відкривав B/S веб-сервер.
F# у .NET та .NET Core. Містить математичні бібліотеки, бібліотеки тригонометричних функцій тощо.
PowerShell у .NET та .NET Core. Містить поширені інтерфейси управління системою, такі як скрипт-файли.
Linux
◦Ubuntu 14.04 \ 16.04
◦CentOS/RHEL 7 і вище
◦відкрити SSE 42 і вище
◦Arch Linux (archl inux не має номера версії)
◦LINUX docker-контейнер
◦Linux AppImage контейнер (портативний додаток з єдиним бінарним файлом) https://github.com/probonopd/AppImageKit



MAC OS X
◦OS X 10.11


Питання: Як .NET-програма (програма на C#) підключається до сервера MySQL?
A:
Перейдіть на офіційний сайт mysql, щоб завантажити конектор для мови .NET.
mysql-connector-net-6.9.9-noinstall.zip--->v4.5--->MySql.Data.dll
Додайте клас MySql.Data у .net і додайте інтерфейс бази даних.



Висновок:
Спочатку на машині WinXP встановіть .net 3.51, win7 і win2008, спочатку встановіть .net 4.62 або вище.

.NET існує вже багато років, і програмного забезпечення, яке підтримує .NET, не так вже й багато, як Java. Усі гілки, інтерфейси .net (бази даних, WeChat тощо). )
Ці dll, ці бібліотеки, powershell можна викликати. Він точно такий самий, як exe, написаний на C#.


Питання: Окрім інтерфейсу гілки .NET, які власні бібліотеки (модулі) є у PowerShell?
A:
Будь ласка, перегляньте наступний розділ

---------- Розділ 4 Зазвичай використовувалися вбудовані бібліотеки, зовнішні бібліотеки та сторонні бібліотеки в PowerShell --------------

Місіонерська допомога:
Цей розділ не можна обговорювати, це просто список бібліотек і посібників. Додайте цей розділ у закладки. Після перегляду цих бібліотек ви зрозумієте, що може робити PowerShell.



Ручна адреса WIN2012: (найчастіше використовуваний AD модуль)
https://technet.microsoft.com/zh-cn/library/dn249523(v=wps.630).aspx
Управління групами користувачів AD, DHCP, DNS, принтер, обмін файлами, IIS, диск, мережеві картки,



Exchange2016
https://technet.microsoft.com/zh-cn/library/bb124413.aspx
Active Directory 12         
Антиспам і антишкідливе ПЗ 59  
Клієнтський доступ 100
Агент розширення 4
Електронні адреси та адресні книги 37
Федерація та гібридна конфігурація  
Висока доступність  
Поштовий потік  
Поштова скринька  
База даних поштових скриньок  
Сервер поштової скриньки  
Переміщення та міграція  
Організація  
Дозволи  
Політика та відповідність  
Безпека  
Стан серверів, моніторинг і продуктивність  
Діліться та співпрацюйте  
Єдине повідомлення  
Користувачі та групи  



sqlserver2016
https://msdn.microsoft.com/zh-cn/library/hh245198.aspx



lync2015
https://technet.microsoft.com/zh-CN/library/gg398867.aspx




SharePoint2016
https://technet.microsoft.com/zh-cn/library/ff678226(v=office.16).aspx



Amazon Virtual Machines, AWS, Microsoft Virtual Machines, Azure, Hyper-V, VMware vSphere та віртуальні машини корпоративного рівня.


Клієнти:
Сервіси, процеси, журнали, реєстри, файлові каталоги, віддалене управління. Завдання з обмеженням часу.



Інтернет:
FTP, пошта, SSH-клієнтський плагін для підключення до сервера Linux.


Текст:
XML, HTML, CVS, JSON, EXCEL тощо.


Текст 2 голос


Графічний інтерфейс.


Microsoft Scripting Center
https://gallery.technet.microsoft.com/scrip{过滤}tcenter/


Офіційний сайт джерела програмного забезпечення PowerShell --- офіційна бібліотека PowerShell.
https://www.powershellgallery.com


Інші бібліотеки Niu x всі є на github. Крім того, місіонери регулярно публікують [Niu x Magic Weapon] [Hidden Foot Pavilion], який є корисною сторонньою бібліотекою PowerShell.


---------- Розділ 5 Початківці повинні навчитися допомагати у використанні команд--------------


Питання: Як я знаю версію для PowerShell?
A:
$PSVersionTable



Питання: Я не знаю модуль, як його знайти?
A:
get-module -ListAvailable


Питання: Як знайти команди, якщо я знаю лише частину їх?
A:
get-command *service*



Питання: Я знаю команду, але не знаю, які параметри містяться в команді, як їх перелічити?
A:
get-help write-host -Parameter *
show-command write-host


Питання: Я знаю параметр, але не знаю, яка команда має цей параметр, як знайти цю команду?
A:
get-command -ParameterName кодування



Питання: Як отримати допомогу з командою з командного рядка?
A:
Отримання допомоги — побачення

-Приклади команд, приклади
-онлайн-посібник




Питання: Я не знаю метод атрибуту команди (не знаю об'єкта), як його знайти?
A:
"ABC" | GET-член
get-date | GET-член



Питання: Де знаходиться китайський посібник .NET?
A:
msdn。 Найпростіші властивості та методи струн наведені в інструкції.
https://msdn.microsoft.com/zh-cn/library/system.string.aspx



---------- Розділ 6 Вступ до поширених команд --------------

Перша команда для вивчення — dir
Питання: Чому використовувати PowerShell dir [тобто Get-ChildItem] замість cmd dir?
A:
Об'єктно-орієнтований, сильний метод і багато якостей.
$file = директор A:\pscode\temp183\aaa.txt
$file. Повне ім'я #返回全路径属性
$file. BaseName #返回文件名属性
$file. Розширення #返回扩展名属性
$file. LastWriteTime #返回最后写入时间属性



Першим синтаксисом для вивчення є синтаксис масивів. $a = @(xxx команда)
Питання: Іноді доводиться використовувати [зовнішні команди на основі символів], щоб розділити повернені значення на масиви за поведінковими одиницями.
A:
$a = @(ipconfig)
$a[8] #第9行


Використання get-childitems:
Додані параметри у PowerShell 3.0 і вище

get-childitem d:\xxx -файл #过滤, лише вихідні файли
-Фільтрація каталогів, каталоги лише для виводу
-Приховане фільтрування, прихований лише вихід


Питання: Відкрити файл, сегментувати за поведінкою, помістити в масив?
A:
$a = Get-Content a:\pscode\temp183\aaa.txt -ReadCount 0



Питання: Відкрити файл у вигляді великого рядка і зберегти всю змінну?
A:
$a = Get-Content a:\pscode\temp183\aaa.txt -raw


$a,$b,$c = 1,2,3


Питання: Як виконувати команди у фоновому режимі?
A:
У давнину існувала команда cmd /c.
Тепер існує powershell /c «команда», або powershell -c «команда»,
powershell -файл "script.ps1" -аргумент 1 aaaa -параметр 2 1234
start-process -path xxx.exe -ArgumentList '-parameter1 aaaa -parameter2 1234'


Питання: Я хочу запустити скрипт з іншим локальним користувачем, але в PowerShell немає runas. Подібні команди в exe?
A:
У PowerShell є різні сесії.
IP + порт + ім'я користувача + пароль = сесія, мені потрібно лише змінити ім'я користувача, змінити пароль, і ви можете змінити прави. Тому що дозволи прив'язані до користувача.
Аналогічно, мені потрібно створити лише n сесій для використання, не змінюючи користувачів.
Найважливіша new-pssession має параметр -Credential, введіть пароль користувача, який не є тим самим, що runas. Чи exe — це те саме? Що ще таке SmbSession?
Тому я не вважаю необхідним використовувати руни в PowerShell. exe。
Вам просто потрібно використовувати ці команди з сесією та обліковими даними, так?

Перевірте команди з назвою [Credential] у назві параметра:
get-command -ParameterName Credential

Перегляньте команди з символом [session] у команді:
get-command *session*


Питання: Як надіслати електронного листа через PowerShell?
A:
Відправити повідомлення -Тема 'Тема'
-Від «ваш обліковий запис hotmail @hotmail.com» -До «вашої QQ електронної пошти @qq.com»
-SmtpServer "smtp.live.com" -port 587 -useSsl -credential "ваш обліковий запис hotmail @hotmail.com" '
-Вкладення $Attachments -BodyAsHTML -тіло $HTML зміст листа

Примітка:
1 застосуванняxxx@QQ.com+ Ваш пароль QQ + наведена вище команда Відправлення листа не працює. Тому що для безпеки паролів QQ Tencent вимагає незалежних паролів від електронної пошти.  
2 Відправка з поштової скриньки QQ за замовчуванням неможлива. Він вимкнений, і потрібно увімкнути SMTP у налаштуваннях.
3 PowerShell 3.0 і вище підтримують лише параметри портів. Для win7 спочатку потрібно встановити останню версію PS




Питання: Моніторинг Win, процесор, диск, мережу, вихід тощо.
A:
Монітор продуктивності або
Get-Counter отримує дані лічильника продуктивності як з локальних, так і з віддалених комп'ютерів.

Питання: Як я можу побачити, які контрпредмети доступні?
A:
Все це прописано в інструкції.
Перевірте, які основні категорії застосування:
Get-Counter -ListSet * | Sort-Object CounterSetName | Format-Table CounterSetName


Наприклад, тепер я знаю, що категорія диска — (PhysicalDisk), а потім перевіряю підкатегорії на диску, використовуйте:
(Get-Counter -ListSet PhysicalDisk). Маршрути




Питання: Як переглянути журнали?
A:
Переглядач події, або
get-eventlog



Питання: Як виконати рядки?
A:
$cmd 1 = 'xxxx'
Виклик-експресія $cmd 1


Ми багато чого дізналися про окремі команди, давайте подивимось на виконання скриптів Powershell.


---------- Розділ 7 Скрипти, налагодження та запуск -------------- для PS1
Скрипт — це комбінація та накладання командних операторів. Сценарій — це клей: ходити шукати інших, щоб зателефонувати, шукати колеса для складання машини. Замість того, щоб робити колеса для інших.



Кайняо запитав: Як написати сценарій?
Старий птах відповів:
1 Деталі проблеми мають бути уточнені. Наприклад: зробити місячні торти.
2 Ідеї для розв'язання проблем також фактично завершені. Борошно і вода, насипаємо начинку, паруйте.
3 Які команди та змінні використовувати. Додайте п'ять зерен, покладіть їх у форму і вижавте.
4 Спочатку пишіть приблизно, пишіть приблизно.
5 Налагодження пройшло.
6 Пишіть детально. Розглянемо ситуацію з помилкою, а також код помилки, повідомлення про помилку. Видаліть код, схильний до помилок, який важко сумісний. Перепишіть код, який працює погано.
До цього моменту хороший сценарій може виглядати не дуже добре, але він має бути дуже корисним.
7 Майстерно зроблено. Рефакторинг, запис повторно використаних фрагментів коду у функції. Перепишіть назви змінних, щоб люди могли зрозуміти їх з першого погляду. Добре відформатуйте код і зробіть відступи.


Питання: Яке IDE використовується для написання PS1?
A:
Найбільш рекомендовано використовувати Visual Studio Code та плагін PowerShell.
Функції: кодові підказки, автозаповнення, форматування коду, відступи для вибору пробілу або вкладки, налаштування кодування файлів.
Існує плагін FTP-sync, який може писати скрипти PS1 у Windows VSCode і автоматично синхронізувати їх з каталогом Linux при збереженні.



Питання: Які інструменти використовуються для налагодження PS1?
A:
Найбільш рекомендований powergui life не використовує локомотив, навіть якщо це герой, скрипт PS також стрибне і повідомляє про помилку!
VSCODE теж нормальний



Питання: Які інструменти ви використовуєте для форматування коду?
A:
Все, що має бути втиснуте, має вм'ятину, а знаки рівності вирівняні.

Плагін PowerShell ISE + ISE [ISESteroids]

Інсталяція:
Install-Module -Name ISESteroids

Пробіги ISE:
Старт-стероїди





Питання: Якими інструментами ви користуєтеся, щоб зробити колір коду красивим?
A:
1 Використовуйте наведені вище інструменти для форматування коду.
2 Використовуйте PowerShellise + місіонерське DIY кольорове підбор видання 2016 року.
3 Візьміть фото. Виробляється найприємніший і найкрасивіший у світі код PowerShell.

Усі вищезазначені IDE написані китайською.




Питання: Як назвати сценарій? xxx.ps1
A:
Рекомендується починати з 1---2 літер, а решту використовувати китайську назву файлу. тобто, [хлопець резервує всі старі files_ і видалить .ps1 з 10 днів тому]
Таким чином, спочатку введіть [bf], а потім натисніть Tab, щоб завершити назву скрипту.




Питання: Як увімкнути дозвіл на виконання скриптів у PowerShell?
A:
echo Наступний код може запускатися в cmd з правами адміністратора або в PowerShell з правами адміністратора.
Echo, якщо використовую пульт PowerShell Remoting Remote. І локальна, і віддалена машина мають працювати з правами адміністратора.
"C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -команда "Set-ExecutionPolicy -ExecutionPolicy без обмежень"
"C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -команда "Set-ExecutionPolicy -ExecutionPolicy без обмежень"
& "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -команда "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
& "C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -команда "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
Пауза



Питання: Які недоліки локомотива (powergui)?
A:
Не вдається встановити колір фону.




Питання: Які недоліки vscode?
A:
$ і назва змінної не мають однакового кольору.
Функції налагодження працюють повільно і іноді заблоковані в глухому сітку.




Питання: Які недоліки має ISE?
A:
Ви не можете обрати збереження чи конвертацію кодування.
Відступ у [пробіл], [вкладка] обидва. В іншому програмному забезпеченні для редагування тексту відступи відображаються.




---------- Розділ 8 Справжня бойова підготовка --------------
Група 6504748 і написала цю частину самостійно.

5. Приклад 1: Увімкніть і вимкніть сервіс
6. Приклад 2: Керування міжмережевим екраном (Відкриття, Закриття, Правило)
7. Приклад 3: Встановіть політику (наприклад, політика паролів)



---------- Розділ 9 Ці додаткові вибіркові курси вас цікавлять? --------------
Скрипт PowerShell, аргументи командного рядка, передають значення та приклади зв'язків змінних
http://www.cnblogs.com/piapia/p/5910255.html




Нехай powershell запускає лише один скрипт одночасно (приклад взаємного виключення процесу)
http://www.cnblogs.com/piapia/p/5647205.html



Інтерфейс персонажа powershell, інтерфейс powershell плюс WPF, гра 2048
http://www.cnblogs.com/piapia/p/5531945.html


Два краулери в PowerShell
http://www.cnblogs.com/piapia/p/5367556.html



Скрипт PowerShell: генератор випадкових паролів
http://www.cnblogs.com/piapia/p/5184114.html



Приклад рекурсивного алгоритму PowerShell
http://www.cnblogs.com/piapia/archive/2013/01/29/2881011.html



Калькулятор голосу PowerShell
http://www.cnblogs.com/piapia/archive/2012/10/20/2731506.html



1 Перелічити всі файли, зашифровані EFS. 2Розшифруйте всі файли, зашифровані EFS,
http://www.cnblogs.com/piapia/p/4702514.html
Це інструмент, створений для системних адміністраторів і мережевих адміністраторів.
Після того, як працівник залишає роботу, його диск припускає, що існує 10 000 файлів (каталогів), з яких 3 файли зашифровані EFS. У Explorer ці три файли зелені.
Але якщо ви натискатимете на (10 000 каталогів) один за одним, незалежно від того, зелене це чи ні, ви будете виснажені.
У цей момент адміністратор мережі використовує обліковий запис WIN працівника, входить на його ПК і використовує цей скрипт для переліку всіх файлів, зашифрованих EFS.


---------- Розділ 10 Будь ласка, задайте запитання--------------
Пані та панове, якщо є що повідомити, залишайте зал без жодних дій.



----------Розділ 11 Розділ про Linux--------------

Місіонер: Поки ви можете встановити версію PowerShell для Linux, вам потрібні лише скрипти для PS1, без SH-скриптів.
Інтерпретації:
1 Коротко кажучи, bash має лише синтаксис, немає команд і бібліотек.
2 bash має лише 1% функцій синтаксису, PowerShell не може їх реалізувати. Це нормально, жоден листок не є абсолютно однаковим у світі.
Це означає, що вам потрібен лише скрипт для PS1, без проблем.
3 bash — це занадто старий, функція та сама, Powershell можна реалізувати, і це також може заощадити час, наприклад, 10 000 порожніх для Powershell, Powershell потрібно зберігати 90% випадків.
4 Навчіться використовувати /usr/bin/powershell замість /usr/bin/bash. Інші команди Linux, конвеєри, старі кунг-фу тощо використовуються так само, як і в bash.
5 Поступово використовуйте об'єктно-орієнтовані, прості та потужні команди та бібліотеки PowerShell замість виснажливих команд Linux, або й те, й інше. ---Це загальний принцип, загальний план.


Питання: Які версії Linux можуть встановлювати PowerShell?
A:
◦Ubuntu 14.04 / 16.04
◦CentOS/RHEL 7 і вище
◦відкрити SSE 42 і вище
◦Arch Linux (archl inux не має номера версії)
◦LINUX docker-контейнер
◦Linux AppImage контейнер (портативний додаток з єдиним бінарним файлом) https://github.com/probonopd/AppImageKit





Питання: Чому кажуть, що командний рядок win сильніший за Linux?
A:
Команди в 1 win еволюціонували у об'єктно-орієнтований PowerShell. Linux поки що не працює. Від win7 до win2012r2 еволюція закінчується.

2 Раніше чув, що Unix має багато команд Linux і дуже потужний. Але тепер я кажу вам, що команди PowerShell щонайменше в десять разів більше, ніж команди Linux. В будь-якому разі, я все життя не вчився.

3 Linux більше залежить від графа, з надто малою кількістю команд. І команда win — це набагато більше, ніж у Linux.
3.1 У будь-якому Linux команди на поштовому сервері є більш повними, ніж у Exchange? Зручніше, ніж обмін?
3.2 DNS-серверна прив'язка Linux не така зручна, як DNS-команда win. Чи має Bind [команду] для додавання запису ipv4 A до доменного імені? Ще не залежите від веб-графіки?
Дехто радить використовувати nsupdate. Це не про те, щоб написати текст і потім його запустити. У чому різниця між заміною файлу [DNS-зони] на sed і подальшим завантаженням [DNS-зони]?

4 У новій версії win, або в powershell, все зводиться до [command + parameter]. І більшість Linux досі є [sed text].
4.1 Візьмемо, наприклад, IP-адресу, призначену мережевій карті.
З'єднання NMCLI додай тип Ethernet-Ім'я NEW_STATIC IFNAME ENO1234567 IP4 192.168.1.111 GW4 192.168.1.1,
Хіба це не зручніше, ніж використовувати sed для скрейпінгу файлу ifcfg-eth0?

5 Будь-яка мова обробляє дані, як і скрипти. З допомогою об'єктів PowerShell зручніший, ніж незручний. Shenma csv, excel, xml, json
SQL таблиця, таблиця nosql. html тощо.




Питання: Як PowerShell реалізує [sed -i "s/що шукати/замінити з /g" filename]?
A:
@(Get-Content filename) -замінити 'aaa', 'bbb' | Ім'я файлу Set-Content $aaa
Тобто відкрити файл, замінити його, зберегти файл.



Питання: Чому все менше людей використовують SED у Linux?
A:
Аргумент 1: AWK може замінити SED, але SED не може замінити AWK.
SED, тобто просто знайти заміну. AWK має FOR та подібні можливості реалізувати складну обробку.

Аргумент 2: AWK використовує стандартний регулярний, і регулярний у sed такий самий, як у sed, але частини різні.
Вивчення СЕД означає, що два набори несумісних регулярних стандартів у мозку борються між собою.



Питання: Отже, правильно вивчати AWK?
A:
Вивчати PowerShell легше, ніж AWK.
PowerShell використовує [split, а потім split], [if and if], where-object, string.substing(), string[-3] тощо.
Розбийте задачу струн шар за шаром. Простіше, ніж звичайний awk.




Питання: Чи можна використовувати конвеєри та AWK у PowerShell?
A:
Ви можете викликати awk у PowerShell, точно так само, як у Bash. Старі бойові мистецтва — це повністю туринські.



Питання: Як реалізувати функцію [awk '{print $3}'] у PowerShell?
A:
($line -спліт "\s+|\t+") [0] #第一行
($line -спліт "\s+|\t+") [2] #第三行       

Отримати контент /xxx/yyy.txt | foreach-object {$_.split()[2]} #awk '{print $3}'


Питання: Як реалізувати функцію [awk -f a.awk file] за допомогою PowerShell?
A:
По суті, це функція фільтрації, яка використовує трубу. У PowerShell це називається фільтром або фільтром.
PowerShell підтримує комбінацію команди + труба + фільтр. Як у Command 1 | Фільтр 1 | Command 2 | Фільтр 2 | Фільтр 3
фільтруючий фільтр1
{
Функціональність, схожа на AWK
}





Питання: Чи є [xargs] у PowerShell?
A:
Змінна труби, що використовується в конвеєрі, називається [$psitem], а її псевдонім — [$_].
PowerShell використовує foreach-object і $_ для реалізації функції xargs.





Питання: Чи є у PowerShell номер [<] [<<]?
A:
Ні.
Можливо, [<] символ справа наліво — це антилюдське мислення. Багато команд у PowerShell були змінені зліва направо.
Якщо get-random < (1..100) не є легальним у PowerShell, то легальним має бути get-random -inputobject (1..100), або 1. 100 |get-random
Менше 1% дивних команд [мають] покладатися на символ [<], який можна досягти, викликавши cmd у PowerShell або bash (PowerShell для Linux) у PowerShell.
Наприклад, $a = bash -x "command 1 < command 2" #linux
Наприклад, $a = cmd -c "команда 1 < команда 2" #cmd




Питання: Чи існує команда expect у PowerShell? Як підключитися до SSH-сервера Linux з Windows за допомогою PowerShell?
A:
1. Так. Для деяких дивних і часткових потреб у відповіді дверей існують сторонні модулі.
2 Ні. PowerShell не використовує команду expect, а використовує сесію.

Використовуйте бібліотеку клієнта Powershell + SSH + IP + порт + ім'я користувача + пароль, щоб об'єднати з'єднання і надіслати команди на це з'єднання. Код виглядає так:
$connection 1 = New-SSHSession -ComputerName 1.1.1.1 -Port 22 -Credential aaaa #将提示输入密码
$to return = Invoke-SSHCommand -Command {cat /etc/issue} -SSHSession $Connection 1

Ця стандартна функціональність, така як (MongoDB, mysql, ssh, ftp, http, telnet тощо), має драйвери або модулі. P.S. і. .netprogram через драйверне з'єднання надсилайте команди та приймайте дані.
Переваги використання модулів або драйверів для передачі та отримання [даних] такі:
Дані конвертуються у об'єкт .net, який, у свою чергу, перетворюється на об'єкт PS. Інакше це лише нитки, а [об'єктно-орієнтовані бойові мистецтва] секти PS — всі марні.


Візьмемо MongoDB як приклад, які переваги використання модулів або драйверів для надсилання команд? Хто говорить?
Я вважаю, що переваги такі:
1 Багатопоточність. Фоновий потік виконується і не займає поточний потік.
2. Ми можемо [відключитися наполовину] від сесії в будь-який момент, виконати інший код PS, функції та [повернутися до сесії у будь-який момент]. Скрипти більш гнучкі у написанні та легко налагоджуються.
3session об'єднує кількох користувачів, і різні користувачі можуть мати різні права на сервер.




Питання: Чи є команда su, runa у PowerShell? Як виконати команду іншого користувача за допомогою PowerShell?
A:
Ні.
У PowerShell запуск нативних команд і конвеєрів Linux проходить без зусиль. Наприклад:
Шшaaa@127.0.0.1"Виконано з AAA-правами користувача, команда xxx"  
sshpass -p user_password sshaaa@192.168.1.1



Питання: Два Linux-комп'ютери з SSHD? Як підключати та надсилати команди через PowerShell?
A:
Окрім наведеного вище методу, ви також можете використовувати метод створення нової сесії Linux. (Підключено з Linux до іншого SSHD)
Примітка: Цей метод вимагає редагування файлу /etc/ssh/sshd_config. Додайте наступний рядок
Підсистема powershell powershell -sshs -NoLogo -NoProfile
Після цього перезавантажте SSHD-сервер.
Детальний посібник тут:
https://github.com/PowerShell/PowerShell/tree/master/demos/SSHRemoting

Команда:
$connect 2 = New-PSSession -HostName 127.0.0.1 -UserName user006 #手动输入密码或用-KeyFilePath опція
invoke-command -session $connect 2 -scrip{filter}tBlock {new-item ~/ccc.txt}


Зведення:
Клієнт Win, підключений до сервера Linux. Наразі потрібні сторонні модулі, звісно, це модуль в офіційній бібліотеці, просто використовуйте модуль для встановлення PoshSSH.
Клієнт Linux, підключений до сервера Linux. Потрібно відредагувати файл /etc/ssh/sshd_config.
Клієнт Linux, підключений до Win-сервера. Потрібно увімкнути сервіс на сервері. Довіряйте серверу на клієнті.
Win-клієнт, підключений до Win-сервера. Потрібно увімкнути сервіс на сервері. Довіряйте серверу на клієнті.


Питання: Чи є [grep] у PowerShell?
A:
У powershell використовується команда select-string.
З точки зору кодування, select-string=smart, grep=stupid + має серйозну помилку :mrgreen:
Коли є заголовок BOM, select-string автоматично розпізнає тип кодування файлу.
Коли немає заголовка BOM, немає потреби змінювати середовище shell, як linux+grep, і зберігати файли відповідно до певного коду. Потрібно лише вказати параметр -encoding відповідно до кодування файлу.
І grep не має такої функції, тобто існує серйозний недолік [неможливо вказати тип кодування файлу].
Звісно, grep не марний, grep має певні параметри, додаткові унікальні функції, select-string його немає, тут grep сильніший за select-string.



Питання: Чи є [eval] у PowerShell?
A:
Використовуйте Invoke-Expression для виконання рядків у powershell.



Питання: Чи є хвіст -f у PowerShell? Можливо вивести нові згенеровані рядки файлу в реальному часі.
A:
Get-Content D:\a.txt -Tail 10 -ReadCount 0 -Зачекайте



Питання: Я хочу використовувати невелику клавіатуру і також мати термінал на 256 кольорів, тож як краще налаштувати xshell?
A:
Термінал --- типу --- [putty-256color] або [export TERM=putty-256color]
Термінал --- клавіатура --- за замовчуванням або Linux.

Eterm-256color може
gnome-256color не працює
konsole-256color не працює
Шпатлівка-256color
PowerShell Missionary Оригінальний поділ 2017-02-15
RXVT-256COLOR не працює
screen-256color не працює
ST-256COLOR
VTE-256COLOR не працює
xterm-256color не працює
Той самий принцип застосовується і до SecureCRT




Питання: Хто сильніший — shell чи python?
A:
Кожен має свої сильні сторони і може доповнювати одне одного. Але вони не доповнюють одне одного. Більше про це нижче.


Питання: Чому версія PowerShell для Linux більше підходить для написання скриптів операторами та технічним персоналом? (Порівняно з версією Python для Linux)
A:
1 Python має об'єктно-орієнтовані функції, і доступна версія PowerShell для Linux.

2 Python не має командного рядка.
2.1 Python не може бути терміналом за замовчуванням для SSH, але PowerShell для Linux може. Дивіться розділ: «Два Linux-машини з SSHD? Як підключати та надсилати команди через PowerShell? 》
2.2 Використання команд shell (awk, grep тощо) у python дуже громіздко. Потрібно додати багато PY-синтаксису та коду. PowerShell для Linux виконує команди awk так само, як і bash.

3 Python не має труб. Дуже складно передавати значення між n [програмами командного рядка]. Потрібно додати багато PY-синтаксису та коду. Версія PowerShell для Linux має конвеєри, і виконання команд awk — це те саме, що і bash.

4 Python має версію 2, версія 3 не сумісна з Cancer! Питання. PowerShell для Linux не має такої проблеми.
4.1 Ці питання містять задачі кодування.

Висновок:
Shell-команди, такі як GREP, не підходять для підтримки програмування, не такі ефективні, як задачі кодування з 4.1 вище в PowerShell на домашньому рівні. Плюс вищезазначені 2,3 бали.
Це змушує користувачів Linux почуватися незручно, але дуже мало хто використовує зовнішні команди в py. [PY Command Library] і [Shell Command] мертві і фактично не можуть доповнювати одна одну. Версія PS для Linux відрізняється.




Питання: Чому кажуть, що PowerShell кращий за Shell?
A:
1 PowerShell є об'єктно-орієнтованим, і властивості повертають безпосередньо доступні дані. Це набагато рідше, ніж у мовах скриптів символів (bat, shell), які потребують дедукції рядків.
Народився з меншою кількістю [контенту, який потрібно втекти].
2 Підстановка рядків, у PowerShell є методи, які не потребують escape, у класі .NET. Наприклад:
[рядок]$a = 'abc\\def'
$b = $a.replace('\','коли')
#返回: [ABC як def]
Щоб визначити, чи є IP легітимною, можна використати метод TryParse() у класі IPAddress.
Коротко кажучи, моя порада — використовувати якомога більше методів .net, використовувати якомога менше regex або просто використовувати прості звичайні форми.
3 PowerShell використовує ['] як символ втечі. ['] використовується рідше, ніж [\], і значно рідше використовується як символ escape.
3.1 При написанні скриптів баз даних виникає більше конфліктів ['].
Наприклад, ['table'] конфліктуватиме з ['t], наприклад ['biao'] з ['b], і я пізніше розв'язав це з ['table'].
Пошук і заміна рядків на 4 ps, має звичайний рушій, сумісний з Linux і також використовує [\] як escape.
Однак існує спеціальна функція escape для рядків [[Regex]::Escape()], яку спочатку скидають, а потім знаходять і замінюють, і код є дуже читабельним.
$Original рядок перед escape = '\+\&*|]'
$escaped рядок = [regex]::escape($original рядок перед втечою)
-------------
Приклади сценаріїв
[рядок]$a = 'abc\\def'
$Original рядок перед escape = '\'
$Escaped Рядок = [Regex]::Escape($Original рядок перед Escape) #[\]--->[\\]
$b = [Regex]::replace($a,$Escaped Рядок, 'коли')
$b #返回 [ABC Dangdang DEF]
-------------
5 Bash і AWK, кожен має свій For, кожен має свій втечу. Разом А легко впливає на В, а А ковтає В.
Також легко виникнути проблеми при зустрічі з ['], ["], [\] та [*].
Це як носити два шари довгих штанів: один шар натягуєш, а інший теж рухається, треба турбуватися про їхню сумісність.
Це рак, і його важко вирішити.
Але при цьому цю проблему можна частково уникнути. Для цього людина, яка написала оболонку, виправить проблему з неприємністю.
[Введіть код awk у .awk файл окремо, а не в командний рядок]
У PowerShell такої проблеми немає, введіть це в командний рядок, додайте у скрипт — це не має ефекту.








Попередній:.net/C# використовує атрибути для реалізації простого AOP
Наступний:.net/c# Швидкий IP сканер відкритих портів v2.0 Ultimate версія
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com