Пълни ръчни команди за PowerShell по категории

Когато работим с операционни системи Windows 10 или Windows Server 2016, имаме мощен инструмент за управление и контрол над множество системни параметри и това е Windows PowerShell.

Windows PowerShell е актуализиран в Windows 10 и Server 2016, за да предложи по -добър контрол над всеки системен процес, а основният компонент на PowerShell са командлетите.

Cmdlets са основата на Windows PowerShell, който е и най -новият език на обвивката или командния скрипт от Microsoft, така че cmdlet е лека команда, която се използва в средата на Windows PowerShell.

Solvetic ще направи пълен анализ на командлетите, които могат да бъдат внедрени в Windows Powershell и, вместо да се фокусира върху отделните командлети, този акцент пада върху задачите, които можем да изпълним с тези командлети. Тези задачи включват различни аспекти като четене и писане на текстови файлове за управление на дневници на събития и класифициране или филтриране на данни и по този начин ще видим как нашите задачи за поддръжка ще бъдат много по -централизирани.

Ще разберем как използването на командлети ще ни даде възможност да получим много повече информация, отколкото си мислим, че ще получим.

1. Cmdlets Команди в PowerShell за дата и час


Тази група включва задачи като извличане на текущата дата и час и извършване на аритметика на датата.

Променете датата и часа на компютъраЗа да изпълним тази задача, можем да използваме командлет Set-Date, но трябва да имаме предвид, че това е деликатна команда, която трябва да се използва с повишено внимание. Например, ако сме в среда на Active Directory, времето на нашия компютър трябва да бъде напълно синхронизирано с времето на контролера на домейна; Ако не, може да не е възможно да влезете в домейна.

Времената в екипа често се определят с помощта на автоматична услуга за време; в такъв случай вероятно не е необходимо да задавате дати и часове ръчно, но ако по някаква причина трябва да зададем датите и часовете ръчно, Set-Date предоставя лесен начин да го направите.

Един от начините да промените датата и / или часа на компютър е да използвате параметъра -date, последван от новата дата и час. Например, за да зададете датата и часа на 10:30 сутринта от 6 ноември 2021-2022 г. ще изпълним следния ред:

 Дата -дата -дата "6/11/2017 10:30 AM" 

Увеличете

Новият час и дата се задават автоматично в системата. Ако е необходимо да настроите часовника за два дни, тази команда използва командлет Get-Date и метода AddDays за напредване на часовника с два дни:

 Set-Date (Get-Date) .AddDays (2) 
Това ще добави два дни към текущата дата, като вземе действителното системно време:

Увеличете

Други методи, които можем да използваме, включват AddHours, AddMinutes и AddSeconds, тези опции ни позволяват да регулираме часове, минути или секунди според метеорологичните условия или някакъв вид административно управление.

Например, в страни, където времето се влияе от лятото, можем да настроим часовника минус един час, като използваме следния ред:

 Set-Date (Get-Date) .AddHours (-1) 
Като алтернатива е възможно да използвате параметъра -adjust, за да регулирате времето, като използвате формата на часа: минути: секунди. Например тази команда задава часовника напред 2 часа и 40 минути:
 Set -Date -настройка 2: 40: 0 

Избройте информация за дата и часКомандлетът Get-Date ни позволява да извлечем текущата дата и час. По същия начин има някои други трикове, които можем да направим с Get-Date, за да коригираме тези стойности.

Ако искаме да покажем текущата дата и час, просто ще използваме cmdlet Get-Date без допълнителни параметри:

 Get-Date 

Увеличете

Там имаме текущия ден, дата и час. Ако искаме да покажем само датата, ще използваме параметъра -displayhint и той посочва само датата:

 Get -Date -displayhint дата 

Увеличете

Ако искаме само да покажем часа, ще използваме следния ред:

 Get -Date -време за показване на дисплея 
Възможно е също да използвате Get-Date за създаване на обект за дата и час за всяка дата или час. Например, с тази команда ще създадем променлива, наречена $ A, която е картографирана в 12:00 часа сутринта. от 1 декември 2021-2022 г .:
 $ A = Дата на получаване 1/12/2017 

Увеличете

Сега, ако искаме да добавим определено време към тази променлива, просто трябва да я добавим по следния начин:

 $ A = Дата на получаване "1.12.2017 г. 11:00 ч." 
Командлетът Get-Date включва и редица методи за просто аритметизиране до момента:
 AddSeconds AddMinutes AddHours AddDays AddMonths AddYears

Извършете аритметика на дататаНовата кратка команда New-TimeSpan предоставя начин за аритметика на датите в Windows PowerShell. Например тази команда показва броя дни между днешната дата и бъдещата дата, както следва:

 New-TimeSpan $ (Get-Date) $ (Get-Date -месец 10-ден 31 -година2021-2022) 
В този случай ще видим броя дни между днешната дата и 31 октомври на 2021-2022 година:

Увеличете

Можем да видим пълна информация за дни, минути, часове и други. За да използвате New-TimeSpan, ще е необходимо да използвате само няколко стойности за дата и час. Най-добрият начин да направите това е да използвате метода Get-Date; това ни помага да се уверим, че ще получим няколко обекта datetime, с които New-TimeSpan може да работи.

В този пример първата дата е направена с помощта на командлет Get-Date без допълнителни параметри (имайте предвид, че тя трябва да бъде затворена в скоби).

За втората дата също беше извикана Get -Date, но бяха добавени параметрите -month, -day и -year, заедно със съответните стойности.

2. Команди за командлети в PowerShell и дескриптори за сигурност


Тези задачи включват действия като конфигуриране на политиката за изпълнение на скрипта на Windows PowerShell и извличане на цифровия подпис или дескриптора на защитата за файл или папка.

Коригирайте политиката за конфигуриране на Windows PowerShellКомандлетът Set-ExecutionPolicy ни позволява да определим кои скриптове на Windows PowerShell могат да се изпълняват на компютъра. Windows PowerShell има четири различни политики за изпълнение:

  • Ограничено: Не могат да се изпълняват скриптове. Windows PowerShell може да се използва само в интерактивен режим.
  • AllSigned: Могат да се изпълняват само скриптове, подписани от доверен издател.
  • RemoteSigned: Изтеглените скриптове трябва да бъдат подписани от доверен издател, преди да могат да се изпълняват.
Неограничен: Всички скриптове на Windows PowerShell могат да се изпълняват.

За да присвоим някоя от тези политики, ще използваме следния синтаксис:

 Set-ExecutionPolicy (policy) Set-ExecutionPolicy Unrestricted
Ще бъде необходимо да потвърдите това действие:

Увеличете

Избройте правилата за изпълнение на скриптовеКомандата Get-ExecutionPolicy отговаря за посочване коя от четирите политики за изпълнение е в сила в момента. За целта изпълняваме следното:

 Get-ExecutionPolicy 

Увеличете

3. Команди на командлети във файлова и папка PowerShell


Тези задачи включват действия като създаване, преименуване, копиране и изтриване на файлове и папки.

Копирайте файлове и папкиКомандлетът Copy-Item ни дава възможност да копираме елемент като файлове или папка на друго място. Например, можем да изпълним следната команда, която копира файла Tests.txt от папката D: \ Solvetic в папката C: \ Solvetic:

 Copy-Item d: \ Solvetic \ tests.txt c: \ Solvetic

Увеличете

Ако искаме да копираме цялото съдържание на папка, включително подпапки, тогава просто трябва да използваме заместващ знак като този:

 Copy-Item d: \ Solvetic \ * c: \ Solvetic 

Увеличете

Ако искаме да копираме само файловете с определено разширение, например изображения, ще използваме следния ред:

 Copy-Item d: \ Solvetic \ *. Jpg.webp c: \ Solvetic 

Създайте нова папка или файлКомандлетът New-Item е бърз и лесен начин за създаване на нов файл или папка в Windows.

В този случай ще създадем нова директория, наречена Windows PowerShell в папката C: \ Solvetic. За целта ще изпълним New -Item заедно с пълния път към новата папка и новия тип елемент (който можете да зададете с помощта на параметъра -type и директорията на стойностите). Командата ще има следната структура:

 Нова позиция C: \ Solvetic \ WindowsPowerShell -тип директория 

Увеличете

Това ще създаде споменатия елемент в посочения път. За да създадем нов файл, трябва да следваме същия процес, като посочим пълното име на пътя, но този път задаваме типа на файла. С тази команда ще създадем файла C: \ Solvetic \ Solvetic1.txt:

 Файл от нов елемент C: \ Solvetic \ Solvetic1.txt 

Увеличете

В случай, че файлът съществува и искаме да го презапишем, можем да добавим параметъра -force по следния начин:

 Нов елемент C: \ Solvetic \ Solvetic1.txt -тип файл -сила 

Изтрийте файл или папкаКомандлетът Remove-Item отговаря за премахването на файлове и папки в системата.
Ако искаме да изтрием файл, ще използваме следния ред:

 Remove-Item c: \ Solvetic \ Solvetic1.txt 

Увеличете

Можем също да използваме заместващи знаци за премахване на множество елементи. Например тази команда премахва всички файлове по пътя C: \ Solvetic:

 Remove-Item c: \ Solvetic \ * 
Друга от наличните опции е да посочите кои елементи да бъдат елиминирани и кои не, за това можем да използваме следния синтаксис:
 Remove -Item c: \ scripts \ * -include * .txt -exclude * Тестове * 
В този случай всички .txt файлове ще бъдат изтрити, с изключение на файла, наречен Tests. Командлетът Remove-Item има параметър, наречен -whatif, който всъщност не премахва нищо, а просто показва какво би станало, ако изпълним Remove-Item:
 Remove -Item c: \ Solvetic \ *. Txt -whatif 

Увеличете

Преместете файл или папкаС помощта на командлет Move-Item можете да преместите файл или папка от едно място на друго. Например, ще преместим папка от устройство C на устройство D:

 Преместване на елемент c: \ Solvetic \ Solvetic d: \ Solvetic 

Увеличете

В случай, че елементът съществува в местоназначението, можем да използваме параметъра -force за неговото изпълнение:

 Преместване на елемент c: \ Solvetic \ Solvetic d: \ Solvetic -сила 

Преименувайте файл или папкаКомандлетът Rename-Item ни позволява да променим името на файлове или папки, за неговото използване се нуждаем от две стойности:

  • Текущият път за файла или папката.
  • Новото име за файла или папката.
В този случай ще променим името на папката Solvetic на устройство C на Solvetic2:
 Преименуване на елемент c: \ Solvetic \ Solvetic Solvetic2 

Увеличете

Проверете съществуването на файл или папкаЕдно от основните приложения на командлета Test-Path е да се провери съществуването на файл или папка. Например тази команда проверява дали съществува файл C: \ Solvetic \ Solvetic.txt:

 Test-Path c: \ Solvetic \ Solvetic.txt 

Увеличете

Ако получим резултата true файлът съществува, в противен случай ще видим false. Възможно е дори да се провери наличието на ключове в редактора на системния регистър на Windows.

 HKCU на тестовия път: \ Software \ Microsoft \ Windows \ CurrentVersion 

Увеличете

4. Команди на командлети в задача за администриране на системата PowerShell


Тези задачи включват действия като стартиране и спиране на услуги, извличане на данни чрез WMI и управление на регистрационни файлове на събития и събития в регистъра на събития.

Списък с информация за услугатаКомандлетът Get-Service е предназначен да извлича информация за услугите, инсталирани в системата.

Просто използвайте Get-Service без допълнителни параметри:

 Get-Service 
Резултатът ще бъде следният. Там можем да видим всяка услуга с нейното име и текущо състояние.

Увеличете

Можем да приложим филтри, за да визуализираме услугите с конкретно състояние, например, за да видим всички услуги в състояние Спряно, ще изпълним следното:

 Get-Service | Where -Object {$ _. Status -eq "спряно"} 

Увеличете

Забележка$ _. представлява обекта, преминал през тръбопровода.

По същия начин, за да видите всички услуги, които са активни, изпълняваме:

 Get-Service | Where -Object {$ _. Status -eq "работи"} 
По подразбиране Windows PowerShell връща услуги по азбучен ред. Въпреки това, с помощта на командлет Sort-Object е възможно да сортирате върнатите данни по какъвто и да е начин. Например тази команда сортира услугите първо по State, а след това по DisplayName:
 Get-Service | Sort-Object status, displayname 

Увеличете

Управление на регистрационните файлове на събитияСъбитията в Windows са един от най -добрите начини, по които като администратори трябва да управляваме системни събития.

Командлетът Get-EventLog има две цели: Позволява ни да управляваме регистрационните файлове на събитията и също така ни позволява достъп до събитията, съдържащи се в тези регистрационни файлове на събития.

За да получим списъка със събития, ще изпълним следното. Там можем да видим различните категории с техните количества събития.

 Get -EventLog -list 

Увеличете

Ако искаме само информация за конкретен регистър на събития, можем да използваме командлета Where-Object, за да ограничим извличането на данни до дневника, чието LogDisplayName е равно на, в този случай System:

 Get -EventLog -list | Къде -Обект {$ _. Logdisplayname -eq "Система"} 
За да изброим всички събития от конкретна категория, можем да изпълним следния ред:
 Get-EventLog система 

Увеличете

Можем също да използваме параметъра -newest и да получим само последния брой събития, регистрирани в дневника, както е посочено:

 Get -EventLog система -най -новата 5 

Увеличете

За да получим много повече информация за събитие, ще изпълним следния ред:

 Get -EventLog система -най -новата 5 | Format-List 

Увеличете

Можете също така да изпращате данни през командлета Where-Object, за да върнете подмножество от събития. Например тази команда извлича само онези събития в регистъра на събития на Windows PowerShell, които имат EventID равен на 403:

 Get-EventLog "Windows PowerShell" | Where -Object {$ _. EventID -eq 403} 

Увеличете

Следващата опция ви позволява да извличате всички събития в регистъра на събитията на Windows PowerShell и след това да използвате командлет Group-Object, за да групирате тези събития по EventID.

 Get-EventLog "Windows PowerShell" | Групова обектна вечер | Име на сортиране на обект 
Там можем да видим колко пъти е настъпило събитието, името и описанието.

Увеличете

Променете свойствата на услугатаС кратката команда Set-Service можете да предоставите начин за промяна на описанието, типа на стартиране или показваното име на услуга. Всичко, което трябва да направим, е да извикаме Set -Service, последвано от името на услугата, която искаме да променим, и съответния параметър (-description, -startup, -displayname)

 Set -Service XblAuthManager -тип стартиране "ръчно" 

Увеличете

Пауза или рестартиране на услугаКомандлетът Suspend-Service се използва за пауза на услуга, която се изпълнява в момента.

Спираната услуга прекъсва всички съществуващи връзки и отказва да приеме нови връзки. Паузираната услуга обикновено ще продължи да обслужва съществуващите връзки, но няма да приема нови връзки.
За целта просто изпълнете следното:

 Suspend-Service tapisrv 

Увеличете

В този случай ние сме поставили на пауза услугата Телефония, използвайки името на вашата услуга, но ако желаем, можем да използваме името на услугата:

 Suspend -Service -displayname "телефония" 
За да рестартирате услуга в Windows, трябва да използваме кратката команда Resume-Service, последвана от паузираната услуга:
 Resume-Service tapisrv 

Възстановяване на данни с помощта на WMIТъй като има само няколко командлета (Get-Process, Get-Service и Get-EventLog), предназначени да изпълняват задачи за системно администриране, WMI все още е водещата технология за автоматизация за системно администриране, така че системните администратори вероятно ще разчитат в голяма степен на Get- WmiObject за административни задачи.

Get-WmiObject може да се изпълнява на отдалечени компютри, което означава, че всъщност можете да използвате Windows PowerShell като инструмент за управление.

За да получим информация за BIOS, можем да изпълним следния ред:

 Get-WmiObject win32_bios 

Увеличете

За да сме сигурни, че получаваме информация за всички свойства (и техните стойности), най-добрият вариант е да изпратим данните, върнати от Get-WmiObject към Select-Object, и след това да използваме заместващия знак *, за да покажем, че искаме да извлечем всички стойностите на имотите.

Ако е необходимо да се получат свойствата и методите за конкретен WMI клас, можем да използваме Get-WmiObject, за да се свържем с въпросния клас и след това да изпратим тази информация чрез командлет Get-Member:

 Get-WmiObject win32_bios | get-member 

Увеличете

Спрете и стартирайте услугаЗа да спрем услуга в Windows, трябва да използваме кратката команда Stop-Service:

 Стоп-сервиз btwdins 
За да стартираме услуга, ще използваме командлет Start-Service:
 Start-Service btwdins 

Прекратете процес в Windows с PowerShellКомандлетът Stop-Process ни позволява да прекратим процес (или процеси). Можем да посочим процесите, които искате да убиете, като посочите идентификатора на процеса или като посочите името на процеса. Имаме възможност да приключим процес по следния начин:

  • С личната си карта:
 3512 
  • С неговото име:
 Стоп -процес -бележник с име на процес 

Увеличете

Stop-Process също приема заместващи знаци. Например тази команда ще завърши всеки екземпляр на Notepad, както и всеки друг процес, чиито имена започват с бележка:

 Забележка Stop -Process -processname * 

5. Команди на командлети в помощна и информационна задача PowerShell


Тези задачи включват неща като изброяване на информация за версията на Windows PowerShell и използване на командлет Get-Member за извличане на информация за свойства и методи за обект.

Потърси помощWindows PowerShell включва два основни типа помощ, помощ за команди и помощ за концепции, до които можете да получите достъп от конзолата с помощта на командлет Get-Help. За да извлечем списък с всички налични помощни теми, просто трябва да въведем следната команда:

 Потърси помощ * 

Увеличете

След като имаме този списък, можете да получите помощ по конкретната тема, като предадете името на темата на Get-Help. Например, за да научите повече за командата Get-Member. В този случай просто ще изпълним:

 Get-Help Get-Member 

Увеличете

Избройте всички командлети на Windows PowerShellGet-Command е разработен, за да ви помогне, ако не можете да си спомните името на командлет.

Get-Command трябва да се използва без допълнителни параметри и ще получим списък с всички командлети на Windows PowerShell:

 Get-Command 

Увеличете

Можем да използваме командлет Format-List, за да извлечем свойствата на командлетите:

 Get-Command | Format-List * 

Увеличете

Възможно е да се използва Select-Object за филтриране на всички свойства освен Име:

 Get-Command | Име на обект за избор 

Увеличете

Тази информация може да бъде експортирана в текстов файл за по -късно управление, за това трябва да изпълним:

 Get-Command | Получаване на помощ | Изходящ файл c: \ Solvetic \ Help.txt

Избройте версията на командлетитеКомандлетът Get-Host връща информация (като номера на версията) за Windows PowerShell.

 Get-Host

Увеличете

Избройте свойствата и методите на командатаМожете да използвате Get-Member на кратката команда на Windows PowerShell. След като се свържете с обект, можете да изпратите този обект към Get-Member, а Get-Member от своя страна ще изброи свойствата и методите на този обект.

 Get -EventLog -list | Get-Member 

Увеличете

Параметърът -membertype ни позволява да ограничим данните, върнати към свойствата:

 Get-WmiObject win32_bios | Свойства на Get -Member -membertype 

Увеличете

Посочете инсталираните доставчици на Windows PowerShellДоставчиците на Windows PowerShell определят хранилищата за данни, които можете да разглеждате. Например, можете да използвате командата Get-ChildItem, за да извлечете списък с всички файлове, намерени в папка.

За да определите наличните за вас доставчици, просто се обадете на командлет Get-PSProvider без никакви параметри:

Увеличете

6. Команди на командлети в Windows PowerShell Сесии PowerShell


Тези задачи включват задачи като извличане на историята на Windows PowerShell и повторно извикване на команда, съдържаща се в тази история.

Посочете езика и местната информацияКомандлетът Get-Culture ни позволява да преглеждаме информация за език и локал.

Увеличете

Избройте историята на Windows PowerShellПо време на всяка сесия Windows PowerShell следи всички команди, които въвеждаме в прозореца на конзолата. Извличането на списък с тези команди е толкова просто, колкото изпълнението на командлет Get-History:

Увеличете

По подразбиране Windows PowerShell следи 64 -те най -нови команди, въведени в прозореца на конзолата. За да покажем конкретно количество, ще използваме параметъра -count:

 Get -History 15 -брой 15 

Увеличете

Извикайте предишна командаКомандлетът Invoke-History ви позволява да повторите команда на Windows PowerShell, като просто посочите идентификационния номер, присвоен на тази команда.

 Invoke-History 3 
Това ще изпълни командата, разположена на позиция номер 3:

Увеличете

Командата Invoke-History приема само уникален идентификатор, в случай на изпълнение на повече команди, трябва да изпълним няколко команди на Invoke-History, като разделим двете с точка и запетая:

 Invoke-History 3; Invoke-History 4 

7. Команди на командлети в хранилище за данни и импортиране на PowerShell


Тези задачи съдържат задачи като четене и писане в текстови файлове, както и запазване на данни във формат HTML или XML.

Добавете данни към текстов файлС помощта на командлет Add-Content можете да добавяте данни към текстов файл. Например, тази команда добавя думите "Solvetic" към файла C: \ Solvetic \ Solvetic.txt:

 Добавено съдържание c: \ Solvetic \ Solvetic.txt "Solvetic" 
Увеличете

По подразбиране плъгинът добавя новата стойност веднага след последния знак в текстовия файл. Ако предпочитате думата Solvetic да се показва на отделен ред, просто вмъкнете `n (жаргон на Windows PowerShell за" нов ред ") в стойността, която е записана във файла.

 Add-Content c: \ Solvetic \ Solvetic.txt "` nSolvetic " 

Увеличете

Ето някои от другите специални символи, които могат да се използват в изхода на Windows PowerShell:

 `0 - Null` a - Предупреждение` b - Backspace` n - Нов ред `r - Връщане на ред` t - Хоризонтален раздел '' - Единичен кавичка`" - Двойни кавички

Покажете данни и ги запишете с командаКомандлетът Tee-Object ни позволява да показваме данни в прозореца на Windows PowerShell и да съхраняваме същите тези данни в текстов файл, всички с една команда. Например тази команда използва командлет Get-Process за извличане на информация за всички процеси, изпълнявани в момента на компютъра, след което използва Tee-Object за едновременно показване на данните на екрана и запазването им във файла C: \ Solvetic \ Solvetic. ТЕКСТ:

 Get-Process | Tee -Object -файл c: \ Solvetic \ Solvetic.txt 

Увеличете

Можем да видим, че данните се записват на екрана и едновременно в избрания файл ще бъдат запазени:

Увеличете

Изтрийте съдържанието на файлКомандлетът Clear-Content ни позволява да изтрием съдържанието на файл, без да го изтриваме.

 Изчистено съдържание c: \ Solvetic \ Solvetic.txt 

Запазване на данни като HTMLКомандлетът ConvertTo-Html улеснява много прегледа на изхода на Windows PowerShell на уеб страница в HTML формат, което опростява четенето и структурата на данните. Ще изпълним следното:

 Get-Process | ConvertTo-Html | Set-Content c: \ Solvetic \ Solvetic.htm 
В този пример ще запишем всички системни процеси във файла Solvetic.txt и ще го преобразуваме в HTML формат:

Увеличете

Това ще създаде HTML файла, който може да бъде отворен с всеки браузър:

Увеличете

Прочетете текст от файлБлагодарение на командлета Get-Content ще бъде възможно да получите достъп до съдържанието на файл на компютъра.

 Get-Content c: \ Solvetic \ Solvetic.txt 

Увеличете

Запазване на данни във формат XMLМожете да използвате командлет Export-Clixml, за да запазите файл в XML формат.

С този ред ще получим всички процеси на системата и ще ги запишем като XML файл. При изпълнението му ще бъде създаден съответният XML файл:

Увеличете

Видяхме как командлетите на Windows PowerShell са проектирани да ни предложат възможността за осъществяване на много по -директно и цялостно управление на всички компоненти и услуги на операционната система.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave