Как найти целевой объект

Время на прочтение
6 мин

Количество просмотров 105K

Привет всем. Я хотел бы рассказать о принципах, лежащих в основе распознавания объектов с использованием OpenCV. Благо какое-то время мне довелось поработать в лаборатории компьютерного зрения ВМК МГУ, и я немного вник в премудрости этой ветви computer science. Задача, которую я буду рассматривать здесь, предлагалась на Microsoft Computer Vision School Moscow 2011 на семинарах Виктора Ерухимова, одного из разработчиков программного комплекса OpenCV. Почти в таком же виде рассматриваемый код можно найти в демках OpenCV 2.4.

Формализация задачи

Поставим следующую задачу: на вход подается изображение сцены с обычной USB камеры и изображение целевого плоского объекта (например книга). Задача найти целевой объект на изображении сцены.

Начнем с камеры

Первое, подключим h файлы core.hpp и opencv.hpp, отвечающие за базовые классы opencv и features2d.hpp, — определяющий классы различных детекторов и дескрипторов (нас будет интересовать SURF).

#include <iostream>

#include "opencv2/opencv.hpp"
#include "opencv2/core/core.hpp"
#include "opencv2/nonfree/features2d.hpp"

#include <vector>

using namespace std;
using namespace cv;

void readme(string &message)
{ 
	cout << message << endl; 
}

Далее начинается тело main, будем считать, что к исполняемому файлу мы передаем 1 параметр, — путь к картинке образцу (плоскому объекту). Конструктор класса VideoCapture принимает на вход номер девайса (камеры), 0 — устройство по умолчанию (вероятно встроенная камера). Далее считывается целевая картинка в img_object.

int main( int argc, char** argv )
{
	if(argc != 2)
	{ 
		string message = "Использование: ./cv_test <img_object>";
		readme(message); 
		return -1; 
	}
	
	VideoCapture cap(1); // Открыть камеру (устройство 1). Для открытия встроенной камеры вызывать 0 устройство.

	if(!cap.isOpened())  //  Проверка корректности отработки
	{
		string message = "Проверьте камеру или укажите другой номер устройства в коде";
		readme(message); 
		return -1;
	}

	Mat img_object = imread( argv[1], CV_LOAD_IMAGE_GRAYSCALE );

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

for(;;)
	{
		Mat frame;
		cap >> frame; // Получить очередной фрейм из камеры

		Mat img_scene = frame; 

		if( !img_object.data || !img_scene.data ) // Проверка наличия информации в матрице изображения
		{ 

			string message = " Ошибка чтения ";
			readme(message); 
        }

Нахождение ключевых точек

Теперь приступим к распознаванию объекта. Первое, что следует сделать, — это сдетектировать на изображении ключевые точки. Упрощенно можно считать, что это точки в местах резкого перепада градиента на изображении по x и по y (угловые точки). Принцип их определения основывается на использовании автокорреляционной матрицы и пирамиды изображений (для инвариантности к масштабу). Автокорреляционная матрица состоит из производных по x и y по изображению I.
image
смысл в том, что используемая метрика (лямбды — собственные числа, det — определитель, trace — след матрицы, альфа — константа)
image
позволяет идентифицировать угловые точки, т.к. в этих точках будут весомые перепады градиентов по x и y, и R будет в локальном максимуме. Задавая параметр minHessian мы определяем порог, по которому будет определяться ключевая ли данная точка или нет.

//-- Этап 1. Нахождение ключевых точек.
			int minHessian = 400;

			SurfFeatureDetector detector( minHessian );

			std::vector<KeyPoint> keypoints_object, keypoints_scene;

			detector.detect( img_object, keypoints_object );
			detector.detect( img_scene, keypoints_scene );

Нахождение дескрипторов

Далее, необходимо вычислить дескриптор, — вектор кодирующий геометрию локальной окрестности вокруг точки. В основе этого, как правило, лежит SIFT (SURF это быстрый SIFT). Принцип тут следующий:
image

Патч вокруг данной точки разбивается на детерменированные блоки, в каждом блоке вычисляется доминирующее градиентное направление и магнитуда + осуществляется поворот в сторону доминирующего направления (инвариантность к повороту). Данный «градиентный рисунок» описывает локальный патч.

//-- Этап 2. Вычисление дескрипторов.
			SurfDescriptorExtractor extractor;

			Mat descriptors_object, descriptors_scene;

			extractor.compute( img_object, keypoints_object, descriptors_object );
			extractor.compute( img_scene, keypoints_scene, descriptors_scene );

Сравнение дескрипторов

На следующем этапе мы должны «сматчить» вектора дескрипторов, т.е. найти соответствующие точки на целевом объекте и в сцене. Для этой цели можно использовать FlannBasedMatcher (его следует использовать для больших наборов ключевых точек) или BruteForceMatcher (наоборот). Далее мы отбираем из всех сматченных точек только те, расстояние между дескрипторами которых не более 3 * min_dist, где min_dist — минимальное расстояние между дескрипторами.

//-- Этап 3: Необходимо сматчить вектора дескрипторов.
			FlannBasedMatcher matcher;
			vector< DMatch > matches;
			matcher.match( descriptors_object, descriptors_scene, matches );

			double max_dist = 0; double min_dist = 100;

			//-- Вычисление максимального и минимального расстояния среди всех дескрипторов
                       // в пространстве признаков
			for( int i = 0; i < descriptors_object.rows; i++ )
			{ 
				double dist = matches[i].distance;
				if( dist < min_dist ) min_dist = dist;
				if( dist > max_dist ) max_dist = dist;
			}

			printf("-- Max dist : %f n", max_dist );
			printf("-- Min dist : %f n", min_dist );

			//-- Отобрать только хорошие матчи, расстояние меньше чем 3 * min_dist
			vector< DMatch > good_matches;

			for( int i = 0; i < descriptors_object.rows; i++ )
			{ 
				if( matches[i].distance < 3 * min_dist )
				{ 
					good_matches.push_back( matches[i]); 
				}
			}  

			Mat img_matches;
	
            //-- Нарисовать хорошие матчи
			drawMatches( img_object, keypoints_object, img_scene, keypoints_scene, 
			good_matches, img_matches, Scalar::all(-1), Scalar::all(-1), 
			vector<char>(), DrawMatchesFlags::NOT_DRAW_SINGLE_POINTS ); 

Использование гомографии

В компьютерного зрении любые два изображения одного и того же плоского объекта в пространстве связаны гомографией (если мы используем pin-hole модель камеры). Иными словами это преобразование плоскость — плоскость. Т.е. имея набор точек на целевом объекте и сопоставленный ему набор точек в сцене мы можем найти между ними соответствие в виде матрицы гомографии H (и наоборот соответственно). В основе нахождения этого преобразования лежит алгоритм RANSAC в основе которого лежит итеративная оценка гомографии для случайно выбранных точек (4 на изображении и 4 в сцене).

			//-- Локализация объектов
			vector<Point2f> obj;
			vector<Point2f> scene;

			for( int i = 0; i < good_matches.size(); i++ )
			{
				obj.push_back( keypoints_object[ good_matches[i].queryIdx ].pt );
				scene.push_back( keypoints_scene[ good_matches[i].trainIdx ].pt ); 
			}

			Mat H = findHomography( obj, scene, CV_RANSAC );

Далее необходимо взять 4 точки по краям целевого объекта и отобразить их с помощью найденного преобразования на изображении сцены. Таким образом, мы найдем bounding box объекта в сцене. Заметьте, что при рисовании линий, к каждой точке мы прибавляем Point2f( img_object.cols, 0), т.к. изображение img_matches предполагает смежное размещение картинки целевого объекта (слева) и сцены (справа).

//-- Получить "углы" изображения с целевым объектом
			std::vector<Point2f> obj_corners(4);
			obj_corners[0] = cvPoint(0,0); obj_corners[1] = cvPoint( img_object.cols, 0 );
			obj_corners[2] = cvPoint( img_object.cols, img_object.rows ); obj_corners[3] = cvPoint( 0, img_object.rows );
			std::vector<Point2f> scene_corners(4);

			//-- Отобразить углы целевого объекта, используя найденное преобразование, на сцену
			perspectiveTransform( obj_corners, scene_corners, H);

			//-- Соеденить отображенные углы
			line( img_matches, scene_corners[0] + Point2f( img_object.cols, 0), scene_corners[1] + Point2f( img_object.cols, 0), Scalar(0, 255, 0), 4 );
			line( img_matches, scene_corners[1] + Point2f( img_object.cols, 0), scene_corners[2] + Point2f( img_object.cols, 0), Scalar( 0, 255, 0), 4 );
			line( img_matches, scene_corners[2] + Point2f( img_object.cols, 0), scene_corners[3] + Point2f( img_object.cols, 0), Scalar( 0, 255, 0), 4 );
			line( img_matches, scene_corners[3] + Point2f( img_object.cols, 0), scene_corners[0] + Point2f( img_object.cols, 0), Scalar( 0, 255, 0), 4 );

			//-- Show detected matches
			imshow( "Good Matches & Object detection", img_matches );

			if(waitKey(30) >= 0) break;
		}
//-- Конец основного цикла обработки

Резюме

К сожалению, предвосхищения многих людей, несколько превосходят state-of-the-art в области computer vision. Данный код я использовал на примере распознавания шоколадки. Мне пришлось немного повертеть в руках шоколадку, перед тем, как я понял каковы границы положений стабильного ее распознавания. В виду вариативности возникающих ситуаций, стабильность распознавания является головной болью №1. Тем не менее этот пример является базовым и может быть модифицирован.

Литература

1. www.vision.ee.ethz.ch/~surf/eccv06.pdf
2. www.sci.utah.edu/~gerig/CS6640-F2010/tutorial2-homographies.pdf
3. engineering.purdue.edu/kak/courses-i-teach/ECE661.08/solution/hw4_s1.pdf

Смысл метрических методов очень хорошо раскрывает фраза «Скажи мне, кто твой друг, и я скажу, кто ты». Алгоритмы этого класса почти не имеют фазы обучения. Вместо этого они просто запоминают всю обучающую выборку, а на этапе предсказания просто ищут похожие на целевой объекты. Такой процесс называют lazy learning, потому что никакого обучения, по сути, не происходит. Также метрические модели являются непараметрическими, потому что они не делают явных допущений о глобальных законах, которым подчиняются данные. Так, линейная регрессия основывается на предположении о том, что изучаемая закономерность линейная (с неизвестными коэффициентами, которые восстанавливаются по выборке), а линейная бинарная классификация – что существует гиперплоскость, неплохо разделяющая классы. Метрические методы по сути своей локальны: они исходят из допущения, что свойства объекта можно узнать, имея представление о его соседях.

Указанные выше свойства могут быть полезными, особенно в случае сложно устроенных данных, для которых мы не можем придумать глобальную модель, однако, с другой стороны, из-за lazy learning алгоритм становится абсолютно неприменимым при большом количестве данных. Несмотря на то, что эти алгоритмы очень просты для понимания, они являются довольно точными и хорошо интерпретируемыми и часто используются как минимум в качестве бейзлайнов в разных задачах.

Обзору одного из самых известных метрических алгоритмов — методу k-ближайших соседей, или k-nearest neighbors (KNN), будет посвящена первая часть главы. Этот подход в основном чисто инженерный из-за отсутствия фазы обучения и в настоящее время уже почти нигде не применяется, однако многие техники, на которых основан алгоритм, используются и в других методах. Например, алгоритмы поиска ближайших соседей, являющиеся неотъемлемой частью метода, имеют намного более широкую область применения. Плюс ко всему KNN — очень простой и легко интерпретируемый алгоритм, поэтому изучить его всё равно полезно. Мы обсудим подробнее его преимущества, недостатки, область его применения, а также возможные обобщения.

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

Метод k-ближайших соседей (KNN)

Представим, что мы проводим классификацию объектов на два класса — красный или жёлтый. Нам дана некоторая обучающая выборка и целевой объект (серый):

2_1.png

Мы хотим определить, к какому классу относится серый объект. Интуитивно очевидно, что он должен быть жёлтым, потому что все его соседи жёлтые. Эта интуиция и отражает суть метода KNN — классифицировать целевой объект, исходя из того, какие классы у объектов, которые максимально похожи на него.

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

Пусть дана обучающая выборка $X = (x_i, y_i)_{i=1}^N$, где $x_i in mathbb{X}, y_i in mathbb{Y}={1,ldots,C}$. Пусть также задана некоторая симметричная по своим аргументам функция расстояния $color{#E06A27}{rho : mathbb{X} times mathbb{X} to [0, +infty)}$. Предположим, что требуется классифицировать новый объект $color{#97C804}{u}$. Для этого найдём $k$ наиболее близких к $color{#97C804}{u}$ в смысле расстояния $color{#E06A27}{rho}$ объектов обучающей выборки $X_k(color{#97C804}{u}) = {color{#FFC100}{x^{(1)}_u},ldots,color{#FFC100}{x^{(k)}_u}}$:

$$forall color{#FFC100}{x_{rm in}}in X_k(color{#97C804}{u}) forall x_{rm out} in X setminus X_k(color{#97C804}{u}) quad color{#E06A27}{rho}(color{#97C804}{u}, color{#FFC100}{x_{rm in}}) leqslant color{#E06A27}{rho}(color{#97C804}{u}, x_{rm out}). tag{1}$$

Метку класса объекта $color{#FFC100}{x^{(i)}_u}$ будем обозначать $color{#FFC100}{y_u^{(i)}}$. Класс нового объекта тогда естественным образом определим как наиболее часто встречающийся класс среди объектов из $X_k(color{#97C804}{u})$:

$$a(color{#97C804}{u}) = underset{yin mathbb{Y}}{operatorname{arg max}} sum_{i=1}^k mathbb{I}[color{#FFC100}{y_u^{(i)}} = y] tag{2}$$

Формула может показаться страшной, но на самом деле все довольно просто: для каждой метки класса $y in mathbb{Y}$ количество соседей $color{#97C804}{u}$ с такой меткой можно посчитать, просто просуммировав по всем соседям индикаторы событий, соответствующих тому, что метка соседа равна $y$.

Легко заметить, что этот алгоритм позволяет также оценивать вероятности классов. Для этого достаточно просто посчитать частоты классов соседей:

$$mathbb{P}(color{#97C804}{u}sim y) = frac{sum_{i=1}^k mathbb{I}[color{#FFC100}{y_u^{(i)}} = y]}k$$

Стоит, однако, понимать, что, хоть такая функция и удовлетворяет свойствам вероятности (она неотрицательна, аддитивна и ограничена единицей), это есть не более чем эвристика.

Несмотря на то что формально фаза обучения отсутствует, алгоритм может легко переобучиться. Вы можете убедиться в этом сами, использовав маленькое количество соседей (например, 1 или 2), — границы классов оказываются довольно сложными. Происходит это из-за того, что параметрами алгоритма можно считать всю обучающую выборку, довольно большую по размеру. Из-за этого алгоритму легко подстроиться под конкретные данные.

Выбор метрики

Может возникнуть закономерный вопрос, как же правильно выбрать функцию расстояния $color{#E06A27}{rho}$. В подавляющем большинстве случаев обычное евклидово расстояние $rho(x, y) = sqrt{sum_i (x_i – y_i)^2}$ будет хорошим выбором. Однако в некоторых случаях другие функции будут подходить лучше, поэтому давайте разберём ещё несколько функций, наиболее используемых на практике.

2_2.png

  • Манхэттенская метрика

$$rho(x, y) = sum_i vert x_i – y_i vert$$

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

  • Метрика Минковского

$$rho(x, y) = left(sum_i vert x_i – y_ivert^pright)^{1/p}$$

Является обобщением евклидовой ($p=2$) и манхэттенской ($p=1$) метрик.

  • Косинусное расстояние

$$rho(x,y) = 1 – cos theta = 1 – frac{x cdot y}{|x| |y|}$$

Эта метрика хороша тем, что не зависит от норм векторов. Такое поведение бывает полезно в некоторых задачах, например при поиске похожих документов. В качестве признаков там часто используются количества слов. При этом интуитивно кажется, что если в тексте использовать каждое слово в два раза больше, то тема этого текста поменяться не должна. Поэтому как раз в этом случае нам не важна норма вектор-признака, и в задачах, связанных с текстами, часто применяется именно косинусное расстояние.

  • Расстояние Жаккара

$$rho(A, B) = 1 – frac{|Acap B|}{|Acup B|}$$

Его стоит использовать, если исследуемые объекты — это некоторые множества. Это полезно тем, что нет нужды придумывать векторные представления для этих множеств, чтобы использовать традиционные метрики.

Вообще говоря, несмотря на некоторые эвристические соображения по выбору метрики, её можно считать гиперпараметром и подбирать соответствующими способами. Часто качество модели сильно зависит от выбора метрики, а иногда выбрать правильную метрику очень тяжело. Например, в случае когда данные имеют сильно разный масштаб, выбрать подходящую метрику почти невозможно, и нужно сперва проводить нормализацию.

Замечание. Упомянутые в этом параграфе функции мы называем «метриками», но, конечно же, они не обязаны быть метриками в строгом математическом смысле. Они неотрицательны и симметричны, но могут не удовлетворять неравенству треугольника.

Обобщения алгоритма

Взвешенный KNN

У оригинального алгоритма есть один большой недостаток: он никак не учитывает расстояния до соседних объектов, хотя эта информация может быть полезной.

Давайте попробуем придумать, как исправить этот недостаток. Нам нужно каким-то образом увеличивать вклад близких объектов и уменьшать вклад далёких. Можно заметить, что все индикаторы в формуле $(2)$ учитываются в сумме с одинаковыми коэффициентами. Возникает идея — назначить этим индикаторам веса, которые тем больше, чем ближе объект к целевому. Таким образом, получаем следующую формулу:

$$a(color{#97C804}{u}) = underset{yin mathbb{Y}}{operatorname{arg max}} sum_{i=1}^k w_imathbb{I}[color{#FFC100}{y_u^{(i)}} = y]. tag{3}$$

Такой алгоритм называется взвешенным KNN (weighted KNN).

Есть множество вариантов выбора весов для объектов, которые можно поделить на две большие группы. В первой группе веса зависят лишь от порядкового номера объекта в отсортированном по близости к $u$ массиве $X_k(color{#97C804}{u})$. Чаще всего берутся линейно $left( w_i = frac{k+1-i}{k} right)$ или экспоненциально $left( w_i = q^i, 0 < q < 1right)$ затухающие веса.

Однако здесь мы также не используем всю информацию, которая нам доступна. Зачем использовать порядок соседей, порождаемый расстояниями, если можно использовать сами расстояния? Во второй группе методов вес является некоторой функцией от расстояния. Давайте подумаем, какие должны быть свойства у этой функции. Очевидно, она должна быть положительной на своей области определения, иначе модель будет поощрять несовпадение с некоторыми ближайшими соседями. Также необходимо, чтобы функция монотонно не возрастала, чтобы вес близких соседей был больше, чем далёких. Таким образом вводится так называемая ядерная функция (kernel function) $K : mathbb{R} to mathbb{R}$, обладающая перечисленными выше свойствами, с помощью которой и высчитывается вес каждого соседа:

$$a(color{#97C804}{u}) = underset{yin mathbb{Y}}{operatorname{arg max}} sum_{i=1}^k Kleft(frac{color{#E06A27}{rho}(color{#97C804}{u}, color{#FFC100}{x_u^{(i)}})}{h}right)mathbb{I}[color{#FFC100}{y_u^{(i)}} = y], tag{4}$$

где $h$ — некое положительное число, которое называется шириной окна.

От выбора ядра зависит гладкость аппроксимации, но на её качество этот выбор почти не влияет. Примеры ядерных функций в порядке увеличения их гладкости:

  • $K(x) = frac12 mathbb{I} left[ vert x vert leqslant 1right]$ — прямоугольное ядро;
  • $K(x) = left(1 – vert x vert right)mathbb{I}left[vert x vert leqslant 1right]$ — треугольное ядро (непрерывное);
  • $K(x) = frac34left(1 – x^2right) mathbb{I}left[ vert x vert leqslant 1right]$ — ядро Епанечникова (гладкое везде, кроме –1 и 1);
  • $K(x) = frac{15}{16}left(1 – x^2right)^2mathbb{I}left[vert x vert leqslant 1right]$ — биквадратное ядро (гладкое везде);
  • $K(x) = frac{1}{sqrt{2pi}}e^{-2x^2}$ — гауссовское ядро (бесконечно гладкое везде).

На практике чаще всего используют либо прямоугольное для простоты, либо гауссовское, в случае когда важна гладкость модели (немного забегая вперёд — это особенно важно в регрессии).

Ширина окна, в свою очередь, сильно влияет как раз на качество модели. При слишком маленькой ширине модель сильно подстраивается под обучающую выборку и теряет свою обобщающую способность. При слишком большой ширине, напротив, модель становится слишком простой. Универсальной ширины окна не существует, поэтому для каждой задачи её приходится подбирать отдельно.

Kernel regression

Алгоритм KNN можно довольно легко обобщить и на задачу регрессии. Самые очевидные способы — брать либо обычное среднее:

$$a(color{#97C804}{u}) = frac1k sum_{i=1}^k color{#FFC100}{y_u^{(i)}}, tag{5}$$

либо взвешенный вариант:

$$a(color{#97C804}{u}) = frac{sum_{i=1}^k Kleft(frac{color{#E06A27}{rho}(color{#97C804}{u}, color{#FFC100}{x_u^{(i)}})}{h}right) color{#FFC100}{y_u^{(i)}}}{sum_{i=1}^k Kleft(frac{color{#E06A27}{rho}(color{#97C804}{u}, color{#FFC100}{x_u^{(i)}})}{h}right)} tag{6}$$

для некоторого ядра $K$.

Последняя формула называется формулой Надарая — Ватсона, она является одним из непараметрических методов восстановления регрессии, объединённых названием ядерная регрессия (kernel regression).

Выписать ответ, конечно, просто, но возникает интересный вопрос: можно ли использовать оптимизационные формулы из задачи классификации? Сначала давайте подумаем, что выдаст алгоритм, если формулу $(4)$ применить без изменений. В задаче регрессии почти наверняка все значения $y_u^{(i)}$ будут различными. Поэтому для любого $y$ сумма в формуле $(4)$ будет состоять из не более чем одного слагаемого, а значит, максимум будет достигаться на соседе с наибольшим весом, то есть на ближайшем соседе. Это означает, что метод всегда вырождается в 1-NN. Это не совсем то, чего мы добиваемся, поэтому давайте немного модифицируем алгоритм.

Давайте сперва подумаем, а для чего вообще в формуле $(4)$ используется индикатор. В задаче классификации индикатор — естественная мера близости двух объектов: если объекты совпадают, то значение $1$, если различаются, то $0$. Проблема в том, что в задаче регрессии объекты являются действительными числами, и для них функция, которая выдаёт отличное от нуля значение лишь в одной точке $y=y_i$, — плохая мера близости. В случае непрерывных значений $y$ естественно использовать более гладкие функции для выражения близости. Таким образом, для обобщения формулы $(4)$ на задачу регрессии нам необходимо всего лишь заменить индикатор на некоторую более гладкую функцию. При этом для действительных чисел чаще всего рассматривают не близость, а расстояние между ними, то есть некоторую метрику. Например, в качестве такой метрики можно взять квадрат евклидова расстояния $(y- y_u^{(i)})^2$. Отметим, что максимизация близости эквивалентна минимизации расстояния, и получим следующую формулу:

$$a(color{#97C804}{u}) = underset{yin mathbb{R}}{operatorname{arg min}} sum_{i=1}^k Kleft(frac{color{#E06A27}{rho}(color{#97C804}{u}, color{#FFC100}{x_u^{(i)}})}{h}right)(y- color{#FFC100}{y_u^{(i)}})^2. tag{7}$$

Выбор именно этой функции хорош тем, что у этой оптимизационной задачи есть точное решение, и оно записывается как раз формулой $(6)$.

Для ядерной регрессии справедливы те же рассуждения про выбор ядра и ширины окна, которые были приведены в прошлом разделе про классификацию.

Влияние ширины окна и вида ядра на вид функции:
2_3.png 2_4.png 2_5.png

Преимущества и недостатки

Сперва поговорим о преимуществах алгоритма.

  • Непараметрический, то есть не делает явных предположений о распределении данных.
  • Очень простой в объяснении и интерпретации.
  • Достаточно точный, хоть и чаще всего уступает градиентному бустингу и случайному лесу в accuracy.
  • Может быть использован как для классификации, так и для регрессии.

Несмотря на большие преимущества, алгоритм не лишён и минусов.

  • Неэффективный по памяти, поскольку нужно хранить всю обучающую выборку.
  • Вычислительно дорогой по той же причине.
  • Чувствителен к масштабу данных, а также к неинформативным признакам.
  • Для применения алгоритма необходимо, чтобы метрическая близость объектов совпадала с их семантической близостью, чего не всегда просто добиться. Представим, например, что мы решаем задачу нахождения похожих изображений. Мы хотим, чтобы картинки с лесом находились близко друг к другу, однако, если взять любую попиксельную метрику, такие картинки могут быть очень далеки друг от друга. Зачастую для решения этой проблемы вначале обучают представления.

Применение

Из-за своих недостатков алгоритм очень неэффективен в задачах с большим количеством данных. Однако у него всё равно есть много применений в реальном мире. Приведём лишь некоторые из них:

  • Рекомендательные системы. Если посмотреть на саму формулировку задачи «предложить пользователю что-то похожее на то, что он любит», то KNN прямо напрашивается в качестве решения. Несмотря на то что сейчас часто используются более совершенные алгоритмы, метод ближайших соседей всё равно применяется в качестве хорошего бейзлайна.
  • Поиск семантически похожих документов. Если векторные представления близки друг к другу, то темы документов схожи.
  • Поиск аномалий и выбросов. Из-за того что алгоритм запоминает обучающую выборку полностью, ему легко посмотреть, насколько целевой объект похож на все данные, которые он видел.
  • Задача кредитного скоринга. Рейтинги двух людей, у которых примерно одинаковая зарплата, схожие должности и кредитные истории, не должны сильно отличаться, поэтому KNN отлично подходит для решения такой задачи.

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

Поиск ближайших соседей

Для того чтобы применять метод ближайших соседей, нужно уметь как-то находить этих самых соседей. С первого взгляда может показаться, что никакой проблемы нет: действительно, можно ведь просто перебрать все объекты из обучающей выборки $X = (x_i, y_i)_{i=1}^{N}$, посчитать для каждого из них расстояние до тестового объекта и затем найти минимум. Однако несмотря на то что сложность такого поиска линейная по $N$, она также зависит и от размерности пространства признаков. Если $x in mathbb{R}^D$, то сложность такого алгоритма поиска $O(N D)$. Если вспомнить, что в типичной задаче машинного обучения количество признаков $D$ может быть порядка $100$, а размер выборки и вовсе может исчисляться десятками и сотнями тысяч объектов, то становится ясно, что такая сложность никуда не годится. Проблема осложняется ещё и тем, что данный поиск необходимо выполнять на этапе применения модели, который должен быть быстрым. Всё это означает, что возникает необходимость в более быстрых методах поиска ближайших соседей, чем простой перебор.

Все такие методы можно поделить на две основные группы: точные и приближённые. Последние, как следует из их названия, находят соседей лишь приближённо, то есть найденные объекты хоть и будут действительно близки, но не обязательно будут самыми близкими. В этой подглаве мы подробнее рассмотрим методы из каждой группы.

Перед началом обзора стоит сказать, что хоть мы и рассматриваем алгоритмы поиска соседей именно в контексте их использования в KNN, область их применения значительно шире, и она не ограничивается исключительно машинным обучением. Например, на их основе работает любая информационно-поисковая система, от поиска в «Гугле» или «Яндексе» до всем известных алгоритмов «Ютьюба».

Поиск ближайших соседей: точные методы

Точных методов существует довольно мало. Можно сказать, что их, по сути, два. Первый — полный перебор с различными эвристиками. Например, можно выбрать подмножество признаков и считать расстояние только по ним. Оно будет оценкой снизу на реальное расстояние, поэтому если оно уже больше, чем до текущего ближайшего объекта, то можно сразу отбросить этот объект и переходить к следующему. Такие эвристики хоть и могут давать некоторый выигрыш по времени, но не улучшат асимптотическую сложность. Второй — k-d-деревья, о которых стоит поговорить подробнее.

K-d-деревья

Представим на секунду, что у нас есть всего лишь один признак, то есть объекты выражаются вещественными числами, а не векторами. В этом случае для поиска ближайшего соседа напрашивается всем вам известное бинарное дерево поиска, которое позволяет находить элементы за логарифмическое время. Оказывается, существует аналог данной структуры в многомерном пространстве, который называется k-d-дерево (k-d tree сокращение от k-dimensional tree).

Как и в обычном дереве поиска, в k-d-дереве каждый узел является объектом обучающей выборки, который особым образом делит пространство на два полупространства. Таким образом, всё пространство оказывается поделено на множество малых областей, и такое деление оказывается очень полезным при поиске ближайших соседей.

Рассмотрим подробнее, как строится такое дерево. Трудность в применении обычного дерева поиска состоит в том, что мы не можем напрямую сравнить два вектора так же, как два вещественных числа. Чтобы эту проблему преодолеть, узлы дерева будут делить пространство лишь по одной оси. При движении вниз по дереву оси, по которым точки делят пространство, циклически сменяют друг друга. Например, в двумерном пространстве корень будет отвечать за деление по x-координате, его сыновья — за деление по y-координате, а внуки — снова за x-координату, и т. д. Посмотрим, как это работает на примере:

2_6.png

(источник картинки)

На картинке выше корень $(30, 40)$ делит все точки по оси х: слева оказываются точки, у которых $x < 30$, а справа — те, у которых $xgeqslant 30$. Аналогично левый сын корня $(5, 25)$ делит своё поддерево по оси y: слева оказываются точки, у которых $y < 25$, а справа — те, у которых $ygeqslant 25$.

Остаётся вопрос — как выбирать точки, которые будут делить пространство пополам? Чтобы дерево было сбалансированным, нужно находить точку с медианой, соответствующей уровню поддерева координаты. На практике часто ограничиваются выбором случайной точки или любой эвристикой по приближённому поиску медианы (например, медиана некоторого подмножества точек). Это позволяет ускорить построение дерева, но убирает все гарантии на его сбалансированность.

Добавлять новые точки можно так же, как и в одномерном дереве поиска. Спускаясь по дереву, можно однозначно определить лист, к которому нужно подвесить новую точку, чтобы не нарушить все свойства дерева. При добавлении большого количества точек, однако, дерево может перестать быть сбалансированным, и нужно проводить ребалансировку. Также существуют варианты k-d-деревьев, которые сохраняют сбалансированность при добавлении / удалении точек.

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

2_7.gif

(источник картинки)

Сложность метода по размеру обучающей выборки в среднем равна $O(log N)$ при равномерном распределении точек. При большой размерности пространства, однако, алгоритму приходится посещать больше ветвей дерева, чтобы найти ближайших соседей. Например, если $N approx D$, то сложность становится примерно такой же, как и в случае полного перебора. В общем случае считается, что для того чтобы асимптотика действительно была логарифмической, нужно, чтобы $N gtrsim 2^D$. Поэтому уже при количестве признаков порядка сотни алгоритм не даёт существенных преимуществ перед полным перебором.

  • Хорошая презентация, объясняющая структуру и поиск соседей
  • Балансировка деревьев

Поиск ближайших соседей: приближённые методы

Почти всегда находить именно самых близких соседей необязательно. Например, в задаче подбора рекомендаций фильмов пользователю чаще всего не нужны наиболее похожие картины, достаточно, к примеру, 10 из 15 наиболее близких. Поэтому, чтобы ускорить процесс поиска соседей, используют приближённые методы. Разберём основные идеи, которые применяются в таких методах.

Random projection trees

Алгоритмы, основанные на деревьях, очень часто применяются в задачах поиска соседей. Идея всех таких методов заключается в итеративном разделении пространства случайными гиперплоскостями и построении на базе этого разделения дерева, в листах которого содержится малое число объектов.

Одним из наиболее ярких представителей этого семейства является Annoy — алгоритм, который используется Spotify для рекомендаций музыки. Задача подобных рекомендательных систем довольно простая — нужно посоветовать пользователю композиции, которые он ещё не слушал, но которые при этом с высокой вероятностью ему понравятся. Простая и рабочая идея — предлагать композиции, похожие на те, которые он уже слушает. Здесь на помощь как раз и приходят методы поиска ближайших соседей.

Annoy в какой-то степени похож на k-d-деревья. Сначала выбираются два случайных объекта обучающей выборки и проводится гиперплоскость, симметрично их разделяющая. Затем для каждого полученного полупространства итеративно запускается такая же процедура, которая продолжается до тех пор, пока в каждой области будет не более $M$ объектов ($M$ — гиперпараметр).

2_8.gif

(источник картинки)

Таким образом задаётся бинарное дерево с глубиной порядка $O(log N)$ в среднем.

2_9.png

(источник картинки)

Спускаясь по этому дереву, можно найти область, в которой лежит целевой объект и некоторое количество близких к нему элементов обучающей выборки. Проблема в том, что это не обязательно будут самые близкие объекты, поэтому для увеличения точности составляется лес из таких деревьев и берётся объединение соответствующих целевому объекту областей.

2_10.gif

(источник картинки)

Чем больше таких деревьев берётся, тем более точным будет результат, но придётся тратить большее время на его поиск.

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

  • Отличная статья с иллюстрациями и подробным описанием алгоритма

Locality-sensitive hashing (LSH)

Предположим, что мы можем построить такую хеш-функцию, которая переводит близкие объекты в один бакет. Тогда близких соседей целевого объекта можно найти, посчитав его хеш и посмотрев на коллизии. Оказывается, такие хеш-функции существуют, и на этой идее основано несколько алгоритмов, которые объединяются названием Locality-sensitive hashing (LSH). К этому классу алгоритмов относится, например, FAISS, используемый Facebook.

2_11.png

(источник картинки)

Определим формально семейство хеш-функций, которое мы хотим использовать. Нам нужно, чтобы вероятность коллизии на близких объектах была высокая, а на далёких — низкая. Назовём семейство хеш-функций $mathcal{H}$ $(R, cR, p_1, p_2)$-чувствительным, если для любой $h(x)inmathcal{H}$:

  • для $rho(x, y) < R$ вероятность коллизии $Prleft[h(x)=h(y)right] > p_1$;
  • для $rho(x, y) > cR$ вероятность коллизии $Prleft[h(x)=h(y)right] < p_2$.

Формулы могут выглядеть сложными, но это всего лишь формализация нашей интуиции. Картинка ниже поясняет определение: для близких красных объектов в шаре радиусом $R$ вероятность коллизии больше $p_1$, для далёких синих объектов на расстоянии больше $cR$ вероятность коллизии меньше $p_2$, а про серые объекты в слое между $R$ и $cR$ мы ничего не знаем.

2_12.png

(источник картинки)

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

$$ h_{boldsymbol{w}, b}(boldsymbol{x}) = leftlfloor frac{boldsymbol{w}^Tboldsymbol{x} + b}{r}rightrfloor, $$

где $boldsymbol{w}$ и $b$ — случайные параметры, а $r$ выбирается пользователем. $b$ выбирается равномерно из отрезка $[0, r]$, а $boldsymbol{w}$ генерируется либо из нормального распределения, что соответствует евклидовой метрике, либо из распределения Коши — для манхэттенской метрики.

По сути, такая функция разбивает всё пространство на слои в направлении вектора $boldsymbol{w}$. Параметр $r$ при этом задаёт ширину слоя.

2_13.png

(источник картинки)

На практике при использовании лишь одной хеш-функции разница между $p_1$ и $p_2$ оказывается очень маленькой, поэтому применяют различные методы для её увеличения. Первый способ — уменьшать размер бакетов в хеш-таблице путём использования композиции разных хеш-функций из одного семейства $g(x) = (h_1(x),ldots,h_m(x))$. Преимущество этого способа как раз хорошо видно на примере случайных проекций. При использовании лишь одной хеш-функции бакетами являются слои бесконечного объёма. Однако при использовании композиции размером, как минимум равным количеству признаков $D$, из-за случайности выбора вектора $boldsymbol{w}$ бакеты почти наверное станут замкнутыми фигурами с конечным объёмом. Второй способ повышения эффективности алгоритма — использовать несколько хеш-таблиц и искать соседей среди коллизий в каждой из них. На практике используют оба метода сразу, подбирая $m$ и $L$ — количество хеш-таблиц как гиперпараметры.

К плюсам алгоритма можно отнести хорошие теоретические гарантии на сублинейное время и, как и в Annoy, простой поиск трейд-оффа между точностью и скоростью работы. Минусами можно назвать высокую потребность в памяти, плохую адаптируемость под GPU, а также тот факт, что, несмотря на теоретические гарантии в среднем, на практике алгоритм может работать даже чуть дольше полного перебора из-за того, что, помимо самого поиска, требуется искать хеши объектов.

  • Отличная статья с объяснением в иллюстрациях и примерами хеш-функций для других метрик
  • Ещё одна статья, в которой шаг за шагом выводится алгоритм на примере расстояния Жаккара

Proximity graphs & Hierarchical navigable small world (HNSW)

Следующий класс алгоритмов основан на построении специального графа близости (proximity graph) на объектах выборки и дальнейшем жадном поиске по этому графу. Алгоритмы этого семейства сейчас считаются state-of-the-art (SotA) для многих задач.

Рассмотрим подробнее этот класс алгоритмов на примере одного из наиболее популярных из них под названием Navigable small world (NSW). Идея его в следующем: на данных строится граф (он также называется NSW), который удовлетворяет двум следующим свойствам:

  1. Между любыми двумя точками существует короткий путь, или, более формально, матожидание числа кратчайшего пути между двумя случайно выбранными вершинами растёт как $O(log N)$.

  2. Средняя степень вершины мала.

На первый взгляд может показаться, что тяжело выполнить одновременно оба свойства, но на самом деле большая часть графов в реальном мире являются NSW-графами. Самый простой пример — это известное правило шести рукопожатий: любые два случайных человека соединены короткой последовательностью личных контактов длиной не более шести, несмотря на то, что количество знакомых у среднего человека ($100$–$1000$) мало по сравнению с населением Земли.

В таких графах существует очень простой метод поиска соседей. Нужно выбрать случайную точку, среди её соседей выбрать того, который ближе всего к целевому объекту, и повторить процедуру уже для него. Показано, что такой жадный поиск имеет полилогарифмическую асимптотику.

2_14.png

(источник картинки)

Проблема такого подхода в том, что можно попасть в плотный кластер и очень долго оттуда выбираться. Для решения этой проблемы используется иерархия NSW, или Hierarchical navigable small world (HNSW). Исходный граф является нулевым слоем. Каждый следующий слой строится в два шага:

  1. Каждая вершина текущего слоя попадает в следующий с некоторой вероятностью $p$.
  2. На всех вершинах, попавших в новый слой, строится NSW.

По построению количество слоёв будет $O(log N)$.

hnsw_layers.png

(источник картинки)

Поиск начинается в самом верхнем слое. После нахождения ближайшей к целевому объекту вершины спускаемся на слой ниже и начинаем поиск из этой вершины. Повторяем процедуру, пока не спустимся до нулевого слоя. Таким образом, на каждом слое мы всё больше уточняем наш ответ. Стоит отметить, что для ускорения работы иногда поиск останавливают не при нахождении ближайшей вершины, а раньше, используя критерии остановки.

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

HNSW, так же как и рассмотренные ранее приближённые методы, позволяет искать трейд-офф между точностью и скоростью работы. Плюс ко всему на реальных данных он часто работает лучше других методов и сейчас считается SotA. Однако этот способ поиска не лишён и недостатков. Главный заключается в том, что нельзя добавлять точки в обучающую выборку без перестройки структуры. Помимо этого, он довольно требователен по памяти из-за того, что для каждого слоя приходится хранить как вершины, которые в него входят, так и связи между этими вершинами.

  • Оригинальная статья

В завершение стоит сказать, что не существует универсального метода поиска соседей — каждый из описанных методов может быть лучше других в определённой задаче. К тому же, несмотря на то что приближённые методы имеют лучшую асимптотику, многие из них плохо переносятся на GPU. Из-за этого на практике полный перебор бывает быстрее любого из таких приближённых методов.

Нет доступа к целевой папке в Windows 10, 8.1 и Windows 7

Наиболее распространенные сценарии появления ошибки «Нет доступа к целевой папке. Вам необходимо разрешение на выполнение этой операции» — попытка что-то изменить в одной из системных папок Windows или же, в некоторых случаях, при записи на флешку или создании каких-либо файлов на ней. В обоих случаях это сравнительно несложно решается.

В этой инструкции о том, как исправить ошибку «Нет доступа к целевой папке» для системных папок Windows 10, 8.1 и Windows 7 (первый раздел статьи) и эту же ошибку на флешки и других USB-накопителей (вторая часть). Во всех случаях, чтобы проделать указанные действия у вас должны быть права администратора на компьютере.

Нет доступа к целевой папке при операциях внутри системных папок

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

Прежде всего учитывайте, что действия над файлами в системных папках Windows потенциально опасны, будьте осторожны. Путь исправления проблемы будет следующим (возможно, вы уже выполняли часть описанных действий, но я изложу их все по порядку, пример приводится для Windows 10, в предыдущих ОС всё примерно так же):

  1. Запустите командную строку от имени администратора (как это сделать).
  2. По порядку вводите следующие команды, в скобках — описание действия команды.

В результате у вас должна появиться возможность выполнять любые действия в выбранной папке. Важно: учитывайте, что с папкой C:Program FilesWindowsApps это не получится: в последних версиях Windows 10 она защищена так, что никакие «стандартные» способы не работают, а содержимое этой папки зашифровано (EFS). Также может случиться, что и другие «по-особенному» защищенные системные папки или папки антивирусов не удастся разблокировать описываемым способом.

Нет доступа к целевой папке при записи на флешку или создании файлов и папок на ней

В случае, если сообщение об отсутствии доступа к целевой папке вы получаете при попытке скопировать что-либо на USB флешку, карту памяти или внешний жесткий диск, вполне вероятно, причина в установленных политиках доступа к съемным запоминающим устройствам.

Исправить это можно следующим образом:

  1. Нажмите клавиши Win+R, введите regedit и нажмите Enter.
  2. В редакторе реестра перейдите к разделу
  3. Если в нем присутствует подраздел RemovableStorageDevices, удалите его.
  4. Выполните шаги 2 и 3 в разделе

Обычно, этого достаточно, чтобы снять ограничения на запись данных на флешку и изменение данных на ней, однако может потребоваться отключить и снова подключить накопитель, чтобы сделанные изменения вступили в силу. Суть параметров в этом разделе — блокировка доступа к флешке и другим съемным USB-накопителям.

Однако, если раздела RemovableStorageDevices в реестре не оказалось, можно попробовать применить первый метод: стать владельцем и получить права на доступ к папкам и файлам на флешке (только для накопителей с файловой системой NTFS).

А вдруг и это будет интересно:

Почему бы не подписаться?

Рассылка новых, иногда интересных и полезных, материалов сайта remontka.pro. Никакой рекламы и бесплатная компьютерная помощь подписчикам от автора. Другие способы подписки (ВК, Одноклассники, Телеграм, Facebook, Twitter, Youtube, Яндекс.Дзен)

у меня тоже была проблема с папкой.
а оказалось надо было просто выйти полностью с приложения.

Ошибочка вышла. поспешили:

icacls «путь_к_папке» /grant Administrators:F /t (получаем полные права для всех вложенных папок и файлов).

icacls D: /grant Администраторы:F /t
(получаем полные права для всех вложенных папок и файлов)

Источник

Решаем проблему доступа к целевой папке в Windows 10

Нет доступа к целевой папке

При установке Windows мы по требованию системы создаем учетную запись, которая по умолчанию имеет статус «Администратор». Дело в том, что полноценным админом такой пользователь не является. Сделано это в целях безопасности, но, вместе с тем, данный факт вызывает некоторые проблемы. Например, при попытке проникнуть в системную директорию мы можем получить отказ. Все дело в выделенных разработчиками MS правах, а точнее, в их отсутствии.

Доступ может быть закрыт и к другим папкам на диске, даже созданным самостоятельно. Причины такого поведения ОС кроются уже в искусственном ограничении операций с данным объектом антивирусными программами или вирусами. Они могут поменять правила безопасности для текущей «учетки» или вовсе сделать себя владельцем директории со всеми вытекающими и неприятными для нас последствиями. Чтобы исключить данный фактор, необходимо на время отключить антивирус и проверить возможность открытия папки.

Также можно попробовать произвести требуемую операцию с директорией в «Безопасном режиме», так как большинство антивирусных программ в нем не запускаются.

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

Далее мы рассмотрим другие способы устранения проблемы.

Способ 1: Сторонние программы

Для того чтобы произвести операции с целевой папкой, можно воспользоваться профильным софтом, например, Unlocker. Он позволяет снять блокировку с объекта, помочь его удалить, переместить или переименовать. В нашей ситуации может помочь именно перемещение в другое место на диске, например, на рабочий стол.

Способ 2: Переход на учетную запись администратора

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

    Идем в классическую «Панель управления». Для этого открываем строку «Выполнить» сочетанием клавиш Win+R и пишем

Жмем ОК.
Выбираем режим представления «Мелкие значки» и переходим к управлению учетными записями пользователей.


Смотрим на свою «учетку». Если возле нее на указано «Администратор», наши права ограничены. Такой пользователь имеет статус «Стандартный» и не может производить изменений в параметрах и некоторых папках.

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

UAC выдаст окно следующего вида:

Как видим, кнопка «Да» отсутствует, доступ закрыт. Решается проблема активацией соответствующего пользователя. Сделать это можно на экране блокировки, выбрав его в списке в левом нижнем углу и введя пароль.

Если же такого списка нет (это было бы слишком просто) или пароль утерян, выполняем следующие действия:

    Для начала определяем имя «учетки». Для этого жмем ПКМ по кнопке «Пуск» и переходим к «Управлению компьютером».


Открываем ветку «Локальные пользователи и группы» и кликаем по папке «Пользователи». Здесь расположены все «учетки», имеющиеся на ПК. Нас интересуют те, которые имеют обычные имена. «Администратор», «Гость», пункты с указанием «Default» и «WDAGUtiltyAccount» не подходят. В нашем случае это две записи «Lumpics» и «Lumpics2». Первая, как мы видим, отключена, о чем говорит значок со стрелкой возле названия.

Нажимаем на нее ПКМ и идем в свойства.


Далее переходим на вкладку «Членство в группах» и убеждаемся, что это и есть администратор.

  • Запоминаем имя («Lumpics») и закрываем все окна.
  • Теперь нам потребуется загрузочный носитель с той же версией «десятки», которая установлена на нашем ПК.

      Загружаемся с флешки и на первом этапе (выбора языка) жмем «Далее».


    Переходим к восстановлению системы.


    На экране среды восстановления жмем на пункт, показанный на скриншоте.


    Вызываем «Командную строку».


    Открываем редактор реестра, для чего вводим команду

    Нажимаем ENTER.
    Выделяем ветку

    Идем в меню «Файл» и выбираем загрузку куста.


    С помощью выпадающего списка переходим по пути

    В среде восстановления системным обычно назначается диск D.


    Выбираем файл с названием «SYSTEM» и жмем «Открыть».


    Даем имя разделу на латинице (лучше, чтобы в нем не было пробелов) и нажимаем ОК.


    Раскрываем выделенную ветку («HKEY_LOCAL_MACHINE») и в ней наш созданный раздел. Нажимаем на папку с названием «Setup».


    Дважды кликаем по параметру

    Присваиваем ему значение


    Таким же способом меняем ключ

    Необходимое значение «2» без кавычек.


    Выделяем наш созданный ранее раздел.


    Закрываем редактор и в «Командной строке» выполняем команду


    Выключаем ПК указанной на скриншоте кнопкой, а затем включаем его снова. На этот раз нам нужно загрузиться уже с жесткого диска, выполнив настройки в BIOS (см. выше).

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

      Пишем указанную ниже команду, где «Lumpics» имя пользователя в нашем примере.

    net user Lumpics /active:yes

    Нажимаем ENTER. Пользователь активирован.


    Сбрасываем пароль командой

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

    Читайте также: Изменение пароля в Виндовс 10
    Теперь необходимо вернуть параметры системного реестра, которые мы меняли, к первоначальным значениям. Здесь же, в «Командной строке», вызываем редактор.


    Раскрываем ветку

    В параметре «CmdLine» убираем значение, то есть оставляем его пустым, а «Setup Type» присваиваем значение «0» (ноль). Как это делается, рассказано выше.


    Закрываем редактор, а в «Командной строке» выполняем команду

    После того, как указанные действия будут выполнены, на экране блокировки появится активированный пользователь с правами администратора и, к тому же, без пароля.

    Войдя в данную «учетку», можно пользоваться повышенными привилегиями при изменении параметров и доступе к объектам ОС.

    Способ 3: Активация учетной записи «Администратор»

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

    Заключение

    Применив описанные в данной статье инструкции и получив необходимые права, не забудьте о том, что некоторые файлы и папки не зря являются заблокированными. Это касается системных объектов, изменение или удаление которых может и обязательно приведет к неработоспособности ПК.

    Источник

    Содержание

    1. Ошибка «Нет доступа к целевой папке»: суть и варианты устранения неполадки
    2. Причины возникновения ограничения доступа
    3. Суть проблемы
    4. Варианты решения проблемы
    5. Подведение итогов
    6. Виндовс не может найти целевой объект
    7. Нет доступа к целевой папке Windows 7. Почему?
    8. Проблемы с копированием или перемещением файлов
    9. Нет доступа к целевой папке Windows 7: что делать?
    10. Проблемы с доступом в локальных сетях
    11. Вместо итога
    12. 1. Как получить полный доступ к файлам и папкам
    13. 2. Зачем нужны права файлам и папкам
    14. 3. Причины и решение проблем с доступом к файлам
    15. 4. Что с правами файлов и папок делать нельзя
    16. 5. Выводы
    17. Виндовс не может найти целевой объект
    18. Нет доступа к целевой папке Windows 7. Почему?
    19. Проблемы с копированием или перемещением файлов
    20. Нет доступа к целевой папке Windows 7: что делать?
    21. Проблемы с доступом в локальных сетях
    22. Вместо итога
    23. 1. Как получить полный доступ к файлам и папкам
    24. 2. Зачем нужны права файлам и папкам
    25. 3. Причины и решение проблем с доступом к файлам
    26. 4. Что с правами файлов и папок делать нельзя
    27. 5. Выводы

    Ошибка «Нет доступа к целевой папке»: суть и варианты устранения неполадки

    Операционная система Windows – одна из наиболее часто используемых на компьютерах. Топовые позиции она заслужила за счёт простоты в эксплуатации, многозадачности, возможности настраивать отдельные рабочие столы для разных пользователей, с подключением сетевой аппаратуры и созданием локальных групп. При нормальном функционировании компьютерного устройства и системы, пользователь имеет возможность доступа ко всем требуемым для работы программам, утилитам и приложениям, может координировать работу устройства при помощи несложных операций. Иногда приходится сталкиваться с проблемами, заключающимися в запрете свободного доступа к определённым операциям, что ограничивает возможности, и вынуждает искать решения системной ошибки. Одной из таких ошибок в Windows является ограничение доступа к определённой категории папок и операциям с ними: неисправность заключается в появлении окна на дисплее, с надписью «Нет доступа к целевой папке». В этой статье расскажем, о чём свидетельствует ограничение возможностей пользователя этой категории и как устранить возникшую системную неисправность.

    kak ispravit oshibku net dostupa k celevoj papke

    Причины возникновения ограничения доступа

    ОС Windows, независимо от версии, является сложным программным продуктом, характеризующимся как надёжный и эффективный для работы в офисе и выполнения любых развлекательных и индивидуальных задач, имеющим сертификацию и многоуровневую защиту от несанкционированного стороннего вмешательства. Дополнительно к ограждению от наружного внедрения в систему, Windows обладает правовыми и административными системами защиты, которые предназначены для внутренней охраны сетевых элементов от самого пользователя. Подобный защитный элемент ограничивает возможности, с целью защиты системы от неисправностей, возникновение которых может быть вызвана неправильными действий человека. Поэтому некоторые операции ОС может блокировать по умолчанию, если есть опасность сбоя настроек и повреждения работы системы.

    Верным является предположение, что существует следственно-причинная связь между сообщением «Нет доступа к целевой папке» и политикой безопасности ОС, заключающейся в блокировании несанкционированного действия, однако, причины могут иметь и иную природу, о которой будет рассказано дальше. Прежде чем перейти к дальнейшему решению неисправности, стоит убедиться, что пользователь не нарушает выполняемой операцией корректность и стабильность работы компьютерного программного обеспечения. Если же выполняемая операция является стандартной, ранее осуществлялась без возникновения ошибок, причина может объясняться отсутствием прав на определённую операцию, за счёт заражения системы вирусами, предварительным изменением настроек учётной записи, переустановкой ПО или другими несанкционированными действиями пользователя.

    Net dostupa k celevoj papke

    Суть проблемы

    Проблематика, требующая поиска решения, зачастую заключается в невозможности копирования, удаления, перемещения файлов или документов пользователя, выражающаяся появлением на мониторе сообщения «Нет доступа к целевой папке», на Windows 10, или более ранних версиях. Такие проблемы часто непонятны пользователю, особенно в ситуациях, когда человек, имеет статус администратора компьютера, по умолчанию разрешающий выполнение перечисленных операций. Иногда параллельно с появлением ошибки на дисплее, выскакивает окно, требующее согласия на выполнение операции: в такой ситуации достаточно подтвердить команду, и продолжить работу в обычном режиме. Если же неисправность проявляется безальтернативным методом, тогда потребуется выполнить ряд операций, которые помогут устранить ошибку, восстановить необходимые права выполнения операций.

    Варианты решения проблемы

    Первоначально стоит попробовать решить проблему без принятия кардинальных действий и вмешательства в систему. Сделать это можно, попытавшись осуществить требуемую операцию с папкой в безопасном режиме, который открывается нажатием клавиши F8 при загрузке ноутбука. Нередко причиной неисправности выступает вирусное заражение системы, устранение выполняется сканированием любой из антивирусных программ, установленных на ПК, с последующим удалением вредоносных элементов и исправлением системных ошибок. Если такие мероприятия не дали желаемого результата, можно попробовать устранить ошибку посредством снятия ограничений на выполняемые процессы:

    Otkljuchit uchjotnuju zapis

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

    Для уверенных пользователей ПК аналогичный результат доступен через командную строку. С этой целью нужно в поиск ввести «cmd», правой мышкой нажать на «cmd».

    cmd ot imeni admin

    В запустившемся черном окне ввести команду «net user Administrator /active: yes», и нажать Enter.

    net user Administrator active yes

    Закрыть окно и перезагрузить ПК. Если перечисленные варианты не дали результата, попытаться решить вопрос с ограничением доступа до целевых папок, при помощи проверки наличия программных разрешений, с параллельным выставлением соответствующих допусков.

    Для седьмой версии ОС, процедура выполняется согласно следующему регламенту:

    Для восьмой и 10 версий Windows, процедура выглядит следующим образом:

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

    Если описанные манипуляции являются сложными для пользователя, открыть доступ к целевым папкам могут помочь сторонние утилиты. Одной из самых популярных и простых в эксплуатации программ является бесплатная программа Unckloker. Для использования возможностей приложения достаточно его загрузить и установить на ПК, выбрать объект, который не поддаётся нужным действиям, нажать на него правой кнопкой мышки и в выпадающем списке выбрать пункт Unckloker. В окне программы потребуется выбрать действие и подтвердить его командой «ОК». На этом процедура завершена, доступ к объекту должен быть восстановлен.

    Подведение итогов

    Для исключения проблем с доступом к целевым папкам старайтесь систематически проверять ПК на наличие вирусов, а ещё лучше, установите антивирусную утилиту с автоматическим обновлением, исключающую возможность заражения компьютера, блокирующую поступление заражённой информации на устройство, оперируйте только действиями, значение и последствия которых вам известно. Ошибка, заключающаяся в ограничения доступа к целевым объектам, не относится к сложным в решении, а описанные варианты помогут оперативно устранить неполадку.

    Источник

    Виндовс не может найти целевой объект

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

    Нет доступа к целевой папке Windows 7. Почему?

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

    Именно поэтому иногда и может появляться сообщение, гласящее, что у пользователя нет доступа к целевой папке Windows 7 при копировании, перемещении, удалении или попытке изменения некоторых важных системных компонентов. Многих такие постоянные ограничения, откровенно говоря, раздражают не на шутку. Однако обойти их можно, причем совершенно просто. Но об это чуть позже.

    Проблемы с копированием или перемещением файлов

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

    root

    Нужно всего лишь согласиться, и процесс будет выполнен без проблем. Намного хуже выглядит ситуация, когда производятся попытки доступа или выполнения каких-то действий с системными файлами и папками. Вот тут-то и появляется уведомление о том, что у юзера нет доступа к целевой папке Windows 7. В самом простом случае это попытка скопировать какой-то объект в системный раздел или из него. Чтобы исправить ситуацию, логично предположить два решения: отключить «учетку» суперадмина и предоставить себе абсолютно все права на доступ или изменить системные компоненты.

    Нет доступа к целевой папке Windows 7: что делать?

    Для первого случая методика выглядит достаточно просто, но сначала все равно придется использовать администраторские права.

    wtransj2a5f

    Вторая методика займет несколько больше времени, но она дает полную гарантию того, что сообщение о том, что у пользователя, будь он хоть трижды администратором, нет доступа к целевой папке Windows 7, не появится снова. Правда, это касается исключительно единичных выбранных объектов, с которыми предполагается произвести какие-то действия.

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

    104198c2cf1

    В нем нужно использовать вкладку разрешений (она первая), в колонке типа посмотреть на все строки, в которых установлен запрет, а затем нажать кнопку изменения разрешений. В новом окне находим аналогичную строку и снова жмем кнопку, как в предыдущем случае. После этого просто меняем тип разрешения, устанавливая метку напротив строки полного доступа.

    ntransf80f8e

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

    Теперь при работе с выбранным объектом сообщение о том, что у пользователя нет доступа к целевой папке Windows 7, больше не появится. Но учтите, что это касается только выбранного объекта. Если требуются права для другой директории, вышеописанные операции придется выполнять заново. Кстати, такой метод работает и в случае отказа в доступе к съемным устройствам, только в данном случае нужно использовать меню свойств самого устройства.

    Проблемы с доступом в локальных сетях

    Но и это еще не все. Проблемы могут возникнуть и с «локалками». Иногда система тоже сообщает, что у пользователя (или группы пользователей) нет доступа к целевой папке попросту может иметь такие настройки, когда установлены некоторые ограничения не только на общий доступ к директориям на сетевых терминалах, но и на их обнаружение в сети.

    488936

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

    59593 1519904

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

    Вместо итога

    Как видим, избавиться от постоянно выскакивающего сообщения в разных ситуациях можно достаточно просто. Какой метод использовать? Все зависит от конкретного случая. Однако первые две методики для пользователей домашних терминалов работают безотказно. В случае с сетями на предприятиях, возможно, для применения некоторых настроек придется обращаться к системному администратору. В частности, это касается настройки сетевых параметров. Но включить общий доступ к отдельному каталогу пользователь может и сам (на это разрешение админа не требуется).

    Е сли в Windows 8 или Windows 8.1 вы попробуете открыть, переместить или отредактировать какой-либо системный файл, то, скорее всего, получите ошибку, указывающую на отсутствие прав доступа. Причем ошибка эта возникает даже в том случае, если вы работаете с правами администратора. А для чего собственно нужно вмешиваться в систему и что-то там изменять? Причин тому может быть множество. Допустим, вам нужно вручную отредактировать лог или изображение или заменить файл ради какого-то смелого эксперимента. Так вот, сделать это вы не сможете, даже обладая правами администратора.

    cscreenshot jfd9ed

    В окне свойств переключаемся на вкладку «Безопасность» и жмем «Дополнительно».

    screen162e7f0c

    При этом откроется окно дополнительных параметров безопасности.

    951fb951

    3339723

    Теперь возвращаемся к окну свойств twinui.dll, жмем кнопку «Изменить»,

    d5e 3015489 6

    d3357391

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

    small946b1863

    2091099e34b7

    Утилита запоминает все изменения, так что восстановить права доступа не составит особого труда, тем более что для этого в TakeOwnershipEx имеется соответствующая опция.

    03b713683

    Кстати, при инсталляции программа встраивается в Проводник, что делает работу с ней еще более удобной и быстрой.

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

    1. Как получить полный доступ к файлам и папкам

    Сначала инструкция о том, как получить полный доступ к папкам и файлам. В следующей главе будет объяснение для любознательных.

    Открываем папку, где находится проблемный файл или папка. Чтобы получить полный доступ к их содержимому, нужно настроить доступ к файлам:

    1. Нажимаем правой кнопкой мыши по заблокированному файлу (или папке) без доступа – Свойства – выбираем вкладку Безопасность :

    2. Нажимаем кнопку Дополнительно – выбираем вкладку Владелец :

    3. Нажимаем кнопку Изменить и выбираем имя вашего пользователя (в моем случае это Dima, у вас будет другое), также ставим галку на Заменить владельца подконтейнеров и объектов:

    4. Если появится окно с текстом «Вы не имеете разрешение на чтение содержимого папки. Хотите заменить разрешения для этой папки так, чтобы иметь права полного доступа?», отвечаем Да :

    7. Нажмите кнопку Добавить :

    9. На вкладке Разрешения по очереди нажимайте два раза по строчкам с именами пользователей и ставьте галку на пункт «Полный доступ»:

    Это автоматически поставит галки на пунктах ниже.

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

    Вывод: нужно сделать два шага: стать «владельцем» файла или папки (п. 3), затем назначить себе права доступа (п. 6). Во многих инструкциях о том, как получить полный доступ к файлам и папкам, упоминают только первый шаг, забывая о втором. Это не совсем правильно, потому что настройки безопасности файла/папки могут быть разные, надо привести их в нормальный вид, а не только стать «владельцем».

    2. Зачем нужны права файлам и папкам

    Механизм разграничения доступа к файлам и папкам необходим по многим причинам. Например:

    Если на одном компьютере или в общей сети работает несколько (больше одного) пользователей, логично ограничить доступ к информации – одним пользователям доступна вся информация (чаще всего это администраторы), другим – только их собственные файлы и папки (обычные пользователи).

    Например, дома можно сделать ограничение прав одного пользователя так, чтобы защитить важные файлы и папки от удаления (чтобы ребенок не смог по незнанию удалить важные документы), в то время как с другого (родительского профиля) можно было делать все, что угодно.

    В первой главе я показал, как разрешить доступ определенным пользователям. Точно так же можно и ограничить доступ – шаги те же самые, только в пункте 9 надо ставить другие галочки.

    2. Безопасность операционной системы.

    Под правами ограниченного пользователя, где благодаря настройкам безопаности нельзя было удалять важные системные файлы, мало кто сидел, предпочитая администраторскую учетную запись. Таким образом, учетная запись с правами администратора в Windows XP создает самые благоприятные условия для вирусов.

    Если права доступа к файлам настроены правильно и UAC включен, то вирусы, запущенные в администраторской учетной записи Vista/7/8, не смогут серьезно навредить системе без разрешения человека, сидящему за компьютером.

    UAC бесполезен в случаях:

    1. Если за компьютером сидит пользователь, бездумно нажимающий кнопки «Да» и «OK»

    2. Если запускать программы «от имени администратора» (правой кнопкой по ярлыку программы – Запустить от имени администратора).

    4. Для системных файлов и папок на жестком диске разрешен полный доступ всем пользователям.

    Программы, запущенные в учетной записи ограниченного пользователя Windows Vista/7/8 (тип «Обычный доступ»), не могут вызвать окно UAC и работать с правами администратора, что вполне логично.

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

    3. Причины и решение проблем с доступом к файлам

    Проблема в том, что вы пытаетесь получить доступ к файлам и папкам, созданных под другой учетной записью. Решения два: либо разрешить всем пользователям доступ, либо разрешить только тем, кому это нужно, перечислив их. Оба решения легко реализуемы по инструкции выше. Разница лишь в том, что вы будете вводить в пункте 8 – слово «Все» или перечисляя пользователей.

    Кстати, можно разрешить доступ всем, но запретить одному (нескольким) пользователям, при этом настройка запрета будет приоритетной для перечисленных пользователей.

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

    4. Что с правами файлов и папок делать нельзя

    Ни в коем случае не назначайте полный доступ к файлам и папкам на всем жестком диске с установленной операционной системой!

    Существует миф о том, что операционная система не считает пользователя владельцем своих файлов, поэтому надо назначать права доступа всем файлам на диске. Это неправда и изменять права всех файлов нельзя! Система, в которой не «ковырялись», не назначали права доступа вручную, умеет правильно назначать нужные права!

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

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

    Свои настройки безопасности имеют папки «C:Windows», «C:Program files», «C:Program files (x86)», «C:Users», «C:System Volume Information», «C:ProgramData», «C:Recovery» и многие другие. Их менять нельзя, за исключением случаев, если надо произвести какие-либо манипуляции с файлами (например, чтобы изменить тему Windows), причем надо вернуть настройки обратно.

    Не меняйте настройки безопасности «просто так», делая систему беззащитной перед вирусами и сбоями! После установки Windows права доступа к системным папкам настроены правильно, не надо их менять!

    Совет: если программа корретно работает только в том случае, если запущена «от имени администратора», при обычном запуске выдавая ошибки – попробуйте назначить полные права на изменение папке с ней в «C:Program files» или «C:Program files (x86)» (не самой папке Program files, а папке с нужной программой внутри нее!).

    Очень часто это помогает запустить на Windows Vista/7/8 старые игры, которые хранят файлы настроек, сохранений внутри своей папки. Будучи запущенными без прав изменить свои собственные файлы, такие игры в лучшем случае не могут сохранить игровой прогресс, в худшем – закрываются или вовсе не запускаются. Со старыми программами то же самое.

    5. Выводы

    1. Назначить права доступа относительно легко.

    2. Права доступа менять без обоснованной цели нельзя.

    3. Изменили права системных файлов – меняйте их обратно. Чтобы изменить права системных папок и файлов на прежние, можно воспользоваться этой инструкцией (метод для Windows Vista должен подойти и к Windows 7, Windows 8).

    4. Изменение настроек безопасности – дело тонкое и автор статьи не несет ответственности за ваши действия.

    Источник

    Виндовс не может найти целевой объект

    root

    Е сли в Windows 8 или Windows 8.1 вы попробуете открыть, переместить или отредактировать какой-либо системный файл, то, скорее всего, получите ошибку, указывающую на отсутствие прав доступа. Причем ошибка эта возникает даже в том случае, если вы работаете с правами администратора. А для чего собственно нужно вмешиваться в систему и что-то там изменять? Причин тому может быть множество. Допустим, вам нужно вручную отредактировать лог или изображение или заменить файл ради какого-то смелого эксперимента. Так вот, сделать это вы не сможете, даже обладая правами администратора.

    cscreenshot jfd9ed

    В окне свойств переключаемся на вкладку «Безопасность» и жмем «Дополнительно».

    screen162e7f0c

    При этом откроется окно дополнительных параметров безопасности.

    951fb951

    3339723

    Теперь возвращаемся к окну свойств twinui.dll, жмем кнопку «Изменить»,

    d5e 3015489 6

    d3357391

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

    small946b1863

    2091099e34b7

    Утилита запоминает все изменения, так что восстановить права доступа не составит особого труда, тем более что для этого в TakeOwnershipEx имеется соответствующая опция.

    03b713683

    Кстати, при инсталляции программа встраивается в Проводник, что делает работу с ней еще более удобной и быстрой.

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

    Нет доступа к целевой папке Windows 7. Почему?

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

    Именно поэтому иногда и может появляться сообщение, гласящее, что у пользователя нет доступа к целевой папке Windows 7 при копировании, перемещении, удалении или попытке изменения некоторых важных системных компонентов. Многих такие постоянные ограничения, откровенно говоря, раздражают не на шутку. Однако обойти их можно, причем совершенно просто. Но об это чуть позже.

    Проблемы с копированием или перемещением файлов

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

    cd1 1519899

    Нужно всего лишь согласиться, и процесс будет выполнен без проблем. Намного хуже выглядит ситуация, когда производятся попытки доступа или выполнения каких-то действий с системными файлами и папками. Вот тут-то и появляется уведомление о том, что у юзера нет доступа к целевой папке Windows 7. В самом простом случае это попытка скопировать какой-то объект в системный раздел или из него. Чтобы исправить ситуацию, логично предположить два решения: отключить «учетку» суперадмина и предоставить себе абсолютно все права на доступ или изменить системные компоненты.

    Нет доступа к целевой папке Windows 7: что делать?

    Для первого случая методика выглядит достаточно просто, но сначала все равно придется использовать администраторские права.

    wtransj2a5f

    Вторая методика займет несколько больше времени, но она дает полную гарантию того, что сообщение о том, что у пользователя, будь он хоть трижды администратором, нет доступа к целевой папке Windows 7, не появится снова. Правда, это касается исключительно единичных выбранных объектов, с которыми предполагается произвести какие-то действия.

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

    104198c2cf1

    В нем нужно использовать вкладку разрешений (она первая), в колонке типа посмотреть на все строки, в которых установлен запрет, а затем нажать кнопку изменения разрешений. В новом окне находим аналогичную строку и снова жмем кнопку, как в предыдущем случае. После этого просто меняем тип разрешения, устанавливая метку напротив строки полного доступа.

    ntransf80f8e

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

    Теперь при работе с выбранным объектом сообщение о том, что у пользователя нет доступа к целевой папке Windows 7, больше не появится. Но учтите, что это касается только выбранного объекта. Если требуются права для другой директории, вышеописанные операции придется выполнять заново. Кстати, такой метод работает и в случае отказа в доступе к съемным устройствам, только в данном случае нужно использовать меню свойств самого устройства.

    Проблемы с доступом в локальных сетях

    Но и это еще не все. Проблемы могут возникнуть и с «локалками». Иногда система тоже сообщает, что у пользователя (или группы пользователей) нет доступа к целевой папке попросту может иметь такие настройки, когда установлены некоторые ограничения не только на общий доступ к директориям на сетевых терминалах, но и на их обнаружение в сети.

    488936

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

    59593 1519904

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

    Вместо итога

    Как видим, избавиться от постоянно выскакивающего сообщения в разных ситуациях можно достаточно просто. Какой метод использовать? Все зависит от конкретного случая. Однако первые две методики для пользователей домашних терминалов работают безотказно. В случае с сетями на предприятиях, возможно, для применения некоторых настроек придется обращаться к системному администратору. В частности, это касается настройки сетевых параметров. Но включить общий доступ к отдельному каталогу пользователь может и сам (на это разрешение админа не требуется).

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

    1. Как получить полный доступ к файлам и папкам

    Сначала инструкция о том, как получить полный доступ к папкам и файлам. В следующей главе будет объяснение для любознательных.

    Открываем папку, где находится проблемный файл или папка. Чтобы получить полный доступ к их содержимому, нужно настроить доступ к файлам:

    1. Нажимаем правой кнопкой мыши по заблокированному файлу (или папке) без доступа – Свойства – выбираем вкладку Безопасность :

    2. Нажимаем кнопку Дополнительно – выбираем вкладку Владелец :

    3. Нажимаем кнопку Изменить и выбираем имя вашего пользователя (в моем случае это Dima, у вас будет другое), также ставим галку на Заменить владельца подконтейнеров и объектов:

    4. Если появится окно с текстом «Вы не имеете разрешение на чтение содержимого папки. Хотите заменить разрешения для этой папки так, чтобы иметь права полного доступа?», отвечаем Да :

    7. Нажмите кнопку Добавить :

    9. На вкладке Разрешения по очереди нажимайте два раза по строчкам с именами пользователей и ставьте галку на пункт «Полный доступ»:

    Это автоматически поставит галки на пунктах ниже.

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

    Вывод: нужно сделать два шага: стать «владельцем» файла или папки (п. 3), затем назначить себе права доступа (п. 6). Во многих инструкциях о том, как получить полный доступ к файлам и папкам, упоминают только первый шаг, забывая о втором. Это не совсем правильно, потому что настройки безопасности файла/папки могут быть разные, надо привести их в нормальный вид, а не только стать «владельцем».

    2. Зачем нужны права файлам и папкам

    Механизм разграничения доступа к файлам и папкам необходим по многим причинам. Например:

    Если на одном компьютере или в общей сети работает несколько (больше одного) пользователей, логично ограничить доступ к информации – одним пользователям доступна вся информация (чаще всего это администраторы), другим – только их собственные файлы и папки (обычные пользователи).

    Например, дома можно сделать ограничение прав одного пользователя так, чтобы защитить важные файлы и папки от удаления (чтобы ребенок не смог по незнанию удалить важные документы), в то время как с другого (родительского профиля) можно было делать все, что угодно.

    В первой главе я показал, как разрешить доступ определенным пользователям. Точно так же можно и ограничить доступ – шаги те же самые, только в пункте 9 надо ставить другие галочки.

    2. Безопасность операционной системы.

    Под правами ограниченного пользователя, где благодаря настройкам безопаности нельзя было удалять важные системные файлы, мало кто сидел, предпочитая администраторскую учетную запись. Таким образом, учетная запись с правами администратора в Windows XP создает самые благоприятные условия для вирусов.

    Если права доступа к файлам настроены правильно и UAC включен, то вирусы, запущенные в администраторской учетной записи Vista/7/8, не смогут серьезно навредить системе без разрешения человека, сидящему за компьютером.

    UAC бесполезен в случаях:

    1. Если за компьютером сидит пользователь, бездумно нажимающий кнопки «Да» и «OK»

    2. Если запускать программы «от имени администратора» (правой кнопкой по ярлыку программы – Запустить от имени администратора).

    4. Для системных файлов и папок на жестком диске разрешен полный доступ всем пользователям.

    Программы, запущенные в учетной записи ограниченного пользователя Windows Vista/7/8 (тип «Обычный доступ»), не могут вызвать окно UAC и работать с правами администратора, что вполне логично.

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

    3. Причины и решение проблем с доступом к файлам

    Проблема в том, что вы пытаетесь получить доступ к файлам и папкам, созданных под другой учетной записью. Решения два: либо разрешить всем пользователям доступ, либо разрешить только тем, кому это нужно, перечислив их. Оба решения легко реализуемы по инструкции выше. Разница лишь в том, что вы будете вводить в пункте 8 – слово «Все» или перечисляя пользователей.

    Кстати, можно разрешить доступ всем, но запретить одному (нескольким) пользователям, при этом настройка запрета будет приоритетной для перечисленных пользователей.

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

    4. Что с правами файлов и папок делать нельзя

    Ни в коем случае не назначайте полный доступ к файлам и папкам на всем жестком диске с установленной операционной системой!

    Существует миф о том, что операционная система не считает пользователя владельцем своих файлов, поэтому надо назначать права доступа всем файлам на диске. Это неправда и изменять права всех файлов нельзя! Система, в которой не «ковырялись», не назначали права доступа вручную, умеет правильно назначать нужные права!

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

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

    Свои настройки безопасности имеют папки «C:Windows», «C:Program files», «C:Program files (x86)», «C:Users», «C:System Volume Information», «C:ProgramData», «C:Recovery» и многие другие. Их менять нельзя, за исключением случаев, если надо произвести какие-либо манипуляции с файлами (например, чтобы изменить тему Windows), причем надо вернуть настройки обратно.

    Не меняйте настройки безопасности «просто так», делая систему беззащитной перед вирусами и сбоями! После установки Windows права доступа к системным папкам настроены правильно, не надо их менять!

    Совет: если программа корретно работает только в том случае, если запущена «от имени администратора», при обычном запуске выдавая ошибки – попробуйте назначить полные права на изменение папке с ней в «C:Program files» или «C:Program files (x86)» (не самой папке Program files, а папке с нужной программой внутри нее!).

    Очень часто это помогает запустить на Windows Vista/7/8 старые игры, которые хранят файлы настроек, сохранений внутри своей папки. Будучи запущенными без прав изменить свои собственные файлы, такие игры в лучшем случае не могут сохранить игровой прогресс, в худшем – закрываются или вовсе не запускаются. Со старыми программами то же самое.

    5. Выводы

    1. Назначить права доступа относительно легко.

    2. Права доступа менять без обоснованной цели нельзя.

    3. Изменили права системных файлов – меняйте их обратно. Чтобы изменить права системных папок и файлов на прежние, можно воспользоваться этой инструкцией (метод для Windows Vista должен подойти и к Windows 7, Windows 8).

    4. Изменение настроек безопасности – дело тонкое и автор статьи не несет ответственности за ваши действия.

    Как получить полный доступ к системным файлам и папкам без особых манипуляций и с минимумом потраченного времени. Советуем использовать именно те методы, которые описаны в той статье. Эта статья предназначена для тех, кто хочет делать все своими руками. Однако вторая ее часть будет полезна всем, кто после замены системных файлов хочет вернуть им доступ по умолчанию, т.е. так, как было в Windows изначально.
    Итак, к делу!

    Часть первая. Изменение владельца файлов, а также получение доступа к ним

    3. Теперь переходим на вкладку «Владелец» и нажимаем «Изменить».

    qipimage hyz

    3160541

    4. Из списка выбираем группу администраторов или себя (свою учетную запись) в качестве владельца, нажимаем «Применить», затем «ОК», затем еще раз «ОК».

    9495967

    rtransk7ada8

    2828c3f

    2. Выбираем в списке группу, в которой находится пользователь (группа администраторов) и даем ей полный контроль (поставить галочку напротив «Полный доступ»). Кликаем на «Применить», затем «Да» и еще раз «ОК».

    843657095e15

    3. После всех этих манипуляций можно зайти еще раз в свойства файла и проверить, получилось ли или нет. Если получилось – ваш результат должен быть таким же, как и на картинке ниже.

    rujsmallqugf1

    Всё, мы стали владельцем и получили полный доступ к файлу explorer.exe. Теперь его можно переименовывать, удалять, в общем, делать с ним что угодно.

    Часть вторая. Вернуть доступ по умолчанию
    Итак, после изменения системных файлов, вы решили вернуть им доступ по умолчанию. В основном, владельцем системных файлов и полным доступом над ними обладает пользователь TrustedInstaller. Именно этому пользователю мы и будем возвращать полный доступ. Начнем.

    b95dydimagesjinb95

    aspostfa68

    3. Выбираем в списке группу администраторов и убираем галочки с: «Полный доступ», «Изменение», «Запись». Кликаем на «Применить», затем «Да» и «ОК».

    843657095e15

    Источник

    Е
    сли в Windows 8 или Windows 8.1 вы попробуете открыть, переместить или отредактировать какой-либо системный файл, то, скорее всего, получите ошибку, указывающую на отсутствие прав доступа. Причем ошибка эта возникает даже в том случае, если вы работаете с правами администратора. А для чего собственно нужно вмешиваться в систему и что-то там изменять? Причин тому может быть множество. Допустим, вам нужно вручную отредактировать лог или изображение или заменить файл ради какого-то смелого эксперимента. Так вот, сделать это вы не сможете, даже обладая правами администратора.

    Причина в том, что в Windows 8 существуют права еще более высокого уровня доступа, если можно так выразиться права root. Принадлежат они самой системе. Чтобы получить их, вам нужно изменить несколько простых настроек. Есть два варианта – изменение прав доступа вручную и с помощью специальной утилиты TakeOwnershipEx
    . Для начала рассмотри первый способ
    . Допустим, вам нужно получить полные права доступа к системному файлу twinui.dll. Кликните по нему правой клавишей мыши и в контекстном меню выберите Свойства.

    В окне свойств переключаемся на вкладку «Безопасность» и жмем «Дополнительно».

    При этом откроется окно дополнительных параметров безопасности.

    В верхней части окна вы можете видеть имя файла и путь к нему, а также имя истинного его владельца. По умолчанию это TrustedInstaller
    , для некоторых типов файлов это может быть СИСТЕМА
    . Вот именно его и нужно сменить. Нажмите «Изменить», в открывшемся окошке впишите ваше имя пользователя и, нажав кнопку «Проверить имена», убедитесь в корректности указанного имени. Если оно указано правильно, к нему добавится имя компьютера. Нажмите OK и сохраните результат редактирования.

    Теперь возвращаемся к окну свойств twinui.dll, жмем кнопку «Изменить»,

    в списке выбираем имя пользователя, которого мы назначили вместо TrustedInstaller
    , устанавливаем в чекбоксах галочки и сохраняем результат.

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

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

    Утилита запоминает все изменения, так что восстановить права доступа не составит особого труда, тем более что для этого в TakeOwnershipEx
    имеется соответствующая опция.

    Кстати, при инсталляции программа встраивается в Проводник, что делает работу с ней еще более удобной и быстрой.

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


    . И в заключение хотелось бы обратить ваше внимание на следующее. Изменять права доступа к системным файлам и каталогам без особой нужды не рекомендуется, так как это ослабляет защиту Windows и делает ее уязвимой перед атаками вредоносного ПО

    . Если это возможно, после редактирования того или иного системного объекта права доступа к нему необходимо вернуть к значениям по умолчанию.

    Случается так, что Windows 10 отказывает пользователям в предоставлении доступа к файлам и папкам, хранящимся на компьютере. В основном, данная проблема связана с тем, что юзеры не обладают соответствующими правами, даже несмотря на наличие учетной записи с правами администратора. Обычно такое происходит в случае с системными файлами / папками, либо с теми, что ранее принадлежали пользователю, чья учетная запись более не существует. Что делать, если отказано в доступе к файлу или папке в Windows 10? Если данная проблема мучает и вас, вам должна помочь эта инструкция, в которой описано, как получить полный доступ к файлам или папкам в Windows 10
    .

    1. Откройте Проводник
      и отыщите нужный файл или папку. Если файл или папку в проводнике не видно, не забудьте .

    2. Правой кнопкой мышки щелкните по файлу или папке и нажмите на пункт Свойства
      .

    3. Перейдите в Безопасность
      и нажмите на кнопку Дополнительно
      .
    4. В окне Дополнительные параметры безопасности
      нажмите на ссылку Изменить
      .

    5. Нажмите на Дополнительно
      Поиск
      .

    6. Из перечня пользователей и групп выберите предпочитаемого владельца и нажмите ОК
      .

    7. Установите галочку напротив Заменить владельца подконтейнеров и объектов
      , и нажмите на ОК
      .

    8. Вновь щелкните правой кнопкой мышки по файлу или папке и откройте Свойства
      Безопасность
      .
    9. Нажмите на Дополнительно
      Добавить
      .

    10. Щелкните по ссылке Выберите субъект
      .

    11. Нажмите на Дополнительно
      Поиск
      , выберите субъект из списка и нажмите ОК
      .
    12. Под надписью Общие разрешения
      поставьте галочку напротив пункта Полный доступ
      и нажмите на ОК
      .

    13. Поставьте галочку напротив пункта Заменить все записи разрешений дочернего объекта наследуемыми от этого объекта
      .

    14. Нажмите на ОК
      для применения всех изменений.

    Стать владельцем файла или папки в Windows 10 с помощью утилиты TakeOwnershipEx

    В качестве альтернативного варианта вы можете использовать утилиту TakeOwnershipEx. Она позволяет заменить владельца файла или папки и получить полный доступ к ним в несколько простых нажатий. Пользователям достаточно сделать следующее:

    Оказалась ли полезной данная инструкция? Помогла ли она вам в решении проблемы с получением доступа к файлам и папкам в Windows 10? Напишите свой ответ в комментариях.

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

    Нет доступа к целевой папке Windows 7. Почему?

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

    Именно поэтому иногда и может появляться сообщение, гласящее, что у пользователя нет доступа к целевой папке Windows 7 при копировании, перемещении, удалении или попытке изменения некоторых важных системных компонентов. Многих такие постоянные ограничения, откровенно говоря, раздражают не на шутку. Однако обойти их можно, причем совершенно просто. Но об это чуть позже.

    Проблемы с копированием или перемещением файлов

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

    Нужно всего лишь согласиться, и процесс будет выполнен без проблем. Намного хуже выглядит ситуация, когда производятся попытки доступа или выполнения каких-то действий с системными файлами и папками. Вот тут-то и появляется уведомление о том, что у юзера нет доступа к целевой папке Windows 7. В самом простом случае это попытка скопировать какой-то объект в системный раздел или из него. Чтобы исправить ситуацию, логично предположить два решения: отключить «учетку» суперадмина и предоставить себе абсолютно все права на доступ или изменить системные компоненты.

    Нет доступа к целевой папке Windows 7: что делать?

    Для первого случая методика выглядит достаточно просто, но сначала все равно придется использовать администраторские права.

    Они нужны для запуска командной консоли, которая вызывается через cmd в меню «Выполнить». Здесь нужно прописать одну-единственную строку: net user Администратор /active:yes (если действие производится в англоязычной версии Windows, вместо русского слова следует использовать его соответствующий аналог – Administrator), после чего нажать клавишу ввода (Enter).

    Вторая методика займет несколько больше времени, но она дает полную гарантию того, что сообщение о том, что у пользователя, будь он хоть трижды администратором, нет доступа к целевой папке Windows 7, не появится снова. Правда, это касается исключительно единичных выбранных объектов, с которыми предполагается произвести какие-то действия.

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

    В нем нужно использовать вкладку разрешений (она первая), в колонке типа посмотреть на все строки, в которых установлен запрет, а затем нажать кнопку изменения разрешений. В новом окне находим аналогичную строку и снова жмем кнопку, как в предыдущем случае. После этого просто меняем тип разрешения, устанавливая метку напротив строки полного доступа.

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

    Теперь при работе с выбранным объектом сообщение о том, что у пользователя нет доступа к целевой папке Windows 7, больше не появится. Но учтите, что это касается только выбранного объекта. Если требуются права для другой директории, вышеописанные операции придется выполнять заново. Кстати, такой метод работает и в случае отказа в доступе к съемным устройствам, только в данном случае нужно использовать меню свойств самого устройства.

    Проблемы с доступом в локальных сетях

    Но и это еще не все. Проблемы могут возникнуть и с «локалками». Иногда система тоже сообщает, что у пользователя (или группы пользователей) нет доступа к целевой папке попросту может иметь такие настройки, когда установлены некоторые ограничения не только на общий доступ к директориям на сетевых терминалах, но и на их обнаружение в сети.

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

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

    Вместо итога

    Как видим, избавиться от постоянно выскакивающего сообщения в разных ситуациях можно достаточно просто. Какой метод использовать? Все зависит от конкретного случая. Однако первые две методики для пользователей домашних терминалов работают безотказно. В случае с сетями на предприятиях, возможно, для применения некоторых настроек придется обращаться к системному администратору. В частности, это касается настройки сетевых параметров. Но включить общий доступ к отдельному каталогу пользователь может и сам (на это разрешение админа не требуется).

    Казалось бы, избитая тема, но не реже чем раз в неделю на форуме начинаются пространные объяснения о том, как же все-таки получить доступ к какому-либо объекту. Чаще всего – это, конечно, папки или файлы, иногда разделы реестра. Попробую собрать воедино способы получения доступа к локальным объектам.

    При отсутствии доступа к локальному объекту вы не можете управлять его разрешениями, отсутствие такой возможности может быть компенсировано сменой владельца объекта, после чего вы сможете управлять его разрешениями. Сделать это можно несколькими способами, рассмотрим их по порядку.

    Способ 1. Использование графического интерфейса (GUI)

    Способ 2. Использование утилит командной строки takeown и icacls

    Пприменим только к файлам, папкам и дискам.

    Способ 3. Пункт смены владельца объекта в контекстном меню проводника

    Для упрощения процедуры смены владельца вы можете добавить соответствующий пункт в контекстное меню проводника.
    В предлагаемом варианте также используются утилиты командной строки takeown
    и icacls
    с определенными параметрами, а полученная команда установит владельцем объекта, на котором будет применяться пункт меню, группу Администраторы
    (или Administrators в английской версии ОС).

    Для добавления пункта меню “Смена владельца” в русской

    @=”Смена владельца”
    “NoWorkingDirectory”=””

    @=”cmd.exe /c takeown /f “%1” && icacls “%1″ /grant администраторы:F”
    “IsolatedCommand”=”cmd.exe /c takeown /f “%1” && icacls “%1″ /grant администраторы:F”

    @=”Смена владельца”
    “NoWorkingDirectory”=””

    @=”cmd.exe /c takeown /f “%1” /r /d y && icacls “%1″ /grant администраторы:F /t”
    “IsolatedCommand”=”cmd.exe /c takeown /f “%1” /r /d y && icacls “%1″ /grant администраторы:F /t”

    Для добавления пункта меню “Take Ownership” в английской
    версии Windows Vista примените этот твик реестра:

    Windows Registry Editor Version 5.00

    @=”Take Ownership”
    “NoWorkingDirectory”=””

    @=”cmd.exe /c takeown /f “%1” && icacls “%1″ /grant administrators:F”
    “IsolatedCommand”=”cmd.exe /c takeown /f “%1” && icacls “%1″ /grant administrators:F”

    @=”Take Ownership”
    “NoWorkingDirectory”=””

    @=”cmd.exe /c takeown /f “%1” /r /d y && icacls “%1″ /grant administrators:F /t”
    “IsolatedCommand”=”cmd.exe /c takeown /f “%1” /r /d y && icacls “%1″ /grant administrators:F /t”

    Для удаления этого пункта меню (независимо от языка системы) можете использовать следующий твик реестра:

    Windows Registry Editor Version 5.00

    [-HKEY_CLASSES_ROOT*shellrunas]

    [-HKEY_CLASSES_ROOTDirectoryshellrunas]

    Добавить комментарий