Историја команди на ПоверСхелл сесији

У почетку Виндовс ПоверСхелл (попут цмд командне линије) чува историју извршених наредби само у тренутној сесији ПоверСхелл, када затворите прозор ПоверСхелл конзоле или поново покренете рачунар, историја ПоверСхелл команди које сте унели не смета се нигде. У поређењу са басхом, ово је значајан недостатак. У ПоверСхелл в5 представљеном у Виндовс 10 ова грешка је отклоњена.

Садржај:

  • Историја команди у ПоверСхелл-у 5.0, ПСРеадЛине модулу
  • Брисање историје команди у програму ПоверСхелл
  • Увези историју наредбе ПоверСхелл у другу сесију

Историја команди у ПоверСхелл-у 5.0, ПСРеадЛине модулу

Претпоставимо да откуцате и извршите неку врсту сложене ПоверСхелл наредбе. У оперативним системима Виндовс 10 и Виндовс Сервер 2016, чак и након што поново покренете рачунар, можете да отворите нову сесију програма ПоверСхелл и притиснете тастер са стрелицом горе. На екрану би се требала приказати задња унесена наредба. Ако наставите да притиснете тастер горе, видећете све команде извршене раније. Тако, помоћу тастера за горе и доле можете да се крећете кроз историју наредби и поново извршите претходно укуцане команде.

У старијим верзијама ПоверСхелл-а, историја наредби у тренутној сесији није сачувана након што се затворила. Помоћу тастера за надоле / доле можете да се крећете кроз историју команди у тренутној сесији или да их све одједном прикажете помоћу цмдлет-а Гет-Историја.

Можете приказати детаљније информације о претходно извршеним наредбама, укључујући статус и време почетка / завршетка наредбе:
Гет-Хистори | Формат-Лист-Власништво *

ПоверСхелл у Виндовс-у 10 подразумевано памти последње 4096 наредбе које су смештене у текстуалној датотеци која се налази у профилу сваког корисника

% усерпрофиле% \ АппДата \ Роаминг \ Мицрософт \ Виндовс \ ПоверСхелл \ ПСРеадлине \ ЦонсолеХост_хистори.ткт

. Историја се одржава одвојено за ПоверСхелл конзолу, одвојено за ИСЕ.

Покренута наредба ПоверСхелл улази у историју тек након завршетка. Ако ПоСх наредби треба дуго времена да се изврши, видећете је у историји наредби тек када је заврши..

У случају да не желите да се крећете кроз читаву историју наредби ПоверСхелл, можете да претражите историју наредби помоћу пречице на тастатури ЦТРЛ (обрнуто претраживање) и ЦТРЛ (тражи напред). Притисните комбинацију типки и започните типкати дио наредбе који желите пронаћи у претходно извршеним наредбама. Историја команди ће тражити унесени текст на било којој позицији (за разлику од претраге на ПоверСхелл конзоли од Ф8 или Схифт + Ф8, који траже подударности само на почетку реда) и одговарајућа опција је истакнута.

Напомена. Функционална евиденција наредби у ПоверСхелл-у 5 није уграђена у сам Виндовс Оквир за управљање, већ је заснована на трећем модулу ПСРеадЛине, значајно проширујући функционалност конзоле ПоверСхелл. У оперативном систему Виндовс 10 налази се у директоријуму Ц: \ Програм Фајлови\ ВиндовсПоверСхелл\ Модули\ ПСРеадлине и аутоматски се увози када се покрене ПоверСхелл конзола. ПСРеадЛине пружа означавање синтаксе у конзоли, одговоран је за могућност коришћења избора текста мишем и копирање / лепљење помоћу ЦТРЛ + Ц и ЦТРЛ + В. ПСРеадЛине није део посебно инсталираног ПоверСхелл 5 за претходне верзије оперативног система Виндовс. Стога, ако желите да користите функцију евидентирања напајања извршених ПоверСхелл наредби у претходним верзијама ОС-а (Виндовс 7 / 8.1 / Виндовс Сервер 2008 / Р2 / 2012Р2) поред инсталирања Виндовс Манагемент Фрамеворк 5.1, морат ћете инсталирати ПСРеадЛине модул помоћу менаџера пакета ПацкагеМанагемент (претходно ОнеГет) из мрежног спремишта са наредбом:

Инсталл-Модуле ПСРеадЛине

Комплетна листа функција ПСРеадЛине модула за управљање историјом извршења наредби у ПоверСхелл-у и кључевима који су уз њих могу се приказати командом:

Гет-ПСРеадлинеКеиХандлер | ? $ _. функција-слична '* хист *'

Опис кључне функције
---       --------             -----------
Опис кључне функције
---       --------                -----------
УпАрров ПревиоусХистори Замените унесене податке претходном ставком дневника
ДовнАрров НектХистори Замените своје уносе следећим записом дневника
Цтрл + Р РеверсеСеарцхХистори Извршите интерактивну претрагу дневника обрнуто
Цтрл + С ФорвардСеарцхХистори Извршите интерактивну претрагу дневника у правцу кретања
Алт + Ф7 ЦлеарХистори Избришите све ставке из дневника наредбеног ретка (не из дневника ПоверСхелл)
Ф8 ХисториСеарцхБацквард Тражи претходну ставку дневника која почиње тренутним улазом, на пример П ...
Схифт + Ф8 ХисториСеарцхФорвард Тражи следећу ставку дневника која почиње тренутним улазом, на пример Не ...
Унбоунд ВиСеарцхХисториБацквард Покреће нову претрагу дневника уназад.
Неповезан почетакОфХистори Идите на прву ставку дневника
Унбоунд ЕндОфХистори Идите на последњу ставку (тренутни улаз) у дневнику

Историја наредби се конфигурише помоћу цмдлета Гет-ПСРеадлинеОптион и Сет-ПСРеадлинеОптион. Тренутна подешавања могу се добити помоћу овог дизајна:

Гет-ПСРеадлинеОптион | одаберите ХисториНоДуплицатес, МакимумХисториЦоунт, ХисториСеарцхЦурсорМовесТоЕнд, ХисториСеарцхЦасеСенситиве, ХисториСавеПатх, ХисториСавеСтиле

Можда ће нас занимати подешавања за следеће параметре:

  • ХисториНоДуплицатес - Да ли треба да чувам исте команде у историји ПоверСхелл-а?
  • МакимумХисториЦоунт - максимални број сачуваних наредби (4096 наредби се задано спрема);
  • ХисториСеарцхЦурсорМовесТоЕнд - да ли ићи на крај наредбе приликом претраге;
  • ХисториСеарцхЦасеСенситиве - да ли приликом претраживања морају бити осетљиви на велика и мала слова;
  • ХисториСавеПатх - пут до текстуалне датотеке у коју је сачувана историја наредби ПоверСхелл;
  • ХисториСавеСтиле - карактеристике команди за чување:
    • СавеИнцременталли - наредбе се спремају током извођења (подразумевано)
    • СавеАтЕкит - чување историје при затварању конзоле
    • СавеНотхинг - онемогућава историју команди

Можете променити подешавања ПСРеадЛине модула коришћењем наредбе Сет-ПСРеадлинеОптион, на пример:

Сет-ПСРеадлинеОптион -ХисториСавеСтиле СавеАтЕкит

Стога је могућност да се сачува историја извршених команди у ПоверСхелл 5.0 још један аргумент за напуштање цмд у корист ПоСх конзоле..

Брисање историје команди у програму ПоверСхелл

Као што смо горе описали, модул ПСРеадлине спрема све наредбе ПоверСхелл конзоле у ​​текстуалну датотеку. Међутим, у неким случајевима администратор ће можда морати да унесе разне поверљиве податке (повериоце, лозинке, адресе, лични подаци итд.) У ПоверСхелл конзолу. Према томе, други администратор или нападач може приступити подацима у текстуалној датотеци. Из безбедносних разлога можда ћете требати да очистите дневник наредби ПоверСхелл или потпуно онемогућите историју наредби.

Цмдлет Цлеар хистори не може се користити за брисање историје команди, јер брише само листу претходних команди које приказује цмдлет Гет-Хистори.

Да бисте избрисали историју претходних ПоСх наредби, морате избрисати датотеку у коју су сачуване. Најлакши начин за то је помоћу наредбе:

Уклони ставку (Гет-ПСРеадлинеОптион) .ХисториСавеПатх

Након тога, затворите ПоСх сесију:

Ако желите потпуно онемогућити спремање историје ПоСх наредби у текстуалну датотеку, покрените наредбу:

Сет-ПСРеадлинеОптион -ХисториСавеСтиле СавеНотхинг

Увези историју наредбе ПоверСхелл у другу сесију

У неким случајевима је прикладно имати при руци једну или исту листу често коришћених ПоверСхелл команди на различитим рачунарима. Можете да извозите тренутну историју команди у кмл датотеку и да их увозите на друге рачунаре. Ово се може учинити копирањем датотеке ЦонсолеХост_хистори.ткт у корисничке профиле на потребним рачунарима..

Такође можете користити цмдлет Екпорт-Цликмл за извоз команди из тренутне сесије у датотеку:

Гет-Хистори | Екпорт-Цликмл -Патх ц: \ пс \ Цоммандс_хист.кмл

Да бисте увезли наредбе из датотеке у ПоСх сесију:

Историја додатака -ИнпутОбјецт (Импорт-Цликмл -Патх ц: \ пс \ Цоммандс_хист.кмл)

Да бисте аутоматски увезели наредбе у датотеку на крају ПоСх сесије, можете повезати скрипту на догађај завршетка ПоСх сесије (!! Сесија мора завршити наредбом излаза, а не само затворити ПоСх прозор):

$ ХистФиле = Приступни пут ([Околина] :: ГетФолдерПатх ('УсерПрофиле')) .пс_хистори
Регистер-ЕнгинеЕвент ПоверСхелл.Екитинг -Ацтион Гет-Хистори | Екпорт-Цликмл $ ХистФиле | оут-нулл
иф (Тест-патх $ ХистФиле) Импорт-Цликмл $ ХистФиле | Историја додатака