Msftewds что это за файл
Статья подготовлена на основе уроков из открытой темы "Установка LEMP стека с помощью Ansible" курса по Ansible от Слёрм. Автор – Всеволод Севостьянов, Lead Engineer в Vene.io (Affiliate marketing solution). Первые две темы курса доступны на Youtube.
Материал этого урока будет интересен тем, кто разобрался с установкой Ansible и готов написать свой первый плейбук. Результатом будет плейбук, устанавливающий nginx на удалённой машине.
Hosts
Начнём наше знакомство с Ansible с мануала по командам.
Плох тот админ, который не читает маны – верно?
На что смотрим. Первое – это обязательный аргумент pattern, который указывает, какие хосты мы берем, на каких машинах мы будем выполнять наши команды. Мы будем выполнять на всех – all. Второе, персональная команда – вывести хосты, то есть, команда, которая выведет нашу машину.
All означает – все хосты, которые у нас возможны. Увидим ответ, что список пустой. Почему так происходит? Потому что Ansible по умолчанию берет данные из /etc/ansible/hosts. Посмотрим, что это за файл.
Здесь всё задокументировано
Видим, что мы можем указывать хосты просто через enter и указывать их IP-адреса, либо их доменные имена. Можем их группировать.
Можем даже циклы делать, то есть, говорить, что вот такие хосты у нас существуют в сети и он, соответственно, их развернет просто в список хостов. Нас, естественно, этот файлик не устраивает, и менять мы его не хотим. Мы напишем свой.
Заходим в папочку ansible, в нашем проекте. И создаём файлик, я назову его hosts.ini. Ini – это как раз тот самый формат, когда вы всё перечисляете просто через enter и пишите строку, стандартный формат конфигурации.
Укажем в первой строке IP-адрес нашего второго хоста, то есть, нашего сервера непосредственно. У меня 192.168.50.5 и теперь запускаем команду Ansible ещё раз.
Естественно, он никак не отреагирует, он по-прежнему берет данные из файлика /etc/ansible/hosts.
Для того чтобы он брал данные из нашего файлика – вызовем команду h и увидим в списке команду –i. Ansible называет файлики hosts – эти файлики, где у нас все машины перечислены, inventory. То есть, как по аналогии с каким-то кладовщиком – у него есть инвентарь и в нём указаны все машины, которые нам принадлежат. Мне кажется, это вполне логичным, легко запоминается и указывается через –i.
Мы находимся в корневой папке пользователя и для того, чтобы нам перейти в папку выше – мы указываем ./ansible/hosts.ini.
И давайте разберемся немножко с тем, как запускать команды из Ansible. Попробуем подключиться к удаленному хосту и запустить что-нибудь. В Ansible все команды являются модулями и указываются с помощью ключевого слова m. Запустим стандартный модуль, называемый ping, который ничего не сделает на машине, кроме того, как даст ей команду ping. Это команда, которая физически выполняется Ansible на удаленной машине. Он в неё заходит, загружает модуль Python, вызывает команду ping. И выдаёт ответ.
Нас просят подтвердить, поскольку подключается по SSH, нужно подтверждение сертификата. И мы увидим первую ошибку, что доступ закрыт. Стандартная ошибка, это значит, что нам нужно ввести пароль. На этот случай у Ansible существует команда --ask-pass.
Которая спрашивает с каким паролем мы заходим. Следующая ошибка, с которой мы сталкиваемся: нельзя использовать пароли без установки команды sshpass. Проблема решается просто.
Итак, команда sshpass установлена, и мы, соответственно, вызываем команду ping и задаём ему пароль.
При этом, как мы увидим, команда выполнилась, вывела нам ответ в формате json. Написала, что на удаленной машине у нас Python3, который мы используем для выполнения этого модуля, ничего не изменилось на ней. Команда, не меняющая ничего, и ответ на ping – pong.
Возможно вы заметили, что в примере я не указывал пользователя Ansible, потому что нахожусь под пользователем vagrant и Ansible по умолчанию использует того же пользователя для подсоединения по ssh.
Теперь следующий момент, который мы с вами посмотрим – это как так написать файлик hosts, чтобы больше вот этим всем не заниматься. Потому что если у вас пятьдесят машин и вводить для каждой пароль даже один раз – не очень хороший вариант.
Одним из атрибутов нашего файлика hosts является то, что мы можем присвоить каждой из машин, находящихся в нём какие-то специфичные для неё параметры. И одним из набора специфичных параметров для этой машины являются переменные ansible_user и ansible_password, которые, соответственно, задают пользователя и пароль.
Теперь, если мы запустим Ansible, если мы уберем --ask-pass, то есть, не будем запрашивать пароль, но оставим всё остальное, то, соответственно, все равно нам вернётся success, на этот раз никто у нас никакой пароль не спрашивал.
Таким образом, если у нас будет ещё какая-то другая машина в системе, на которой другой пользователь, мы можем указать всё в файлике hosts и залогиниться на другую машину. Выполнить там точно также команды. Таким образом, мы разделяем сами команды и необходимые параметры, данные для этих машин. У нас всё готово к тому, чтобы писать первый плейбук.
NGINX
Итак, что такое плейбук? Это термин, взятый из футбола. Обозначает книгу тренера, который там что-то записывает и задаёт сценарий игре. Плейбук– это оно и есть, список сценариев для запуска Ansible. То, что мы делали командой Ansible –m, просто запущенная с разными командами, разными аргументами несколько раз. Плейбуки позволяют нам также определить, на каких хостах мы им запускаем и какие задачи мы им задаём. И мы посмотрим, как это работает.
В папке ansible создадим файл playbook.yml. Плейбуки пишутся в формате yaml. Мы будем знакомиться с этим форматом в процессе написания плейбуков. На данный момент, что нас интересует? Плейбуки начинаются с трёх дэшей или с трёх чёрточек и закачиваются тремя точками.
Этот формат необязательный. Я, например, не использую три точки, но начинаю с чёрточек, потому что это достаточно удобно. Плейбуки позволяют нам делать комментарии, поэтому я здесь сразу и напишу.
Соответственно, в плейбуке нужно обязательно ставить какие-то play. Play задаются с помощью массива, то есть в yaml следующая запись обозначает массив.
И здесь мы можем написать, например, разные переменные. Наш плейбук в себе будет содержать play, и каждый play в себе обязан содержать hosts – это также как мы писали в консоли Ansible – all. Здесь то же самое. Это базовая вещь, базовый play, и мы можем запустить плейбук.
Если мы хотим создать второй play – мы создаём второй элемент массива, ему определяем какой-то второй параметр и для yaml это значит, что это массив с двумя переменными. Сейчас нам это не нужно.
Переходим в консоль Ansible. Командой ls увидим, что у нас есть файлы hosts.ini и playbook.yml. И для того, чтоб запустись плейбук, у Ansible существует консольная команда: ansible-playbook. Она очень похожа на команду Ansible, за исключением того, что вместо передачи аргументов хостов, мы передаём аргумент плейбук, то есть путь к файлику playbook.yml. Укажем hosts.ini, как файлик инвентаря, то есть, это две базовые вещи, которые нужно ansible-playbook для того, чтобы работать. Какие хосты и что мы делаем.
Теперь он запускает PLAY [all] – это play, который нам говорит для всех хостов. И первый TASK [Gathering Facts], который мы даже не указывали – это собирание фактов, первый модуль, который загрузится – это модуль Ansible, который загружается на машину и собирает все факты с этой машины. На данном моменте нам достаточно знать, что каждый play в плейбуке собирает факты о машине – это может быть операционная система, версия Python, которая там стоит, IP-адреса, порты и так далее.
После сбора фактов Ansible возвращает нам команду ok и возвращает статистику. Какие задачи были ok, какие что-то изменили в системе, какие не смогли достичь удалённой системы, задачи провалившиеся при настройке, пропущенные, восстановленные, и какие задачи были проигнорированы системой.
Каждый хост, каждый play в плейбуке характеризуется целью, на какие хосты мы его применяем и набором задач, так называемыми task-ами. Task-и – это тоже массив, потому что task на play может быть много, соответственно, как play в плейбуке, здесь всё логично. И каждый task, как минимум, содержит в себе имя. Имя, также как и hosts, — это строка. Строки в yaml задаются любо через кавычки, либо без них. Я рекомендую кавычки, потому что в таком случае yaml не будет теряться при попытке скастовать что-то, то есть, если у вас там строка — это строка, если у вас число – это число и к тому же, это очень хорошо видно в IDE. И первая task-а для нас – это будет установка самого nginx на удалённой машине. Давайте, так её и назовём. Install nginx via apt. И поехали делать task.
После указания имени task, нам нужно указать модуль, который будет его выполнять. Как вот мы указывали -m ping, здесь надо сделать тоже самое. Поскольку nginx у нас установится через систему APT, мы можем посмотреть, как же она называется в Ansible.
То есть, Ansible позволяет выполнять консольные команды, как мы посмотрим в дальнейшем, но всегда рекомендую использовать модули, потому что модули обеспечивают одно важное качество Ansible.
Существует модуль ansible.builtin.apt, который как раз позволяет устанавливать нам софт через apt-packages. И здесь все его параметры и достаточно интересная документация с примерами. Я смотрю на примеры, как человек со стажем, как правило, они более актуальны, чем документация. В данном случае они совпадают. И смотрим, что для apt нужно указать имя и state.
Смотрим. Для начала: разница как раз между Ansible 2.9, 2.10 и 2.11 в том, что Ansible будет форсить, будет заставлять людей использовать полные имена модулей. Потому что, если кто-то еще напишет модуль apt, и он у вас будет установлен в системе, Ansible может потеряться. Он может не понять, какой apt ему запускать. Поэтому надо всегда указывать полный путь. И так мы и будем поступать. Соответственно, здесь указывается полный путь к модулю. И дальше указываются параметры модуля.
Важно понимать, что это все словари. Имя — это ключ словаря и строка "Install nginx via apt" — это значение. Ansible.builtin.apt – это тоже ключ, а значение у него это список аргументов и они в yaml идут через 2 пробела. Это важно, потому что если у вас не будет нужного количества пробелов, yaml будет ругаться на то, что он не может ничего сконфигурировать. И поэтому я и рекомендую использовать какую-нибудь IDE, а не писать просто это все в блокноте и следить там руками за пробелами. Это неудобно.
Поэтому, указываем первый параметр — это имя пакета. Имя пакета у нас просто nginx.
И второй параметр — это state. Соответственно, что такое state? State, как написано в документации — это в каком состоянии мы хотим найти пакет. Ansible, он сам по себе декларативный, то есть, вы не указываете в плейбуке, что ему нужно сделать, вы указываете, что вы хотите видеть. И state – это как раз очень хороший пример. То есть вы не говорите, что я хочу установить такой-то nginx, вы говорите: я хочу видеть пакет nginx в apt в таком-то state-е. По умолчанию state – present. Это значит, что если у вас уже есть какой-то пакет в Ansible, то state у него, соответственно, будет неизменным. И есть state – latest. В таком случае, если apt найдет какую-то более свежую версию пакета, то он попробует ее обновить.
Последняя команда, которую я хотел бы задать здесь, это update_cache. Это тоже самое, что вы запускаете каждый раз перед запуском любой команды apt, соответственно sudo apt. Update, которая просто обновит cache всех библиотек, которые у вас лежат в архиве.
Запускаем Плейбук в консоли Ansible второй раз.
Первая команда Gathering Facts. Вторая команда Install nginx via apt. И она провалилась. То есть написано "Failed to lock apt for exclusive operation". Это не очень подробное описание, но оно нам позволяет понять, что не получилось у apt получить какой-то lock.
Почему? Потому что существует в Ansible политика выполнения команд от того пользователя, которым вы залогинились. То есть в данном случае пользователь vagrant пытается установить что-то через apt. И не может, потому что apt пишет в системные файлы, которым нужен root.
Для того, чтобы Ansible стал root, мы используем команду в play become true, которая будет выполнятся для всех task в этом play. Можем ее использовать внутри task, можем ее использовать внутри play. В данном случае я хочу, чтобы все, что мы делали, делалось через sudo под root. И поэтому ставлю ее в непосредственно play.
Теперь команда будет запущенна от root. Можно видеть, что true в данном случае не строка, а булево. То есть истина или ложь. Точно также, как и update_cache. Это еще один тип переменных в формате yaml.
Запускаем Плейбук в консоли Ansible третий раз.
И мы видим, что nginx успешно установился. Также видим новый статус – changed. Это значит, что nginx что-то изменил в системе – установил пакет.
Здесь самое время сказать, что Ansible является идемпотентным, то есть, он задуман, как идемпотентная система. Что это значит? При запуске одного и того же плейбука 2 раза на одной и той же системе, у вас в этой системе ничего не изменится. Второй раз apt даже пытаться не будет, он проверит список пакетов, он увидит nginx и не будет ничего дальше делать. То есть статус ok — это значит, что система соответствует тому статусу, который вы от неё ожидаете.
Теперь чтобы проверить, что nginx действительно настроен, возьмём любой шаблон лендига и запустим.
Создаём task. Удаляем папку по умолчанию var/www/html. Для того, чтобы скопировать нашу папку с нашим лендингом для заглушки на веб-сайт. Воспользуемся другой командой Ansible – ansible.builtin.file. Указываем путь – path. И дальше помним про идемпотентность – указываю state – absent. Просто указываю state. То есть, как там всё будет происходить, как эти файлы будут удалятся. Ansible написан в таком духе, что мы описываем состояние системы.
Ну, и последнее, что мы делаем, копируем наш лендинг в папку var/www/html. У меня сейчас лендинг в папке files в директории Ansible. Пишем последнее имя task "Copy our lending to /var/www/html folder". Будем пользоваться командой ansible.builtin.copy, которая будет копировать файлы с нашей локальной машины на удаленную машину.
Указываем путь. Пути поддерживаются абсолютные и относительные. На нашей машине, скорее всего, мы не знаем, откуда мы будем запускать Ansible, поэтому пишем относительные пути – scr: "files/html" И в dest мы указываем "/var/www/". В чем смысл? Когда мы копируем через vagrant upload. Vagrant upload нам копирует содержимое папки внутрь. В данном случае Ansible будет копировать всю папку. И, поэтому, если мы хотим скопировать что-то в var/www/html, нам нужно назвать папку соответствующим образом и скопировать ее корневую директорию.
Далее мы указываем owner и group. Это просто пользователь и группа. И указываем mode – режим. Если не указать пользователя, группу и режим, то Ansible будет пытаться скопировать это все под пользователем, под которым он запущен. И с become true это, скорее всего, будет root.
Запускаем наш Playbook ещё раз. Он идемпотентный, то есть второй раз nginx у нас не установится. Наш объект будет удален и копируется наш новый лендинг в var/www/html.
Осталось проверить, как это работает. Открываем IP-адрес нашего сервиса. Всё, поздравляю, nginx настроен. Буквально 3 команды в плейбуке.
Если вы администрируете общие сетевые папки Windows, скорее всего вы периодически сталкиваетесь с просьбами пользователей принудительно закрыть файлы, открытые (заблокированные) в сетевых папках другими пользователями. Обычно это связано с некорректной работой программы, неправильном завершении сессии пользователя или ситуациях, когда пользователь открыл файл и забыл закрыть его (ушел домой, в отпуск и т.д.). Во всех этих случаях файл в сетевой папке оказывается заблокированным, и другие пользователи не могут вносить в него изменения.
В этой статье мы покажем, как получить список открытых файлов на файловом сервере Windows, узнать какие пользователи их используют, и способы сброса файловых сессий для разблокировки открытых файлов.
Вывод списка открытых файлов в сетевой папке Windows
Список открытых по сети файлов в Windows можно получить с помощью стандартной графической консоли Computer Management (Управление компьютером — compmgmt.msc ).
Запустите на файловом сервере консоль Computer Management (или подключитесь к нему консолью удаленно со своего компьютера) и перейдите в раздел System Tools -> Shared Folders -> Open files (Служебные программы -> Общие папки -> Открыты файлы). В правой части окна отображается список файлов на сервере, открытых удаленно. В данном списке указан локальный путь к файлу, имя учетной записи пользователя, количество блокировок и режим, в котором открыт файл (Read или Write+Read).
Этот же список открытых файлов можно получит с помощью встроенной консольной утилиты Openfiles. Например, с помощью следующей команды можно получить id сессии, имя пользователя и полный локальный путь к открытому файлу:
Openfiles /Query /fo csv |more
Вы можете вывести список открытых файлов на сервере удаленно. Например, чтобы вывести все открытые по сети файлы на сервере mskfs01, выполните:
Openfiles /Query /s mskfs01 /fo csv
Команда Openfiles позволяет также вывести список локально открытых файлов. Для этого на сервере нужно включить опцию Maintain Objects List (Построение списка объектов) командой openfiles /local on и перезагрузить сервер. После этого команда Openfiles будет отображать файлы, открытые локальными процессами (этот режим желательно использовать только для отладки, т.к. может негативно сказаться на производительности сервера).Определяем пользователя, который открыл файл в сетевой папке с помощью Openfiles
Чтобы удаленно определить пользователя, который открыл (заблокировал) файл cons.adm в сетевой папке на сервере mskfs01, выполните команду:
Openfiles /Query /s mskfs01 /fo csv | find /i "cons.adm"
Ключ /i используется, чтобы выполнялся регистронезависимый поиск.Можно указать только часть имени файла. Например, чтобы узнать, кто открыл xlsx файл, в имени которого есть строка farm, воспользуйтесь таким конвейером:
Openfiles /Query /s mskfs01 /fo csv | find /i "farm"| find /i "xlsx"
Можно, конечно найти открытый файл и в графической консоли Computer Management, но это менее удобно (в консоли нет возможности поиска).
Как принудительно закрыть открытый файл в Windows?
Чтобы закрыть открытый файл, нужно найти его в списке файлов секции Open Files и в контекстном меню выбрать пункт “Close Open File”.
Если на файловом сервере сотни открытых файлов, найти их в консоли будет непросто. Удобнее воспользоваться утилитой Openfiles. Как мы уже говорили, она возвращает ID сессии открытого файла. Вы можете принудительно закрыть файл и сбросить подключение пользователя по ID SMB сессии. Сначала нужно определить ID сессии открытого файла:
Openfiles /Query /s mskfs01 /fo csv | find /i "farm"| find /i ".xlsx"
Теперь можно принудительно отключить пользователя по полученному идентификатору SMB сессии:
Openfiles /Disconnect /s mskfs01 /ID 67109098
Можно принудительно сбросить все сессии и освободить все файлы, открытые определённым пользователем:
openfiles /disconnect /s mskfs01 /u corp\aivanova /id *
Get-SMBOpenFile: вывод списка открытых по сети файлов в PowerShell
В версии PowerShell в Windows Server 2012/Windows 8 появились командлеты для управления сетевыми файлами и папками на SMB сервере. Эти командлеты можно использовать чтобы удаленно закрыть открытые по сети файлы.
Список открытых файлов можно получить с помощью командлета Get-SMBOpenFile. Чтобы закрыть файл (сбросить подключение), используется Close-SmbOpenFile.
Для вывода полного списка открытых файлов на сервере, выполните команду:
Команда возвращает ID файла, ID сессии и полное имя файла.
Можно вывести список открытых файлов с именами пользователей и компьютеров (IP адресами):
Можно вывести все файлы, открытые определенным пользователем:
Get-SMBOpenFile –ClientUserName "corp\aaivanov" |select ClientComputerName,Path
или с определенного компьютера (сервера):
Get-SMBOpenFile –ClientComputerName 192.168.12.170| select ClientUserName,Path
Можно вывести список открытых файлов по шаблону. Например, все открытые по сети exe файлы:
или файлы с определенным именем:
Чтобы закрыть файл используется командлет Close-SmbOpenFile . Закрыть файл можно по ID:
Close-SmbOpenFile -FileId 4123426323239
Но обычно удобнее закрыть файл по имени:
Get-SmbOpenFile | where | Close-SmbOpenFile -Force
С помощью Out-GridView можно сделать простую графическую форму для поиска и закрытия файлов. Следующий скрипт выведет список открытых файлов. Администратор должен с помощью фильтров в таблице Out-GridView найти, выделить нужные файлы и нажать ОК. В результате выбранные файлы будут принудительно закрыты.
Get-SmbOpenFile|select ClientUserName,ClientComputerName,Path,SessionID| Out-GridView -PassThru –title “Select Open Files”|Close-SmbOpenFile -Confirm:$false -Verbose
Как удаленно закрыть открытые SMB файлы с помощью PowerShell?
Командлеты Get-SMBOpenFile и Close-SmbOpenFile можно использовать чтобы удаленно найти и закрыть открытые файлы. Сначала нужно подключиться к удаленному SMB серверу Windows через CIM сессию:
$sessn = New-CIMSession –Computername mskfs01
Также вы можете подключаться к удаленному серверам для запуска команд через командлеты PSRemoting: Enter-PSSession или Invoke-Command .Следующая команда найдет SMB сессию для открытого файла *pubs.docx и завершит ее.
Get-SMBOpenFile -CIMSession $sessn | where | Close-SMBOpenFile -CIMSession $sessn
Подтвердите закрытие файла, нажав Y . В результате вы разблокировали открытый файл. Теперь его могут открыть другие пользователи.
С помощью PowerShell вы можете закрыть и разблокировать на файловом сервере все файлы, открытые определенным пользователем (пользователь ушел домой и не освободил файлы). Например, чтобы сбросить все файловые сессии для пользователя ipivanov, выполните:
Get-SMBOpenFile -CIMSession $sessn | where |Close-SMBOpenFile -CIMSession $sessn
Сегодня мы разберемся с системными папками и каталогами «$WINDOWS.
WS», узнаем для чего они нужны, а также очистим значительное количество дискового пространства, удалив ненужные или неиспользуемые данные.
Содержание:
BT» и «$WINDOWS.
WS» – специальные системные каталоги, которые встречаются в Windows 7/8/10 и отвечают за хранение установленных обновлений , а также установочных файлов текущей операционной системы. Данные папки автоматически скрываются системой , поэтому для их определения следует включить отображение скрытых значков.
Одной из выделяющихся характеристик данных папок является их значительный размер , колеблющийся в зависимости от размера установленного обновления. Ниже будет приведено детальное описание, а также возможные действия с папками «$WINDOWS.
Где находятся папки «$WINDOWS.
Поскольку системные папки «$WINDOWS.
WS» скрываются системой , для их обнаружения следует включить отображение скрытых значков . Чтобы это сделать, необходимо зайти на диск с операционной системой (по умолчанию диск С), нажать по пункту «Вид» в верхней строке и поставить галочку напротив «Скрытые элементы» .
После этого скрытые папки будут отображаться на системном диске, где можно посмотреть их содержимое и узнать их размер.
Папки «$WINDOWS.
WS» в Windows 7 и 8
Пользователи Windows 7 и 8, при обновлении своей операционной системы до 10-ой версии, автоматически получают папки «$WINDOWS.
WS», куда производится загрузка установочных файлов новой ОС с сайтов Майкрософт. После завершения загрузки, обновление Windows будет происходить из данных папок. В данный момент, возможность бесплатного перехода на новую версию ОС более недоступна, поэтому система автоматически очищает установочные данные из папок, освобождая место.
Тем не менее, следует все равно проверить папки, поскольку бесполезные данные могут не удалиться (наличие таких файлов можно определить по слишком завышенному размеру указанных папок).
Папки «$WINDOWS.
WS» в Windows 10
Операционная система Windows 10 использует папки «$WINDOWS.
WS» для хранения установочных файлов, которые могут понадобиться для создания загрузочных дисков или возврата прошлой версии ОС . Помимо этого, здесь хранятся файлы, полученных обновлений .
Данные папки по своей сути дублируют папку «Windows.old» , которая используется для тех же функций, храня установочные данные старых версий системы. Вместе с последними обновлениями Windows 10 были добавлены автоматические средства, очищающие данные папки раз в 10 дней.
Очистка папок «$WINDOWS.
Очистка папок «$WINDOWS.
WS» допустима, но стоит понимать, что удаление установочных данных приведет к невозможности возврата системы на предыдущую версию. Если текущая версия Windows 10 полностью устраивает пользователя, то данные папки можно удалять для освобождения пространства на диске .
Чтобы сделать это, достаточно зайти на диск С , выделить указанные папки и удалить их комбинацией клавиш Shift+Delete .
Для выделения сразу нескольких объектов следует зажать клавишу Ctrl и отметить необходимые файлы и папки. Для выделения сразу нескольких объектов следует зажать клавишу Ctrl и отметить необходимые файлы и папки.После подтверждения удаления, файлы исчезнут с компьютера, минуя корзину . Подобную операцию можно провести с папкой «Windows.old» , которая также хранит файлы предыдущей установки ОС.
Другим способом очистки диска от ненужных файлов, является очистка носителя, через «Мой компьютер» .
Для этого следует выполнить шаги:
Шаг 1. Заходим в папку «Этот компьютер» и нажимаем ПКМ по системному диску (диск С по умолчанию), после чего выбираем пункт «Свойства» .
Шаг 2. Во вкладке «Общие» выбираем пункт «Очистка диска» .
Шаг 3. После анализа выбираем «Очистка системных файлов» .
Шаг 4. Теперь следует поставить галочки напротив пунктов «Предыдущие установки Windows» и «Временные файлы установки Windows» и подтвердить очистку.
Также в меню очистки диска можно выбрать и другие системные файлы, занимающие на диске лишнее пространство. К примеру, здесь можно очистить «Временные файлы» , журнал с ошибками и другую неактуальную информацию .
Папки Windows 10, которые можно удалить
Помимо системных папок «$WINDOWS.
WS», существует еще множество каталогов, которые можно удалить и тем самым очистить некоторое пространство на диске . Стоит понимать, что удаление этих файлов сделает невозможным использование некоторых функций системы.
Гибернация Windows «hiberfil.sys»
Функция гибернации является удобной альтернативой режиму «Сон» , предназначенному для экономии энергии и времени на запуск системы. Ключевым преимуществом гибернации является то, что перед входом в данный режим можно не закрывать программы и приложения, поскольку после запуска системы они будут работать, а все действия можно будет продолжить. Таким образом, можно просто продолжить работу с компьютером, а не ждать загрузки ОС и открытия всех необходимых программ.
К сожалению, гибернация настолько полезна, насколько и затратна по ресурсам , поэтому в некоторых ситуациях гибернацией можно пренебречь.
Функция гибернации работает при помощи системного файла «hiberfil.sys» , который бессмысленно удалять, поскольку он сразу будет снова восстановлен Windows.
Для его удаления необходимо воспользоваться следующим способом:
Шаг 1. Нажимаем ПКМ по кнопке «Пуск» и выбираем пункт «Командная строка (Администратор)» или Windows PowerShell(Администратор) .
Более года меня мучила проблема полного отсутствия памяти на диске "с" (97гб всего).
С 80гб свободного пространства до полного нуля ситуация скатилась всего за пол года. Ни ручная чистка ни какие утилиты мне не помогали освободить память более чем на 5гб, которые снова пропадали в течении нескольких часов. Я с этим смирился но в последние пару месяцев мне это стало причинять неудобства, пропали эскизы файлов и ярлыков, программы и игры не запускались, браузер жутко тормозил. Облазил весь интернет и перепробовал кучу действий и советов но не помогало ничего, до сегодняшнего дня. Наткнулся я на совет воспользоваться очередной программой очистки "Glary Utilities" которая так же мне не чем не помогла пока я не зашел в раздел "анализатор дискового пространства" где я увидел что что папка по пути "локальный диск (с:) - Windows - System32 - config" весит 60гб.
Доступа к ней конечно же у нас нету. И что бы увидеть что там происходит нужно в параметрах папок снять галочку с пункта "скрывать защищенные системные файлы" и естественно поставить галочку на пункте "показывать скрытые файлы и папки'.
Далее заходим по адресу "локальный диск (с:) - Windows - System32 - config" и недоумеваем от того что там происходит. Нам нужны файлы regtrans-ms и blf
Которых у меня было более 200 тысяч. По очереди прописываем их в поиск, дожидаемся полной загрузки, выделяем сразу все сочетанием ctrl+a и смело удаляем. те файлы которые не удаляются просто пропускаем с пометкой для всех. Я таким образом удалил более 200 тысяч файлов и освободил 60гб памяти.
p.s скорее всего эти файлы и дальше будут плодиться со временем, чем вызвана такая проблема я понятия не имею.
"regtrans-ms ---Журнал изменений реестра Windows
blf ---Файл журнала Common Log File System (CLFS)
К тому ж там "посоветовали" использовать wmfix.
Время ли времени делаю очистку через запущенную командную строку от имени администратора командойDism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
проверить размер содержимого папки для ЛЛ:
1) выделяем ниже строчку и жмем Ctrl + C для копирования пути:
2) жмем Win + R и затем Ctrl + V и подтверждаем Enter
2.1) если выскочит окно "У вас нет прав доступа" жмем кнопку предоставить права
3) в открывшейся папке выделяем всё Ctrl + A и проверяем размер выделенного Alt + Enter
какой вес для нее нормальный? у меня 4гб
Комп от вирусов почисть, и драйвера на всякий случай скачай с оф сайтов. У меня вообще 250 мб весит папка.
Быстродействующие модули памяти для оптических компьютеров будущего
Эффект, благодаря которому возможна запись информации в кремниевом кольцевом микрорезонаторе с помощью импульсов света разной интенсивности, впервые описан учеными ЛЭТИ. Он открывает большие возможности по созданию быстродействующих модулей памяти для оптических компьютеров будущего.
Современные электронные вычислительные машины подходят к пределу своих возможностей по соотношению производительности к энергозатратам. Поэтому научные группы по всему миру разрабатывают логические интегральные схемы на альтернативных принципах, которые будут более компактными, энергоэффективными и быстродействующими. Один из видов таких схем — фотонная интегральная схема, в которой передача, хранение и обработка информации производится с помощью света.
Проект находится в русле многолетних работ, проводимых на кафедре физической электроники и технологии по исследованию новых физических эффектов в твердом теле, имеющих большие перспективы для создания устройств хранения и обработки информации. В частности, в 2020 году ЛЭТИ получил мегагрант Правительства Российской Федерации на проведение разработок в области резервуарных вычислений на принципах магноники.
Читайте также: