Computer help - file server


[ Blog ] - [ File Server ] - [ Удаленная компьютерная помощь ]

Кто не желает быть волшебником и произнести несколько слов, чтобы произошли волшебные вещи? Что ж, мы не можем показать вам, как стать волшебником, но мы можем показать вам, как творить небольшую компьютерную магию.

Если у вас есть компьютер под управлением Windows с Windows 7, у вас есть PowerShell. Кроме того, если у вас есть компьютер с Windows 7, обновите его в целях безопасности.

Но эта статья предназначена не только для пользователей Windows. Последняя версия PowerShell бесплатна и может быть установлена ​​и использована на компьютерах Mac и Linux.

Это важно, потому что то, что вы узнали о PowerShell, теперь можно использовать практически на любом компьютере. Кто знает? Вы можете вывести этот навык на новый уровень и сделать карьеру в области информационных технологий. Что такое PowerShell?

Высокотехнологичный ответ Microsoft заключается в том, что это «… оболочка командной строки, разработанная специально для системных администраторов». Звучит устрашающе. Но это не так. Вы заботитесь о своем компьютере? Да, значит, вы системный администратор в своем доме.

Указываете ли вы своему компьютеру, что делать с щелчками и нажатиями клавиш? Да, поэтому воспринимайте оболочку командной строки как еще одно окно, в которое вы вводите информацию, чтобы сообщить компьютеру, что делать.Ты можешь это сделать.

PowerShell похож на язык программирования, но не такой загадочный, как большинство других. Он действительно очень похож на обычный английский, к чему Microsoft стремилась, чтобы его могли освоить непрограммисты.

Это способ написания нескольких строк команд, называемых сценарием, чтобы заставить операционную систему Windows делать то, что вы хотите. Затем вы можете сохранить эти строки в файле и запустить его одним щелчком мыши или запланировать периодический запуск. Что можно делать с помощью PowerShell?

Главная особенность PowerShell - это возможность автоматизировать задачи, чтобы вам не приходилось тратить время на повседневные дела постоянно.Для профессионального системного администратора это может быть что-то вроде создания новых пользователей, генерации паролей для них и отправки электронного письма с подробностями их новому руководителю.

Выполняется вручную, с щелчками и вводом текста, этот процесс может занять от 5 минут до часа и более. С правильными сценариями системному администратору, возможно, даже не придется выполнять какую-либо часть этого.

Но вы хотите знать, что вы можете делать с PowerShell дома. Практически все, что вам не нравится делать снова и снова.Используйте его, чтобы освободить место на жестком диске, удалив временные файлы и файлы журнала, которые вам не нужны.

Установите комендантский час на компьютере ребенка. Переименуйте или организуйте кучу файлов. В этом вся прелесть PowerShell. Практически все, что вы можете делать на своем компьютере, вы можете создать с помощью сценария PowerShell для автоматизации и запуска одним щелчком мыши или по расписанию. Как использовать PowerShell?

Самый простой способ работать с PowerShell - это интегрированная среда сценариев PowerShell (ISE). Вы можете найти его, нажав Пуск и набрав powershell ise в строке поиска в Windows 10.Вы должны увидеть это, как показано ниже.

В первый раз, когда мы его используем, мы собираемся запустить его от имени администратора. Для этого у вас сначала должны быть права администратора на вашем компьютере. В меню «Пуск» щелкните правой кнопкой мыши PowerShell ISE, затем выберите «Запуск от имени администратора».

Вы можете получить всплывающее окно с предупреждением об управлении доступом пользователей (UAC) с вопросом, действительно ли вы хотите это сделать. Щелкните Да.

Теперь вы смотрите на IDE PowerShell. Верхняя панель окна (1) - это панель сценариев.Здесь вы напишете свой сценарий. Нижняя панель окна (2) - это область консоли. Когда вы протестируете свой скрипт, вы увидите результат на этой панели.

Здесь вы также увидите сообщения об ошибках, которые помогут вам исправить и улучшить ваши скрипты. Панель в правой части окна (3) - это надстройка команды. Думайте об этом как о словаре всех доступных вам команд PowerShell.

PowerShell настроен так, чтобы не запускать никаких сценариев, кроме тех, которые уже являются частью Windows.Вам нужно будет изменить его, чтобы вы могли запускать свои собственные скрипты.

В окне сценария скопируйте и вставьте следующее: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Его часть Set-ExecutionPolicy называется командлетом (произносится как командлет). Командлеты - мощная штука. Думайте о них как о коротких командах, которые вы можете дать Windows, и Windows сделает кучу более сложных вещей, чтобы удовлетворить вашу команду.

Можно сказать ребенку, чтобы он убрал свою комнату. Коротко и по делу.Если ваш ребенок хорошо разбирается в уборке комнаты, он пойдет и заправит постель, положит белье в корзину, поставит на полки свои игрушки и книги и, возможно, даже пропылесосит пол. Они понимают, что все это имел в виду командлет Clean-YourRoom.

В верхней части окна вы увидите зеленую стрелку. Щелкните по нему, чтобы запустить команду.

Часть -ExecutionPolicy сообщает Set-ExecutionPolicy, какую политику установить. Это параметр. Он говорит: «Я хочу, чтобы вы работали в соответствии с этими принципами и делали именно это.Он сообщает ему использовать определенную политику RemoteSigned.

Политика RemoteSigned гласит, что PowerShell не может выполнять или запускать любой сценарий, загруженный из Интернета, если он не был подписан доверенным издателем.

Окольными путями он сообщает PowerShell, что можно запускать любой сценарий, созданный локально, потому что его не нужно подписывать удаленным доверенным издателем. Теперь ваш сценарий PowerShell сможет запускать любой сценарий, который вы напишете на своем компьютере.

Давайте посмотрим на сценарий для удаления временных файлов.Он не такой мощный или тщательный, как CCleaner, но CCleaner имеет свой собственный набор проблем. Используйте PowerShell для освобождения места на жестком диске

Мы разберем этот скрипт построчно, чтобы вы могли увидеть, как он работает. В конце скрипт будет показан полностью, так что вы можете скопировать и вставить его, если хотите. $ TempFileLocation = "C: \ Users \ username \ Appdata \ Local \ Temp \ *"

Все, что стоит перед знаком доллара, является именем переменной. Думайте об этом как о кошельке, в который можно положить ценные вещи.Кошелек напоминает нам знак доллара, ценные вещи звучат как переменные, так что мы тоже это запомним. Мы создаем кошелек или переменную с именем $ TempFileLocation. Знак равенства сообщает PowerShell, что нужно поместить в эту переменную.

В этом случае мы указываем местоположение временных файлов Windows - C: \ Users \ username \ AppData \ Local \ Temp \ *. Мы делаем это по двум причинам; это место, из которого всегда безопасно удалять файлы, и мы собираемся использовать его, чтобы сообщить PowerShell, куда он должен перейти для удаления файлов.

Там, где указано имя пользователя в этом месте, замените его на свое имя пользователя. Это имя пользователя, которое вы используете для входа на свой компьютер. Звездочка (*) в конце - это подстановочный знак. Он представляет собой все, что находится в папке Temp, потому что все в папке Temp является временным, и мы хотим его удалить.

Двойные кавычки вокруг местоположения тоже важны. Это сообщает PowerShell, что там находится строка. Думайте о строке как о строке букв и символов. Если бы это были обычные числа, мы бы не использовали кавычки.$ TempFile = Get-ChildItem $ TempFileLocation -Recurse

Мы создаем другую переменную. На этот раз мы собираемся использовать команду, чтобы придумать что-то, что нужно вставить в переменную $ TempFile. Get-ChildItem

Еще одна вещь, которую вы заметите в таких командлетах, как Get-ChildItem, - это то, что они полностью читабельны. Видите, как первое слово - глагол? Все командлеты начинаются со слов действия, поэтому вы сразу понимаете, что они делают. ChildItem - это два существительных.

Вторая часть командлета всегда сообщает нам, к какому PowerShell будет применяться действие.ChildItem означает всех дочерних элементов родительского местоположения. Это все равно, что сказать: получить все файлы, которые находятся в папке, где файлы являются дочерними, а папка - родительской.

Какой командлет получает дочерние элементы? Все в переменной $ TempFileLocation. PowerShell перейдет в то место, которое мы поместили в $ TempFileLocation ранее, и получит все дочерние элементы, которые там есть. Затем он поместит их в переменную $ TempFile.

Итак, что с частью -Recurse? Это говорит Get-ChildItem пройти через все в этом месте.Не пытайтесь сразу получить файлы в родительской папке. Если в этой папке есть папки, получите всех их детей, их детей и так далее. Мы собираемся получить их всех. $ TempFileCount = ($ TempFile) .count

Да, мы создаем третью переменную с именем $ TempFileCount, и мы собираемся поместить в эту переменную число. Где номер? Что ж, ($ TempFile) .count даст нам это число. Вы, наверное, догадались, что часть .count будет производить подсчет всех файлов, которые мы только что сохранили в $ TempFile.

Почему мы это сделали? В основном потому, что приятно знать, сколько бесполезных файлов мы очищаем остальной частью скрипта, чтобы определить, насколько он эффективен. if ($ TempFileCount -eq 0)

Теперь мы настраиваем условный оператор. Вы можете видеть, что он спрашивает «если». Если что? Верно или неверно указанное в скобках. Скобки важны, иначе If не знает, с чем сравнивать. Здесь он спрашивает, равно ли нулю число, которое мы сохранили в $ TempFileCount.

-eq - это сокращение от слова "равно". Это тип оператора сравнения. Это все равно, что сказать своим детям: «Если ваша комната чистая, отлично, мы собираемся что-то сделать…» Это утверждение говорит, что если число, сохраненное в $ TempFileCount, равно нулю, выполните следующее. {Write-Host "В папке $ TempFileLocation нет файлов" -ForegroundColor Green}

Это то, что произойдет, если $ TempFileCount равно нулю. Фигурные скобки важны. Они говорят PowerShell делать только то, что находится внутри них, если $ TempFileCount равно нулю.

Он напишет хосту или экрану: «В папке C: \ Users \ username \ Appdata \ Local \ Temp \ * нет файлов». Параметр в конце –ForegroundColor сообщает PowerShell, что текст должен быть зеленым. Это просто упрощает отличия от сообщения об ошибке, которое обычно красное. Else

Вы знаете, что еще значит. Это часть «Лучше быть в вашей комнате чистой, иначе…», чтобы проверить, убрал ли ваш ребенок свою комнату. Вот что произойдет, если $ TempFileCount не равно нулю. {$ TempFile | Remove-Item -WhatIf -Confirm: $ false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}

Это говорит о переходе в текущее местоположение, хранящееся в $ TempFile.Вертикальная линия после нее называется трубой. Он работает как реальная труба, поскольку сообщает PowerShell, что нужно направлять содержимое $ TempFile в командлет, как если бы вода поступала по трубопроводу в стиральную машину. Затем командлет Remove-Item выполняет то, что он говорит; он удаляет все, что находится в этом месте.

Параметр -WhatIf очень важен на этом этапе. Он сообщает PowerShell выполнить команду, но только попробуйте, ничего не удаляйте. Просто покажите нам, что было бы, если бы мы действительно это сделали.

Это позволяет вам тестировать команды, ничего не меняя на вашем компьютере. Оставьте -WhatIf там, пока не убедитесь, что сценарий будет делать то, что вы хотите, и ничего больше. Затем просто удалите это, и скрипт выполнит свою работу.

Параметр -Confirm: $ false не дает скрипту спрашивать, действительно ли вы хотите удалить файл. Вы знаете, что делает -Recurse. -Сила означает удалить эту вещь несмотря ни на что. -WarningAction имеет значение SilentlyContinue.

Это предотвращает выдачу скриптом предупреждений о том, что вы удаляете. -ErrorAction имеет значение SilentlyContinue, поэтому, если в процессе есть какая-либо ошибка, он просто продолжает работать.

Теперь мы на последней строчке. Write-Host «Очистил файлы $ TempFileCount в папке $ TempFileLocation» -ForegroundColor Green}

Как и в первый раз, Write-Host выведет следующее предложение, чтобы мы знали, что произошло. Он сообщит нам, сколько файлов было удалено из папки, которую он только что обработал, и выделит это зеленым цветом, чтобы их было легко обнаружить.

Давайте посмотрим на сценарий в целом: $ TempFileLocation = "C: \ Users \ guymcd \ Appdata \ Local \ Temp \ *" $ TempFile = Get-ChildItem $ TempFileLocation -Recurse $ TempFileCount = ($ TempFile) .count if ($ TempFileCount -eq "0") {Write-Host "Нет файлов в папке $ TempFileLocation" - ForegroundColor Green} Else {$ TempFile | Remove-Item -Confirm: $ false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue Write-Host "Очистил файлы $ TempFileCount в папке $ TempFileLocation" -ForegroundColor Green}

Вы можете скопировать и вставить это в ваш PowerShell ISE и сохраните его как что-то вроде delete-TemporaryFiles.ps1. Вы можете также придерживаться соглашения об именах командлетов теперь, когда вы их понимаете.

Если код по какой-то причине у вас не работает, вы также можете загрузить созданный нами сценарий PowerShell и просто запустить его. Просто сначала разархивируйте его, чтобы просмотреть файл сценария.

Когда бы вы ни захотели запустить этот сценарий, просто щелкните его правой кнопкой мыши и выберите «Выполнить с помощью PowerShell». Консоль PowerShell появится на секунду или две, пока ваш скрипт сделает свое дело, а затем исчезнет, ​​если ошибок нет.

Где я могу узнать больше о PowerShell?

Вроде много! Для вашего первого скрипта PowerShell это неплохо. Если вы зашли так далеко, поаплодируйте себе. Сегодня вы многому научились, но теперь вы хотите узнать больше. Замечательно!

В Интернете есть множество ресурсов для получения дополнительных сведений о PowerShell. Хорошее место для начала - наша статья «Создание списка запускаемых программ с помощью командной строки или PowerShell». Затем ознакомьтесь с другими ресурсами: Начало работы с Microsoft PowerShell - Учебное пособие по PowerShell для Microsoft Virtual Academy - TutorialsPoint.com

.
SETUP UA COMPUTER BLOG