Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Интересные нововведения
Кроме описанных выше синтаксических конструкций, позволяющих автоматизировать различные задачи системного администрирования, PowerShell обладает также и рядом принципиально новых решений, таких как демонстрации возможных последствий работы сценария. То есть с помощью конструкции -whatif демонстрируется то, что будет сделано, и предсказывается эффект, но никаких изменений в системе и действий над объектами не производится. Приведу пример работы небольшого сценария, в котором рекурсивно обходится папка c:Program Files, ищет файлы *.ini и пытается их удалить:
> get-childitem "c:Program Files" -include *.ini -recurse | remove-item –whatif
What if: Performing operation "Remove File" on Target
"C:Program FilesABBYY Lingvo 12LingvoCESetup.ini".
What if: Performing operation "Remove File" on Target
"C:Program FilesABBYY Lingvo 12LingvoPalmSetupPalm.ini".
What if: Performing operation "Remove File" on Target
"C:Program FilesABBYY Lingvo 12BITSetup.ini".
What if: Performing operation "Remove File" on Target
"C:Program FilesAdobeAcrobat 7.0Setup FilesRdrBig709ENU x009.ini".
What if: Performing operation "Remove File" on Target
"C:Program FilesAdobeAcrobat 7.0Setup FilesRdrBig709ENUAbcy.ini".
В результате работы сценария система сообщает нам о найденных файлах и действиях, которые могли бы быть применены к этим файлам, но сами файлы не удаляются.
Другой пример:
> get-childitem "c:Program Files" -include *.ini -recurse | remove-item –confirm
Confirm
Are you sure you want to perform this action?
Performing operation "Remove File" on Target
"C:Program FilesABBYY Lingvo 12LingvoCESetup.ini".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
Здесь вместо -whatif используется команда -confirm. В результате перед выполнением действия на консоль выводится запрос на подтверждение выполнения указанного действия. Стоит отметить, что параметры -whatif и -confirm можно применять практически к любым командам Powershell.
Также хотелось бы сказать несколько слов об объектности интерпретатора PowerShell. Вот, например, поиск процесса по маске notep*: