Разделы
Чтение/показ из файлов или загрузка/получение из базы данных бинарных файлов (картинок)
Написал Алхимик   
Понедельник, 24 Октябрь 2005

Как с помощью PHP выдать бинарный файл браузеру? Например, при клике мышкой по ссылке asd.php у человека в браузере грузиться картинка (именно картинка, а не HTML файл с тегом IMG) или выскакивает окошко с просьбой сохранить .ZIP файл.

Как загружать в базу данных бинарные файлы (картинки, архивы или др) и далее брать их в PHP программе.

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

Чтобы выдать браузеру картинку с диска сервера, надо ...
Пример 1

Создайте файл test.php и в том же каталоге картинку image.jpg. Текст test.php:

  header("Content-type: image/gif");
  readfile("image.jpg");
?>

После этого в браузере загрузите http://ваш-сервер/.../test.php и на экране будет картинка.

Что такое Content-type: image/gif? Ответ: это тип файла, который вы собираетесь выдать браузеру. Для выдачи HTML файла пишите (вместо image/gif) text/html, для выдачи бинарного файла application/xxxxxxx ("xxxxxxx" можно заменить любым словом - браузеру по барабану, все неизвестное ему он предложит сохранить на диск). При выдаче бинарного файла, даже если это будет document.txt или image.jpg, в браузере всплывет окошко с просьбой сохранить файл, где имя файла совпадет с названием программы, т.е. test.php. Как предложить другое (заданное программером) имя, будет написано в другой раз (пока можете в форуме поискать).

Почему, выдавая JPG файл, мы пишем image/gif? Ответ: если не бы это не работало, то перед выдачей файла пришлось бы проверять тип файла (JPG/GIF/PNG). Но это работает, поэтому всегда так пишите, чтобы не делать лишнюю работу.

Пример 2

Сделайте такой файл test.html

и в том же каталоге разместите image.jpg и text.php (текст выше), загрузите его в браузере test.html. Таким образом вы можете скрывать имена картинок, которые читаете с диска. Или брать картинку не с диска, а из базы данных, о чем ниже.

Добрый совет

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

Размещение бинарных файлов (картинок) в базе данных
Для помещения бинарного файла в базу данных, надо...


1. создайте таблицу с полем BLOB

2. прочитайте данные, которые надо поместить в базу данных, в переменную $upload. Если это файл (картинка) на диске, то сделайте это так:

   $f=fopen("image.jpg","rb");
// имя файла или картинки -- открыли файл на чтение
   $upload=fread($f,filesize("image.jpg")); // считали файл в переменную
   fclose($f); // закрыли файл, можно опустить
   ...

3. защитите переменную от опасных символов ("прослешьте переменную"):

 
   ...
   $upload=addslashes($upload);
   ...

4. загрузите переменную в базу данных:

  
   ...
   mysql_query("INSERT INTO () VALUES ('$upload')");
?>

"Таблица" - имя таблицы, "поле" - название колонки в таблице типа BLOB, что были созданы при выполнении пункта 1. Разумеется, чтобы выполнить HTML запрос надо предварительно установить соединение с базой данных.

Для взятия бинарного файла из базы данных в браузере, надо...

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

Чтобы показать картинку из базы данных, надо...

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

  ... // подключение к Б.Д.
  $res=mysql_query("SELECT FROM WHERE ")
         or die("SQL ERROR in line ".__LINE__.", function mysql_query");
  $image=mysql_result($res, , );
// берем переменную из б.д.
  header("Content-type: image/gif");
  echo $image;
?>


(0 Комментарии)
 
Настройка DNS, запрет передачи зоны другим серверам
Написал Алхимик   
Четверг, 29 Сентябрь 2005

Обзор
DNS чрезвычайно важный сервис для IP сетей. Однако, данные на сервере DNS могут оказаться ложными. Сейчас все идет к цифровой подписи таких данных, что будет подтверждать их подлинность (метод базируется на цифровой подписи RSA).

DNS-серверы
Bind
Большинство дистрибутивов включают bind 8.x, однако ни один (насколько мне известно) не использует установку для не-root, по умолчанию использован chroot. Исправить данное упущение просто:

-u
указывает с каким UID bind будет работать как только свяжется с портом 53 (я использую пользователя 'named' без каких-либо прав, аналог 'nobody').

-g
указывает с каким GID bind будет работать как только свяжется с портом 53 (я использую группу 'named'без каких-либо прав, аналог 'nobody').

-t
указывает каталог, который bind будет использовать после запуска, в этом каталоге, Вы должны разместить все нужные для bind библиотеки, и файлы конфигурации. Хорошим выбором является /home/named.

Еще один способ: скачать пакет bind-chroot, доступный для большинства дистрибутивов и поставить его. Перед установкой создайте (можно с помощью groupadd и useradd) группу и пользователя, на UID/GID которых bind сменит свои после запуска. Многие пакеты используют holelogd для протоколирования данных bind в /var/log/messages (нормальный режим работы bind). Файл настроек обычно безопасен (то есть, Вы не сможете запросить версию bind).

Другой аспект bind: он хранит данные о Вашей сети. Но есть доменные запросы, где DNS запрашивает всю информацию для, скажем, seifried.org, захватывает ее и может затем делать ее доступной другому (в случае вторичного DNS-сервера). Это потенциально очень опасно. Bind версии 4 толковой защиты не имел. Вы могли ограничивать передачи некоторым сервером, но толку было мало. Помните, что обезопасить придется ВСЕ зональные серверы (как master, так и secondaries), поскольку secondary могут прекрасно передать данные за пределы зоны.

Имеется относительно безопасный файл named.conf:

options {
// The following paths are necessary for this chroot
directory "/var/named";
dump-file "/var/tmp/named_dump.db"; // _PATH_DUMPFILE
pid-file "/var/run/named.pid"; // _PATH_PIDFILE
statistics-file "/var/tmp/named.stats"; // _PATH_STATS
memstatistics-file "/var/tmp/named.memstats"; // _PATH_MEMSTATS
// End necessary chroot paths
check-names master warn; /* default. */
datasize 20M;
};

zone "localhost" {
type master;
file "master/localhost";
    check-names fail;
    allow-update {
        none;
    };
    allow-transfer {
        any;
    };
};

zone "0.0.127.in-addr.arpa" {
type master;
file "master/127.0.0";
    allow-update {
        none;
    };
    allow-transfer {
        any;
    };
};

// Deny and log queries for our version number except from localhost
zone "bind" chaos {
type master;
file "master/bind";
    allow-query {
        localhost;
    };
};

zone "." {
type hint;
file "named.zone";
};

zone "example.org" {
type master;
file "zones/example.org";
    allow-transfer {
        10.2.1.1;
        10.3.1.1;
    };
};

DNS работает на порте 53, используя протоколы udp и tcp, udp используется для нормальных запросов (это легко и быстро), tcp используется для зональных передач и больших запросов. Таким образом, firewalling tcp относительно безопасен и определенно остановит любые зональные передачи, но случайный запрос DNS не сможет работать. Лучше использовать named.conf, чтобы управлять зональными передачами.

ipfwadm -I -a accept -P tcp -S 10.0.0.0/8 -D 0.0.0.0/0 53
ipfwadm -I -a accept -P tcp -S some.trusted.host -D 0.0.0.0/0 53
ipfwadm -I -a deny -P tcp -S 0.0.0.0/0 -D 0.0.0.0/0 53

или

ipchains -A input -p tcp -j ACCEPT -s 10.0.0.0/8 -d 0.0.0.0/0 53
ipchains -A input -p tcp -j ACCEPT -s some.trusted.host -d 0.0.0.0/0 53
ipchains -A input -p tcp -j DENY -s 0.0.0.0/0 -d 0.0.0.0/0 53

Блокирует зональные передачи и большие запросы, следующие команды блокируют нормальные запросы (но не зональные передачи, так что при блокировке не забывайте использовать оба набора правил):

ipfwadm -I -a accept -P udp -S 10.0.0.0/8 -D 0.0.0.0/0 53
ipfwadm -I -a accept -P udp -S some.trusted.host -D 0.0.0.0/0 53
ipfwadm -I -a deny -P udp -S 0.0.0.0/0 -D 0.0.0.0/0 53

или

ipchains -A input -p udp -j ACCEPT -s 10.0.0.0/8 -d 0.0.0.0/0 53
ipchains -A input -p udp -j ACCEPT -s some.trusted.host -d 0.0.0.0/0 53
ipchains -A input -p udp -j DENY -s 0.0.0.0/0 -d 0.0.0.0/0 53

(0 Комментарии)

 
Модульное тестирование для PHP: первое знакомство
"; $this->assertEquals($expecting, $tableItems); }

Сразу реализуем функцию getTableItems():

function getTableItems($start, $step, $nItems) {
    $range = $this->getRange($start, $step, $nItems);
    $result = "";
    foreach($range as $value) {
        $result = $result . "
"; } return $result; }

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

function getValue($x) {
    return round(sin($x), 3);
}

Все тесты довольны, займёмся выводом таблицы на рабочей странице. Создадим файл index.php в корневой папке нашего приложения.


Написал Алхимик   
Пятница, 16 Сентябрь 2005

Модульное тестирование для PHP: первое знакомство.

Автор: Александр Федоренко.

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

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

Настройка PHPUnit.
Самый первый тест.
Работа с приложением.
Построение таблицы значений функции.
Отображение функции в виде графика.
Заключение.

Настройка PHPUnit.

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

В качестве среды модульного тестирования был выбран PHPUnit Себастьяна Бергана. Скачайте версию 1.0 и распакуйте дистрибутив в отдельную папку. Для простоты доступа к библиотеке добавим этот путь в php.ini include_path (include_path = ".;c:\phpunit" или include_path = ".:/phpunit", для Unix). Не волнуйтесь, на сервере хостинга вам этого делать не придётся, т.к. основное назначение модульных тестов - помощь при разработке и проверка работоспособности небольших участков кода. Единственным исключением является выявление ошибок, проявляющихся лишь на конкретном рабочем сервере. Но даже для этого случая всю среду PHPUnit можно будет скопировать в ту же папку, где расположены тесты.

Создайте папку, где будет находиться наше тестовое приложение, у меня она называется "sin". Добавьте в Apache alias sin, указывающий на одноимённую папку или виртуальный сервер для IIS-а. Проверьте работоспособность сервера с помощью Веб браузера http://localhost/sin/. Если всё в порядке, двигаемся дальше.

Самый первый тест.

Чтобы не засорять корневой каталог будущего приложения создадим подпапку для тестов, скажем testcases. Уже в этой папке создадим php файл с первым тестом, так его и назовём: "firsttest.php". Далее движемся по сценарию, описанному в документации по PHPUnit: добавляем ссылку на 'PHPUnit.php' и объявляем класс для тестов, унаследованный от PHPUnit_TestCase. В этом классе объявляем конструктор, который лишь передаёт значение родительскому классу и первый тестовый метод testTest().

PHPUnit_TestCase($name);
    }
    function testTest() {
        $this->assertEquals("String1", "String2");
    }
}
?>

Не забывайте, что функция распознаётся средой как тестовый случай, если начинается со слова test. Чтобы тест запускался, его необходимо добавить в тестовый набор (TestSuite), который, в свою очередь, запустится командой run. Вынесем это в отдельный файл sintest.php:

 toHTML();
?>

Нам ничего не остается, как запустить sintest.php в браузере: http://localhost/sin/testcases/sintest.php. Должна отобразиться строка:

TestCase firsttest->testtest() failed: 
    expected String1, actual String2

Что свидетельствует о правильной настройке среды для нашего приложения. Теперь исправьте в функции testTest() строку "String2" на "String1" для выполнения теста. В обновлённом окне браузера должно отобразиться сообщение об успешном выполнении теста:

TestCase firsttest->testtest() passed

Работа с приложением.

Со средой разобрались, переходим непосредственно к приложению. Разобьём задание на две истории пользователя:

  1. Построение таблицы значений функции.
  2. Отображение функции в виде графика.

Построение таблицы значений функции.

Первая история может быть разбита на задачи:

  1. Заполнение массива значениями функции для дискретных интервалов.
  2. Построение таблицы в HTML с полученными данными.

Первую задачу начнём с проектирования и теста. Предположим, что у нас есть класс FuncProcessor, который отвечает за вычисление значений функции для каждого предложенного значения x. На этом проектирование пока заканчивается, а что делать дальше нам укажет тест. Я знаю, что синус нуля равен нулю, а синус pi/2 равен единице. Так в тесте и декларирую:

function testFunction() {
    $funcProcessor = new FuncProcessor();
    $x = 0;
    $this->assertEquals(0, $funcProcessor->getValue($x));
    $x = pi()/2;
    $this->assertEquals(1, $funcProcessor->getValue($x));
}

Если мы попытаемся запустить нашу тестовую страницу, то увидим, что недостаёт функции getValue(), её и займёмся.

class FuncProcessor {
    function getValue($x) {
        return sin($x);
    }
}

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

function testDataRange() {
    $funcProcessor = new FuncProcessor();
    $start = 0;
    $step = pi()/4;
    $nItems = 10;
    $range = $funcProcessor->getRange(
	    $start, $step, $nItems);
    $this->assertEquals(0, $range[0]);
    $this->assertEquals(1, $range[2]);
    $this->assertEquals(0, $range[4]);
}

Опять же, за нами осталась имплементация метода getRange().

function getRange($start, $step, $nItems) {
    for($i = 0; $i getValue(
		    $start + $step * $i);
    }
    return $range;
}

После запуска теста мы увидим, что он не сработал: вместо нуля элемент 4 содержит 1.22460635382E-016. Похоже на ошибку округления значения pi. Нас такая точность вполне устроит, попробуем это объяснить тесту. Долго возиться не придётся, т.к. четвёртым аргументом функции assertEquals() является точность. Выставим её на десять в минус пятнадцатой:

$this->assertEquals(0, $range[4], '', 1E-15);

Всё в порядке, можно двигаться дальше. Задача 1 выполнена, переходим ко второй.

Напишем тест, в котором явно укажем, что нам хотелось бы получить.

function testTableRange() {
    $funcProcessor = new FuncProcessor();
    $start = 0;
    $step = pi()/2;
    $nItems = 3;
    $tableItems = $funcProcessor->getTableItems($start, 
        $step, $nItems);
    $expecting = "
010$value
getTableItems($start, $step, $nItems); ?>

Вторая задача, а вместе с ней и история 1 готовы. Перейдём к картинкам и истории 2.

Отображение функции в виде графика.

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

function testPictureCreation() {
    $this->assertNotNull($size = 
        GetImageSize(
        "http://localhost/sin/img/graph.php"));
    $this->assertEquals(202, $size[0]);
    $this->assertEquals(102, $size[1]);
}

Теперь рисуем график в файле graph.php. Первым шагом просто создадим картинку с фоном и интересующими нас размерами (202x102):

У меня тест не сработал, скорее всего, потому, что не установлена графическая библиотека GD. Добавим ещё одну проверку в тест.

$this->assertTrue(function_exists("imagepng"), 
        "(imagepng not found)");

Тест не сработал, теперь точно известно, что необходимо доставить библиотеку GD. На сервере хостинга обычно она уже есть. Для PHP версии 4.3 достаточно лишь включить GD в конфигурацию:

extension=php_gd2.dll в php.ini для Windows или configure --with-gd для Unix.

Тест должен работать, добавим картинку на нашу рабочую страницу:

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

 
draw($start, $step, $nItems);
}
?>

Как вы заметили, сам процесс рисования вынесен в отдельный класс GraphProcessor.

_image = $image;
    }
    
    function getImage() {
        return $this->_image;
    }
    
    function draw($start, $step, $nItems) {
        $funcProcessor = new FuncProcessor();
        $range = $funcProcessor->getRange($start, 
            $step, $nItems);
        
        $this->drawArea();
        $this->drawAxis();
        $this->drawGraph($range);
    }

    function getWidth() {
        return ImageSX($this->getImage()) - 2;
    }
    
    function getHeight() {
        return ImageSY($this->getImage()) - 2;
    }
    
    function drawArea() {
        $colorWhite = ImageColorAllocate(
            $this->getImage(), 255, 255, 255); 
    }

    function drawAxis() {
        $width = $this->getWidth();
        $height = $this->getHeight();
        $colorGray = ImageColorAllocate(
            $this->getImage(), 96, 96, 96); 
        // Axis of abscissas (x).
        ImageLine($this->getImage(), 0, $height/2, 
            $width, $height/2, $colorGray); 
        // Axis of ordinates (y)
        ImageLine($this->getImage(), 0, 1, 
            0, $height, $colorGray); 
    }

    function drawGraph($range) {
    }
}
?>

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

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

function drawGraph($range) {
    $points = $this->rangeToPoints($range);
    $colorRed = ImageColorAllocate(
        $this->getImage(), 255, 0, 0); 
    $nPoints = count($points);
    for($i = 0; $i getStepLength() * $i;
        $x2 = $this->getStepLength() * ($i + 1);
        ImageLine($this->getImage(), $x1, $points[$i], 
            $x2, $points[$i+1], $colorRed); 
    }
}

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

$suite->addTestSuite("GraphTest");

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

function testRangeToPoints() {
    $im = @ImageCreate (202, 102);
    $graphProcessor = new GraphProcessor($im);
    $range = array(0, 0.5, 1, -0.5, -1);
    $expecting = array(50, 75, 100, 25, 0);
    $points = $graphProcessor->rangeToPoints($range);
    for($i = 0; $i assertEquals($expecting[$i], $points[$i]);
    }
}

Теперь займёмся реализацией самой rangeToPoints().

function rangeToPoints($range) {
    $height = $this->getHeight();
    $absoluteMax = $this->getMaxAbsolute($range);
    $nPoints = count($range);
    for($i = 0; $i < $nPoints; $i++) {
        $points[$i] = $range[$i]/$absoluteMax 
            * $height/2 + $height/2;
    }
    return $points;
}

В этой функции для масштабирования значений по оси X необходимо вычислить максимальное абсолютное значение элементов массива. Это будет реализовано в функции getMaxAbsolute(). Тут же, по горячим следам создаём тест для этой функции:

function testAbsoluteMaxValue() {
    $graphProcessor = new GraphProcessor(0);
    $range = array(0, 0.4, 2, -3, 1);
    $absoluteMax = $graphProcessor->getMaxAbsolute($range);
    $this->assertEquals(3, $absoluteMax);
}

А теперь саму функцию:

function getMaxAbsolute($range) {
    $max = 0;
    $nPoints = count($range);
    for($i = 0; $i < $nPoints; $i++) {
        if($max < abs($range[$i])) {
            $max = abs($range[$i]);
        }
    }
    return $max;
}

Всё должно работать. Так и есть, все тесты выполняются, а отображённая картинка вполне похожа на синусоиду.

Заключение.

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

(0 Комментарии)

 
Функции даты и времени в MySQL
Написал Алхимик   
Пятница, 16 Сентябрь 2005

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

mysql> SELECT something FROM tbl_name
        WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;
  • DAYOFWEEK(date)

    Возвращает индекс дня недели для аргумента date (1 = воскресенье, 2 = понедельник, ... 7 = суббота). Эти индексные величины соответствуют стандарту ODBC.

    mysql> SELECT DAYOFWEEK('1998-02-03');
            -> 3
    

  • WEEKDAY(date)

    Возвращает индекс дня недели для аргумента date (0 =понедельник, 1 = вторник, ... 6 = воскресенье):

    mysql> SELECT WEEKDAY('1998-02-03 22:23:00');
            -> 1
    mysql> SELECT WEEKDAY('1997-11-05');
            -> 2
    

  • DAYOFMONTH(date)

    Возвращает порядковый номер дня месяца для аргумента date в диапазоне от 1 до 31:

    mysql> SELECT DAYOFMONTH('1998-02-03');
            -> 3
    

  • DAYOFYEAR(date)

    Возвращает порядковый номер дня года для аргумента date в диапазоне от 1 до 366:

    mysql> SELECT DAYOFYEAR('1998-02-03');
            -> 34
    

  • MONTH(date)

    Возвращает порядковый номер месяца в году для аргумента date в диапазоне от 1 до 12:

    mysql> SELECT MONTH('1998-02-03');
            -> 2
    

  • DAYNAME(date)

    Возвращает название дня недели для аргумента date:

    mysql> SELECT DAYNAME("1998-02-05");
            -> 'Thursday'
    

  • MONTHNAME(date)

    Возвращает название месяца для аргумента date:

    mysql> SELECT MONTHNAME("1998-02-05");
            -> 'February'
    

  • QUARTER(date)

    Возвращает номер квартала года для аргумента date в диапазоне от 1 до 4:

    mysql> SELECT QUARTER('98-04-01');
            -> 2
    

  • WEEK(date) , WEEK(date,first)

    При наличии одного аргумента возвращает порядковый номер недели в году для date в диапазоне от 0 до 53 (да, возможно начало 53-й недели) для регионов, где воскресенье считается первым днем недели. Форма WEEK() с двумя аргументами позволяет уточнить, с какого дня начинается неделя - с воскресенья или с понедельника. Результат будет в пределах 0-53 или 1-52.

    Вот как работает второй аргумент:

    ВеличинаОзначает
    0Неделя начинается с воскресенья; возвращаемое значение - в промежутке 0-53
    1Неделя начинается с понедельника; возвращаемое значение - в промежутке 0-53
    2Неделя начинается с воскресенья; возвращаемое значение - в промежутке 1-53
    3Неделя начинается с понедельника; возвращаемое значение - в промежутке 1-53 (ISO 8601)

    mysql> SELECT WEEK('1998-02-20');
            -> 7
    
    mysql> SELECT WEEK('1998-02-20',0);
            -> 7
    
    mysql> SELECT WEEK('1998-02-20',1);
            -> 8
    
    mysql> SELECT WEEK('1998-12-31',1);
            -> 53
    

    Примечание: в версии 4.0 функция WEEK(#,0) была изменена с целью соответствия календарю США.

    Заметьте, если неделя является последней неделей прошлого года, MySQL вернет 0 если вы не указали 2 или 3 как опциональный аргумент:

    mysql> SELECT YEAR('2000-01-01'), WEEK('2000-01-01',0);
            -> 2000, 0
    mysql> SELECT WEEK('2000-01-01',2);
            -> 52
    

    Можно считать, что MySQL должен вернуть 52, так как данная дата и является 52-ой неделей года 1999. Мы решили возвращать 0, так как мы хотим, чтобы функция давала "номер недели в указанном году". Это делает функцию WEEK() более надежной при использовании совместно с другими функциями, которые вычисляют части дат.

    Если вам все же важно уточнить корректную неделю в году, тогда вы можете использовать 2 или 3 как опциональный аргумент или использовать YEARWEEK()

    mysql> SELECT YEARWEEK('2000-01-01');
            -> 199952
    mysql> SELECT MID(YEARWEEK('2000-01-01'),5,2);
            -> 52
    

  • YEAR(date)

    Возвращает год для аргумента date в диапазоне от 1000 до 9999:

    mysql> SELECT YEAR('98-02-03');
            -> 1998
    

  • YEARWEEK(date) , YEARWEEK(date,first)

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

    mysql> SELECT YEARWEEK('1987-01-01');
            -> 198653
    

    Обратите внимание, что номер недели отличается от того, который возвращает функция WEEK() (0), будучи вызванной с опциональным аргументом 0 или 1. Это потому, что WEEK() возвращает номер недели именно в указанном году.

  • HOUR(time)

    Возвращает час для аргумента time в диапазоне от 0 до 23:

    mysql> SELECT HOUR('10:05:03');
            -> 10
    

  • MINUTE(time)

    Возвращает количество минут для аргумента time в диапазоне от 0 до 59:

    mysql> SELECT MINUTE('98-02-03 10:05:03');
            -> 5
    

  • SECOND(time)

    Возвращает количество секунд для аргумента time в диапазоне от 0 до 59:

    mysql> SELECT SECOND('10:05:03');
            -> 3
    

  • PERIOD_ADD(P,N)

    Добавляет N месяцев к периоду P (в формате YYMM или YYYYMM). Возвращает величину в формате YYYYMM. Следует учитывать, что аргумент периода P не является значением даты:

    mysql> SELECT PERIOD_ADD(9801,2);
            -> 199803
    

  • PERIOD_DIFF(P1,P2)

    Возвращает количество месяцев между периодами P1 и P2. P1 и P2 должны быть в формате YYMM или YYYYMM. Следует учитывать, что аргументы периода P1 и P2 не являются значениями даты:

    mysql> SELECT PERIOD_DIFF(9802,199703);
            -> 11
    

  • DATE_ADD(date,INTERVAL expr type) , DATE_SUB(date,INTERVAL expr type) , ADDDATE(date,INTERVAL expr type) , SUBDATE(date,INTERVAL expr type)

    Данные функции производят арифметические действия над датами. Обе являются нововведением версии MySQL 3.22. Функции ADDDATE() и SUBDATE() - синонимы для DATE_ADD() и DATE_SUB(). В версии MySQL 3.23 вместо функций DATE_ADD() и DATE_SUB() можно использовать операторы + и -, если выражение с правой стороны представляет собой столбец типа DATE или DATETIME (см. пример ниже). Аргумент date является величиной типа DATETIME или DATE, задающей начальную дату.

    Выражение expr задает величину интервала, который следует добавить к начальной дате или вычесть из начальной даты. Выражение expr представляет собой строку, которая может начинаться с - для отрицательных значений интервалов. Ключевое слово type показывает, каким образом необходимо интерпретировать данное выражение. Вспомогательная функция EXTRACT(type FROM date) возвращает интервал указанного типа (type) из значения даты. В следующей таблице показана взаимосвязь аргументов type и expr:

    Значение Type Ожидаемый формат expr
    SECONDSECONDS
    MINUTEMINUTES
    HOURHOURS
    DAYDAYS
    MONTHMONTHS
    YEARYEARS
    MINUTE_SECOND"MINUTES:SECONDS"
    HOUR_MINUTE"HOURS:MINUTES"
    DAY_HOUR"DAYS HOURS"
    YEAR_MONTH"YEARS-MONTHS"
    HOUR_SECOND"HOURS:MINUTES:SECONDS"
    DAY_MINUTE"DAYS HOURS:MINUTES"
    DAY_SECOND"DAYS HOURS:MINUTES:SECONDS"

    В MySQL формат выражения expr допускает любые разделительные знаки. Разделители, представленные в данной таблице, приведены в качестве примеров. Если аргумент date является величиной типа DATE и предполагаемые вычисления включают в себя только части YEAR, MONTH, и DAY (т.е. не содержат временной части TIME), то результат представляется величиной типа DATE. В других случаях результат представляет собой величину DATETIME:

    mysql> SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;
            -> 1998-01-01 00:00:00
    mysql> SELECT INTERVAL 1 DAY + "1997-12-31";
            -> 1998-01-01
    mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND;
            -> 1997-12-31 23:59:59
    mysql> SELECT DATE_ADD("1997-12-31 23:59:59", INTERVAL 1 SECOND);
            -> 1998-01-01 00:00:00
    mysql> SELECT DATE_ADD("1997-12-31 23:59:59", INTERVAL 1 DAY);
            -> 1998-01-01 23:59:59
    mysql> SELECT DATE_ADD("1997-12-31 23:59:59", INTERVAL "1:1" MINUTE_SECOND);
            -> 1998-01-01 00:01:00
    mysql> SELECT DATE_SUB("1998-01-01 00:00:00", INTERVAL "1 1:1:1" DAY_SECOND);
            -> 1997-12-30 22:58:59
    mysql> SELECT DATE_ADD("1998-01-01 00:00:00", INTERVAL "-1 10" DAY_HOUR);
            -> 1997-12-30 14:00:00
    mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);
            -> 1997-12-02
    

    Если указанный интервал слишком короткий (т.е. не включает все части интервала, ожидаемые при заданном ключевом слове type), то MySQL предполагает, что опущены крайние слева части интервала. Например, если указан аргумент type в виде DAY_SECOND, то ожидаемое выражение expr должно иметь следующие части: дни, часы, минуты и секунды. Если в этом случае указать значение интервала в виде "1:10", то MySQL предполагает, что опущены дни и часы, а данная величина включает только минуты и секунды. Другими словами, сочетание "1:10" DAY_SECOND интерпретируется как эквивалент "1:10" MINUTE_SECOND. Аналогичным образом в MySQL интерпретируются и значения TIME - скорее как представляющие прошедшее время, чем как время дня. Следует учитывать, что при операциях сложения или вычитания с участием величины DATE и выражения, содержащего временную часть, данная величина DATE будет автоматически конвертироваться в величину типа DATETIME:

    mysql> SELECT DATE_ADD("1999-01-01", INTERVAL 1 DAY);
            -> 1999-01-02
    
    mysql> SELECT DATE_ADD("1999-01-01", INTERVAL 1 HOUR);
            -> 1999-01-01 01:00:00
    

    При использовании некорректных значений дат результат будет равен NULL. Если при суммировании MONTH, YEAR_MONTH или YEAR номер дня в результирующей дате превышает максимальное количество дней в новом месяце, то номер дня результирующей даты принимается равным последнему дню нового месяца:

    mysql> SELECT DATE_ADD('1998-01-30', INTERVAL 1 MONTH);
            -> 1998-02-28
    

    Из предыдущего примера видно, что слово INTERVAL и ключевое слово type не являются регистро-зависимыми.

  • EXTRACT(type FROM date)

    Типы интервалов для функции EXTRACT() используются те же, что и для функций DATE_ADD() или DATE_SUB(), но EXTRACT() производит скорее извлечение части из значения даты, чем выполнение арифметических действий.

    mysql> SELECT EXTRACT(YEAR FROM "1999-07-02");
            -> 1999
    
    mysql> SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03");
            -> 199907
    
    mysql> SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03");
            -> 20102
    

  • TO_DAYS(date)

    функция возвращает номер дня для даты, указанной в аргументе date, (количество дней, прошедших с года 0):

    mysql> SELECT TO_DAYS(950501);
            -> 728779
    
    mysql> SELECT TO_DAYS('1997-10-07');
            -> 729669
    

    Функция TO_DAYS() не предназначена для использования с величинами, предшествующими введению григорианского календаря (1582), поскольку не учитывает дни, утерянные при изменении календаря.

  • FROM_DAYS(N)

    Возвращает величину DATE для заданного номера дня N:

    mysql> SELECT FROM_DAYS(729669);
            -> '1997-10-07'
    

    Функция FROM_DAYS() не предназначена для использования с величинами, предшествующими введению григорианского календаря (1582), поскольку она не учитывает дни, утерянные при изменении календаря.

  • DATE_FORMAT(date,format)

    Форматирует величину date в соответствии со строкой format. В строке format могут использоваться следующие определители:

    ОпределительОписание
    %MНазвание месяца (январь...декабрь)
    %WНазвание дня недели (воскресенье...суббота)
    %DДень месяца с английским суффиксом (0st, 1st, 2nd, 3rd и т.д.)
    %YГод, число, 4 разряда
    %yГод, число, 2 разряда
    %XГод для недели, где воскресенье считается первым днем недели, число, 4 разряда, используется с '%V'
    %xГод для недели, где воскресенье считается первым днем недели, число, 4 разряда, используется с '%v'
    %aСокращенное наименование дня недели (Вс...Сб)
    %dДень месяца, число (00..31)
    %eДень месяца, число (0..31)
    %mМесяц, число (00..12)
    %cМесяц, число (0..12)
    %bСокращенное наименование месяца (Янв...Дек)
    %jДень года (001..366)
    %HЧас (00..23)
    %kЧас (0..23)
    %hЧас (01..12)
    %IЧас (01..12)
    %lЧас (1..12)
    %iМинуты, число (00..59)
    %rВремя, 12-часовой формат (hh:mm:ss [AP]M)
    %TВремя, 24-часовой формат (hh:mm:ss)
    %SСекунды (00..59)
    %sСекунды (00..59)
    %pAM или PM
    %wДень недели (0=воскресенье..6=суббота)
    %UНеделя (00..53), где воскресенье считается первым днем недели
    %uНеделя (00..53), где понедельник считается первым днем недели
    %VНеделя (01..53), где воскресенье считается первым днем недели. Используется с '%X'
    %vНеделя (01..53), где понедельник считается первым днем недели. Используется с '%x'
    %%Литерал '%'.

    Все другие символы просто копируются в результирующее выражение без интерпретации:

    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
            -> 'Saturday October 1997'
    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
            -> '22:23:00'
    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%D %y %a %d %m %b %j');
            -> '4th 97 Sat 04 10 Oct 277'
    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H %k %I %r %T %S %w');
            -> '22 22 10 10:23:00 PM 22:23:00 00 6'
    mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
            -> '1998 52'
    

    В MySQL 3.23 символ '%' должен предшествовать символам определителя формата. В более ранних версиях MySQL символ '%' необязателен.

    Причина того, что промежутки для месяца и дня начинаются с нуля заключается в том, что MySQL позволяет использовать неполные даты, такие как '2004-00-00', начиная с MySQL 3.23.

  • TIME_FORMAT(time,format)

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

  • CURDATE() , CURRENT_DATE

    Возвращает сегодняшнюю дату как величину в формате YYYY-MM-DD или YYYYMMDD, в зависимости от того, в каком контексте используется функция - в строковом или числовом:

    mysql> SELECT CURDATE();
            -> '1997-12-15'
    mysql> SELECT CURDATE() + 0;
            -> 19971215
    

  • CURTIME() , CURRENT_TIME

    Возвращает текущее время как величину в формате HH:MM:SS или HHMMS, в зависимости от того, в каком контексте используется функция - в строковом или числовом:

    mysql> SELECT CURTIME();
            -> '23:50:26'
    mysql> SELECT CURTIME() + 0;
            -> 235026
    

  • NOW() , SYSDATE() , CURRENT_TIMESTAMP

    Возвращает текущую дату и время как величину в формате YYYY-MM-DD HH:MM:SS или YYYYMMDDHHMMSS, в зависимости от того, в каком контексте используется функция - в строковом или числовом:

    mysql> SELECT NOW();
            -> '1997-12-15 23:50:26'
    mysql> SELECT NOW() + 0;
            -> 19971215235026
    

    Заметьте, что NOW() вычисляется только единожды для каждого запроса, а именно - в начале его выполнения. Это позволяет быть уверенным в том, что множественные ссылки на NOW() в рамках одного запроса дадут одно и то же значение.

  • UNIX_TIMESTAMP() , UNIX_TIMESTAMP(date)

    При вызове данной функции без аргумента она возвращает временную метку UNIX_TIMESTAMP (секунды с 1970-01-01 00:00:00 GMT) как беззнаковое целое число. Если функция UNIX_TIMESTAMP() вызывается с аргументом date, она возвращает величину аргумента как количество секунд с 1970-01-01 00:00:00 GMT. Аргумент date может представлять собой строку типа DATE, строку DATETIME, величину типа TIMESTAMP или число в формате YYMMDD или YYYYMMDD местного времени:

    mysql> SELECT UNIX_TIMESTAMP();
            -> 882226357
    
    mysql> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
            -> 875996580
    

    При использовании функции UNIX_TIMESTAMP в столбце TIMESTAMP эта функция будет возвращать величину внутренней временной метки непосредственно, без подразумеваемого преобразования строки во временную метку (``string-to-unix-timestamp'' ). Если заданная дата выходит за пределы допустимого диапазона, то функция UNIX_TIMESTAMP() возвратит 0, но следует учитывать, что выполняется только базовая проверка (год 1970-2037, месяц 01-12, день 01-31). Если необходимо выполнить вычитание столбцов UNIX_TIMESTAMP(), результат можно преобразовать к целым числам со знаком. See Раздел 6.3.5, «Функции приведения типов».

  • FROM_UNIXTIME(unix_timestamp)

    Возвращает представление аргумента unix_timestamp как величину в формате YYYY-MM-DD HH:MM:SS или YYYYMMDDHHMMSS, в зависимости от того, в каком контексте используется функция - в строковом или числовом:

    mysql> SELECT FROM_UNIXTIME(875996580);
            -> '1997-10-04 22:23:00'
    
    mysql> SELECT FROM_UNIXTIME(875996580) + 0;
            -> 19971004222300
    

  • FROM_UNIXTIME(unix_timestamp,format)

    Возвращает строковое представление аргумента unix_timestamp, отформатированное в соответствии со строкой format. Строка format может содержать те же определители, которые перечислены в описании для функции DATE_FORMAT():

    mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y %D %M %h:%i:%s %x');
            -> '1997 23rd December 03:43:30 1997'
    

  • SEC_TO_TIME(seconds)

    Возвращает аргумент seconds, преобразованный в часы, минуты и секунды, как величину в формате HH:MM:SS или HHMMSS, в зависимости от того, в каком контексте используется функция - в строковом или числовом:

    mysql> SELECT SEC_TO_TIME(2378);
            -> '00:39:38'
    
    mysql> SELECT SEC_TO_TIME(2378) + 0;
            -> 3938
    

  • TIME_TO_SEC(time)

    Возвращает аргумент time, преобразованный в секунды:

    mysql> SELECT TIME_TO_SEC('22:23:00');
            -> 80580
    
    mysql> SELECT TIME_TO_SEC('00:39:38');
            -> 2378
    
(0 Комментарии)
 
Администрирование Win2003
Написал Алхимик   
Среда, 17 Август 2005

Общие папки - создание настройка и использование.
Профили пользователей
Сценарий и домашняя папка
Права пользователей
Аудит событий
Event Viewer
Системные политики


--------------------------------------------------------------------------------

Сервисы
Server Manager. Управление общими ресурсами.
Server Manager. Часть II
Server Manager. Часть III.
Служба репликации
Диспетчер задач Task Manager
Windows NT Diagnostics
Стратегия планирования глобальных и локальных групп в многодоменных сетях. Доверительные отношения.
Решение задач администрирования на примере конкретной компьютерной сети.
Немного о настройках системных устройств ...

Общие папки - создание настройка и использование.

Как Вы понимаете, основное предназначение компьютерной сети - совместное использование общих ресурсов - файлов, папок, принтеров и т.д. Давайте рассмотрим, как в Windows NT создать и настроить общий доступ пользователей к папке. В первую очередь хочется отметить, что в Windows NT (как и в Windows 9x) нельзя предоставить в общий доступ по сети ФАЙЛ, это можно проделать только с ПАПКОЙ.

Как предоставить папку в общий доступ по сети? Для этого необходимо щелкнуть правой кнопкой мыши на некоторой папке и в выпадающем меню выбрать "Sharing...".

Как видите, по умолчанию наша папка UserFldr не предоставлена в общий доступ: Radiobox установлен в положение "Not Shared". Соответственно, для того, чтобы предоставить папку в общий доступ необходимо установить Radiobox в положение "Shared As" (предоставить как...). После того, как Вы это сделаете, Вам необходимо сделать еще несколько настроек, которые мы сейчас рассмотрим.

Первое поле, которое Вам необходимо заполнить - "Share Name". Это то имя, под которым эта папка будет доступна по сети. По умолчанию имя создаваемого общего ресурса совпадает с именем папки: UserFldr. Однако Вы можете указать здесь ПРОИЗВОЛЬНОЕ имя - имя общего ресурса не обязательно должно совпадать с именем папки на жестком диске. Как видите, нашу папку UserFldr мы предоставляем в общий доступ с именем NetFolder:

Следующее поле - "Comment". Здесь Вы можете указать желаемый комментарий к данному ресурсу, данное поле, как Вы понимаете, заполнять не обязательно.

Затем можно настроить "User Limit". Смысл этой настройки в ограничении количества пользователей, которым ОДНОВРЕМЕННО может быть предоставлена данная папка. По умолчанию настроено "Maximum Allowed" - позволять любому числу пользователей одновременно пользоваться данным ресурсом. Однако если Вы беспокоитесь о производительности Вашего сервера, то можете ограничить количество пользователей, которым одновременно можно обратиться к данной папке. Такую настройку необходимо делать только в случае, если Ваш сервер слишком не производительный или Вы опасаетесь ОЧЕНЬ большого количества одновременно работающих с ресурсом пользователей.

Ну и последняя настройка - "Permission". Как Вы понимаете, данная настройка позволяет настроить разрешения для данного ресурса аналогично настройкам разрешений NTFS. Обращаю Ваше внимание на то, что при настройке локальной безопасности, настройки неразрывно связано с файловой системой NTFS и для FAT локальную безопасность настроить нельзя. Настройки сетевых разрешений не связаны с файловой системой, за них отвечает операционная система (а не NTFS) и настраивать сетевые разрешения можно независимо от того, на какой файловой системе находится настраиваемая папка. Настроенные сетевые разрешения не будут иметь никакого значения при локальном доступа к папке на жестком диске, однако если Вы будете получать доступ к общему ресурсу по сети, то эти разрешения будет применены. Давайте рассмотрим, как настроить сетевые разрешения на создаваемый объект - это очень похоже на уже знакомый Вам процесс настройки разрешений NTFS. Нажимаем кнопку "Permission":

Как видите, по умолчанию на вновь создаваемую папку имеется следующее разрешение: Everyone - Full Control. Т.е., если Вы не будете специально настраивать разрешения для общей папки, то к этой папке будет иметь доступ все пользователи. Давайте добавим запись в этот ACL - разрешим доступ к ресурсу только пользователю Tester. Нажимаем кнопку "Add..."

Вы видите уже знакомое окно, в котором можете добавить в ACL некоторую группу пользователей. При желании добавить не группу, а пользователя необходимо нажать кнопку "Show Users". Тогда кроме групп в списке появятся и пользователи:

Выбираем пользователя Tester и перед тем как добавить его в ACL нам необходимо указать, какой же доступ мы хотим дать пользователю - нужно настроить поле "Type of Access". Какие есть типы доступа? Посмотрим -

Почему на общую папку можно настроить только такие типы доступа, почему нет настроек List, Add и т.д. Все очень просто: в общий доступ можно предоставлять ТОЛЬКО папки, настроек для файлов не предусмотрено, следовательно все настройки, которые отличаются правами на файлы просто теряются. Может создаться впечатление, что это не позволяет гибко настраивать права на общие папки, но это не так. Дело в том, что права на общие папки можно комбинировать с разрешениями NTFS, в прочем об этом чуть позже.

Давайте дадим пользователю Tester право Change на данную общую папку, для этого в поле Type Access выберем Change, нажмем кнопку Add, добавив пользователя в ACL, и подтвердим свое решение, нажав OK. После этого Вы увидите следующее:

Вроде все? Будет ли только лишь пользователь Tester иметь право доступа к этой общей папке? НЕТ! ВСЕ пользователи (в том числе и Tester) будут иметь право Full Control на данную общую папку! Почему?

Если подумать, то нет ничего удивительного в том, что все пользователи будут иметь Full Control на данную общую папку: ведь в ACL есть запись Everyone - Full Control! Следовательно, ее необходимо удалить! Почему же пользователь Tester тоже будет иметь Full Control на данный общий ресурс? Дело все в том, что на общие ресурсы (как и на ресурсы NTFS) действуют правила разрешения конфликтов. (Вспомните, что такое конфликты NTFS). Ведь пользователь Tester, как и все другие пользователи, безусловно является членом группы Everyone! Налицо конфликт прав доступа: с одной стороны пользователь Tester имеет право Change на данный ресурс, с другой стороны он является членом группы Everyone и, следовательно, должен иметь права Full Control. Правила разрешения конфликтов такое же как и в случае прав NTFS: пользователь получает самое сильное право среди его собственных прав и прав всех групп, к которым он принадлежит (Вам это правило знакомом). Есть здесь и уже известное Вам ограничение: если пользователь как член хоть одной из групп имеет право No Access, то его эффективное право всегда будет No Access. Итак, необходимо удалить группу Everyone из ACL, и только тогда лишь пользователь Tester сможет иметь доступ к данной папке.

Осталось лишь нажать OK, и сделанные Вами настройки применяться. Если Вы теперь посмотрите на Вашу папку UserFldr в проводнике, то увидите, что на иконке папки появилась "рука". Эта рука и говорит о том, что данная папка предоставлена в общий доступ.

Щелкнув теперь правой кнопкой мыши на папке UserFldr Вы снова можете получить доступ к сделанным настройкам.

Каким образом теперь пользователи компьютерной сети смогут получать доступ к данной общей папке? Для этого им необходимо воспользоваться приложением Network Neighborhood (Сетевое окружение). Щелкнем на значке Network Neighborhood на рабочем столе, на рисунке мы можем видеть в сети компьютер с именем Vmware (на Вашем компьютере Вы увидите имя Вашего компьютера, а может и другие компьютеры с Вашей сети :)).

Щелкнем на компьютере Vmware, посмотрим, какие ресурсы он предоставляет в общий доступ:

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

Так как мы вошли в домен под именем Tester, то нам разрешен доступ к общему ресурсу NetFolder, расположенному на компьютере Vmware.

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

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

Пусть для начала пользователь получает доступ к этой папке локально, т.е. с того компьютера, на котором эта папка расположена, используя, например, Explorer. В таком случае, как несложно догадаться, сетевые разрешения не имеют ни малейшего значения: эффективные права пользователя на папку определяются исключительно как права NTFS.

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

1. Узнать эффективное локальное NTFS право пользователя на папку на жестком диске по известному Вам правилу: самое сильное из всех назначенных пользователю (как ему самому, так и группам, к которым он принадлежит) прав, за исключением права No Access.

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

3. И, наконец, из двух полученных на предыдущих шагах прав следует выбрать САМОЕ СЛАБОЕ.


Сразу же рассмотрим примеры:

Пусть пользователь Tester член 3-х групп: Marlboro, Camel и Kent. Положим, что на папку Smoke, которая расположена на разделе NTFS назначены следующие разрешения:

Пусть эта папка предоставлена в общий доступ, и на доступ к этой папке по сети назначены следующие разрешения:

Каково эффективное право пользователя Tester на этот объект? Это зависит от того, как пользователь обращается к этой папке. Пусть для начала пользователь обращается к этой папке локально, т.е. с помощью, например, Explorer, сидя за той машиной, на которой расположена папка. Тогда разрешения общего доступа роли не играют, и ответ Вам уже известен: эффективное право пользователя - максимальное среди всех его прав, назначены ли они ему лично, или группам, к которым он принадлежит (за исключением No Access). Эффективное локальное право пользователя на папку Smoke, как видно из рисунка - Full Control .

Пусть теперь пользователь обращается к этой папке через сеть (так как мы предоставили ее в общий доступ). В таком случае его эффективное право необходимо определить по приведенному выше алгоритму: эффективное право NTFS - Full Control, мы это только что выяснили. Эффективное право среди сетевых прав снова таки определяется как максимальное (исключение - No Access) - Change. Тогда эффективное право, которое получит пользователь Tester, попытавшись получить доступ к общей папке Smoke по сети - Change , как минимальное среди эффективного права NTFS и эффективного права среди предоставленных в окне Sharing.

Еще один пример: пусть ACL на NTFS-папку не изменился,

а в окне настройки сетевых прав мы внесли изменения:

Каковы теперь эффективные права пользователя Tester на папку Smoke?

Если пользователь Tester обратиться к папке локально, то он получит те права, которые определяются его NTFS правами на папку, т.е. его эффективным правом по прежнему будет Full Control .

Если же пользователь Tester вздумает обратиться к папке по сети, то он получит, следуя описанным нами правилам отказ - его право на доступ к общей папке определяется тем, что как член группы Marlboro он имеет право No Access, и следовательно не имеет никаких прав на общую папку Smoke при доступе по сети, его право на доступ по сети No Access

И последний пример: пусть разрешения NTFS на папку Smoke выглядят следующим образом:

а разрешения на общий ресурс -

Тогда, при попытке локального доступа пользователю Tester будет отказано в каком либо доступа к папке Smoke, так как являясь членом группы Marlboro пользователь имеет No Access на локальную папку. Разумеется, его право на общий ресурс при доступе по сети тоже будет No Access . (См. правило).

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

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

Давайте рассмотрим еще один вопрос, касающийся общих папок. Мы говорили, что к общим объектам можно обратиться через сетевое окружение, так же, как к локальным папкам и файлам можно обратиться, используя проводник. Но Вы можете обращаться к файлам и папкам на жестком диске не только с помощью проводника - к каждому файлу можно обратиться по его полному имени, например: D:\Smoke\Filter\block.txt. Можно ли к общим сетевым ресурсам обращаться по аналогичным именам, есть ли у них вообще подобные имена. Конечно, есть. Такие имена сетевых ресурсов принято называть NetBIOS именами (Вы когда ни будь об этом узнаете гораздо подробнее, в курсе, посвященном сетям). Как устроено NetBIOS имя? Его синтаксис таков: \\Comp_name\NetResource , где Comp_name - имя компьютера, предоставляющего общий ресурс, NetResource - имя общего ресурса. Такая запись фактически обозначает, что на компьютере Comp_name в общий доступ с именем NetResource предоставлен некий объект (например, папка). Вспомните, в начале этой главы мы предоставляли папку D:\UserFldr в общий доступ на компьютере Vmware. Сетевое имя данного ресурса было - \\Vmware\NetFolder, Вы можете видеть это в заголовке одного из рассмотренных нами Выше окон:

Соответственно, файл block.txt, который мог бы лежать в папке D:\UserFldr имеет локальное имя D:\UserFldr\block.txt, а его сетевое имя - \\Vmware\NetFolder\block.txt

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

Права пользователей

Давайте теперь рассмотрим еще один важнейший пункт в меню программы User Manager for Domain. Мы с Вами полностью рассмотрели меню User этой программы и начали в прошлый раз рассматривать меню Policies, остановившись на настройках политик относительно учетных записей. Сегодня мы рассмотрим с Вами следующий пункт в меню Policies, а именно User Right (Права пользователей). Настройки пользовательских прав крайне важны, обратите на них особое внимание: нередко возникающая проблема может быть решена присвоением пользователю некоторого права, без которого он не может выполнить какое либо действие.

Итак, запускаем User Manager for Domain, выбираем меню Policies, пункт User Right.

Первое право - Access this computer from network - Доступ к этому компьютеру по сети.

Те, кому предоставлено это право, могут обращаться к данному компьютеру за его общими ресурсами, при этом, разумеется, получить право доступа к конкретному ресурсу могут только те пользователи, которые внесены в ACL данного ресурса. Фактически, это пользовательское право должно быть предоставлено всем, и лишь имея это право, пользователь может обращаться к общему ресурсу, тогда уже в силу вступают разрешения пользователя на некоторый ресурс. Как видите право Access this computer from network предоставлено группе Everyone, т.е. всем пользователям.

Право Add Workstation to domain - право добавлять новые компьютеры к домену.

Право Back up files and directories (Создавать резервные копии файлов и папок) позволяет пользователям получать доступ (с целью архивирования при помощи встроенной в Windows NT программы ntbackup) даже к тем файлам и папкам, на которые обычно у пользователя нет прав.

Право Change System Time, как ясно из названия, описывает те группы пользователей, которые имеют право изменять системное время на компьютере.  Лишь Administrators и Server Operators имеют право изменять системное время.

Право Force Shutdown from a remote system означает право удаленно (с другого компьютера) выключать данный сервер. В Windows NT есть специальная утилита, которая позволяет удаленно выключить или перезагрузить Server, но толь лишь члены групп Administrators и Server Operators имеют на это право.

Следующее право является одним из наиболее важнейших. Право Log on locally означает право входа в домен с ЭТОГО сервера. Когда мы говорили о том, откуда разрешен пользователю вход в домен, мы говорили, что это возможно сделать с любой машины. Мы несколько погрешили против истины - с любой, кроме контроллера домена! Действительно, что, скажите, может делать рядовой пользователь за клавиатурой контроллера домена?! Только имеющий право Log On Locally имеет право входит в домен локально, т.е. с этой машины.

Следующее право - Manage Auditing and security log - управление наблюдением за системой (аудитом) и управление журналом безопасности. Мы в следующий раз рассмотрим с Вами мощнейшее средство для наблюдение за системой, для отслеживания различных событий, для поиска злоумышленников, стирающих файлы и подбирающих пароли :) - Audit. В Windows NT имеется возможность настраивать и вести подробнейшие журналы, описывающие происходящие в системе события - и все это могут делать только члены группы Administrators!

Вот мы разобрались с Вами с пользовательскими правами. Разумеется, я не предлагаю Вам запомнить в точности, какие права предоставлены каким группам - однако Вам необходимо запомнить важнейшие права, такие как Log On Locally, кроме того необходимо ориентироваться в тех инструментах, которыми Вы пользуетесь - если Вы помните, что существуют такие "пользовательские право", но совершенно не помните, какие настройки там можно сделать, то грош цена такому знанию!

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

Аудит событий

Запустите программу User Manager for Domain и выберите пункт меню Policies - первые два пункта политик мы уже разобрали, это политики относительно учетных записей и политики относительно пользовательских прав.

Сегодня мы рассмотрим с Вами политики относительно Аудита - ведения журнала наблюдений за действиями пользователя. Итак, выбираем Policies\Audit. Вы увидите следующее окно:

Мы с Вами видим список тех событий, за которыми можно наблюдать. Давайте рассмотрим подробнее. Если Вы установите галочки на приведенной картинке, то тем самым Вы включите Аудит того или иного события, а точнее набора событий. Обратите внимание, что наборы событий, подлежащие аудиту, перечислены в строках, при чем для каждой строки можно независимо установить две галочки: галочка Success означает, что все удачные события в выбранной категории будут протоколироваться, а галочка Failure означает, что все неудачные попытки сделать те или иные действия будут протоколироваться.

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

Logon and Logoff . Если Вы включите аудит для этой категории, то все входы пользователей в систему будут подлежать процедуре протоколирования. Установите галочку Success напротив этой категории событий, и все удачные попытки входа в систему найдут свое отражение в соответствующем системном журнале, установите галочку Failure для этой категории, и все неудачные попытки входа будут протоколироваться. Если Вы установите обе галочки сразу, то, естественно, и удачные и неудачные попытки входа в домен будут записаны в журнале безопасности.

File and Object Access . Включив аудит для этой категории событий Вы сможете получать в системном журнале безопасности информацию о том, кто когда и к каким файлам и папкам обращался! Т.е., если Вам интересно знать, кто пользуется некоторой папкой, то включив аудит, Вы без проблем получите подобную информацию. Единственное, что необходимо добавить: имеет ли смысл слежение за ВСЕМИ файлами и папками сразу? Вряд ли - представьте, что Вас интересует информация о том, кто работал с некоторой папкой, Вы включаете аудит для этой категории, и информация ОБО ВСЕХ папках начинает немедленно наполнять Ваш системный журнал!!! Во-первых, журнал очень быстро переполниться, во-вторых удобно ли Вам будет выуживать из огромного количества ненужных отчетов обо всех папках информацию о той, которая Вас интересует? Нетрудно догадаться, что такой метод ведения журнала по этой категории неприемлем! Поэтому само включение аудита для этой категории не приводит к появлению в журнале каких-то отчетов. После того, как Вы включили аудит этой категории, Вам необходимо вручную указать для каждой папки или файла, что Вы хотите именно по ним собирать информацию аудита. Как это сделать?

Давайте выберем NTFS объект (а только для NTFS файлов и папок возможен аудит), и вызовем его Properties. Перейдите на известную Вам страничку Security.

Вы уже знакомы с кнопкой Permission и кнопкой Ownership, давайте нажмем кнопку Audit.

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

Далее, для каждого пользователя (группы) необходимо указать, за какими действиями Вы будете следить. Как видите, можно отдельно следить за успешными и неуспешными попытками что либо сделать. Администратор может следить всеми шестью элементарными разрешениями пользователя на объект: Read, Write, Execute, Delete, Change Permission и Take Ownership.

Таким образом в силах администратора следить за избранными файлами и папками. В каждой папке администратор может следить за всеми или избранными пользователями. О каждом пользователе администратор может получать информацию обо всех или о избранных действиях относительно данного объекта NTFS - как видите аудит события File and Object Access - крайне мощное средство.

Use of User Rights . Включив аудит этой категории событий, Вы сможете получать в системном журнале отчет о каждом факте, когда пользователю пришлось воспользоваться своими пользовательскими правами (User Right), которые мы изучали на прошлом уроке, например: установка драйверов, вход на контроллер домена, изменение системного времени etc.

User and Group Management . Если Вы включите аудит для этого класса событий, то Вы будете получать в системном журнале отчеты обо всех изменениях в настройках пользователей и групп, сделанных в Вашем домене. Добавление нового пользователя или группы, модификация существующих - все это будет Вами легко контролироваться!

Security Policies Changes . Включив аудит для этого семейства событий, Вы сможете отслеживать изменения в политиках безопасности, т.е. все те действия, которые можно делать в меню Policies утилиты User Manager for Domain. Речь идет о слежении за изменениями в настройках политик относительно учетных записей, политик относительно пользовательских прав, политик относительно аудита (то, что мы сейчас изучаем) и политик относительно доверительных отношений (которые мы еще не изучали, однако позже будем). Удачная или неудачная попытка изменить что-то из перечисленных выше настроек будет сопровождаться записью в журнале безопасности.

Restart, Shutdown, and System . Включите аудит этой категории и Вы будете получать в журнале безопасности отчеты о перезагрузках компьютера и выключениях питания.

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

Event Viewer

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

Программа, позволяющее делать это называется Event Viewer - просмотрщик событий. Давайте рассмотрим, как пользоваться этой программой. Запускается она из Administrative Tools - оттуда же, откуда и большинство других утилит администрирования Windows NT.

Программа Event Viewer позволяет просматривать три журнала, которые ведет Windows NT: системный журнал (System Log), журнал безопасности (Security Log, это и есть журнал аудита) и журнал приложений (Application Log).

В системном журнале Вы всегда сможете найти отчеты обо всех проблемах Windows NT. Например, Вы установили драйвера какого ни будь адаптера, а он не работает. Наверняка в System Log имеется информация о том, что некоторое устройство не работает и причины этого. В общем, все проблемы с системой находят свое отражение в системном журнале; просмотр System Log - одно из первых действий, которые Вам имеет смысл совершить при поиске неисправностей и выяснении причин их появления.

Что находится в Security Log Вы уже знаете - отчет о тех событиях, для которых Вы указали вести журнал аудита.

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

Что Вы видите, когда запускаете Event Viewer? Вы сразу увидите содержимое одного из журналов (того, на котором Вы остановились в прошлый запуск программы).

Как видите, при запуске программы Event Viewer сразу открылся системный журнал.

Рассмотрим меню Log: Первые три строки меню Log позволяют выбрать тот журнал, с которым Вы желаете работать. Например, можно выбрать журнал безопасности (отчет об аудите): А можно Выбрать просмотр журнала приложений:

С помощью следующих двух пунктов меню (Open и Save As...) Вы можете сохранить журнал в некотором файле на жестком диске, чтобы затем открыть этот файл журнала с помощью программы Event Viewer для просмотра и изучения.

Следующий пункт меню - Clear All Event. С его помощью Вы можете очистить текущий журнал. Перед очисткой Вам будет предложено произвести сохранение журнала в файл.

Давайте рассмотрим Log Setting - настройки журналов. Выберем этот пункт в меню - получим следующее окно:

Для каждого из трех журналов (для какого именно Вы делаете настройки, указывается вверху окна) Вы можете настроить:

* максимальный размер файла журнала (по умолчанию - 512Кбайт)

* и что делать, если журнал переполнен. При этом возможны варианты:

1. Перезаписывать старые события при необходимости. Администратор не будет информироваться о необходимости чистить журнал, системна сама будет удалять старые события из журнала для того, чтобы дописывать новые.

2. Перезаписывать события старше, чем семидневной давности. Соответственно, если в день возникает не СЛИШКОМ много событий, то за 7 дней их не накопиться 512 Кбайт и, следовательно, место под новые записи будет освобождено.

3. Никогда не удалять из данного журнала события. Это должно делаться только автоматически.

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

Как видно из наличия пункта Select Computer, программа Event Viewer позволяет просматривать журналы на удаленном компьютере.

Теперь давайте посмотрим, в каком виде Event Log предоставляет пользователю информацию о некотором событии. Щелкнем на некотором событии - Вы увидите его развернутое описание:

Здесь Вы найдете описание какого числа, в какое время произошло событие; на каком компьютере оно произошло, какой пользователь при этом работал; увидите описание данного события. Все это может помочь Вам решить те или иные проблемы системы если это сообщение System Log, или узнать о проблемах приложения, если речь идет о Application Log. В любом случае из записи в логе вполне может быть понятна суть проблемы (например: устройство такое-то не работает), а возможно, что запись в логе Вам совершенно не ясна - ну что ж, мы еще не закончили учиться :).

Event Viewer содержит достаточно удобный инструмент для поиска событий в логе: выберите Find в меню View:

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

Кроме того, Event Viewer может показывать Вам в своих окнах не все события, а только те, которые Вы желаете видеть - для этого Вы можете настроит так называемые фильтры:

Вы можете указать, за какой период информация Вас интересует, какого типа сообщения Вас интересуют, какой категории и т.д.

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

Системные политики

Мы с Вами уже достаточно много изучили в плане настройки пользователей. Вы знаете как создать пользователя, настроить ему членство в группах, настроить пользователю профиль, сценарий входа в домен, домашнюю папку, часы входа в систему, машины, с которых пользователь может входить в домен, Вы знаете как дать пользователю право входа в домен с контроллера домена, как дать право выключать питание и перезагружать компьютер, изменять время и т.д. Казалось бы - все? НЕТ! Еще далеко не все! Есть еще куча проблем, которые возникают при работе пользователей в домене! Например: пользователи любят совать свои руки куда не следует!!! Самое безобидное - например, пользователь установил на своем рабочем столе красивые обои. Потом, правда, пользователь жалуется Вам, что его машина стала медленно работать. Вы разумеется, говорите пользователю что машина его работает нормально (делать нечего администратору, как реагировать на утверждение пользователя "моя машина работает медленно" всесторонним тестированием компьютера!!!:)). В итого Вам пользователь устраивает скандал начальнику, говоря что Вы не хотите починить компьютер, который плохо работает... А проблема в том, что Ваш нерадивый пользователь установил на рабочий стол обои, не задумавшись. Его не сильно волнует, что в качестве обоев он выбрал .TIFF файл огромного размера - ну какая пользователю разница, будет он разбираться в таких мелочах - красиво же!!! Даже если Вы, чертыхаясь, сядете тестировать пользовательскую машину, очевидно, что проверить размер обоев - не первое, что Вы сделаете, однако обои большого размера могут сильно замедлить работу компьютера с малым количеством памяти. Если Вас обяжут "найти неисправность" на этом компьютере, то вполне возможно, Вы просто переставите Windows 9x и все станет на свои места, пользователь гордо Вам заявит, что теперь все в порядке, что не зря он Вам жаловался, компьютер теперь действительно работает быстро и т.д. А через неделю он снова поставит какие-то идиотские обои, после чего устроит Вам очередной скандал, при чем будет кричать, что ему вероятно подсунули плохой компьютер, раз он так часто "ломается". Если в Вашем попечении три десятка таких вот пользователей, то работа превращается в ад!!! Все это не страшные сказки - эта самая что ни на есть реальность!!! Как с этим бороться?

Вешать пользователей, которые стремятся превратить свой рабочий стол в новогоднюю открытку? Можно, очень действенный метод. Но Windows NT предлагает несколько более человечное решение - запретить пользователю те или иные действия. Причем спектр тех деяний, которые Вы можете запретить пользователю очень богат - фактически Вы, при желании, можете буквально связать пользователя по рукам и ногам, ЗАПРЕТИВ ему уродовать свой компьютер! В Windows NT это делается с помощью введения специальных правил, называемых системными политиками. Эти политики устанавливаются с помощью специальной программы System Policy Editor - редактор системных политик. К изучению этой программы мы с Вами сейчас и переходим.

Итак, давайте запустим программу System Policy Editor - Вы найдете ее в Administrative Tools. Что мы видим: поначалу окно программы совершенно пустое! Давайте посмотрим пункт меню File:

Программа System Policy Editor может работать в двух режимах - режиме Политики и режиме Реестра. Сейчас мы поговорим подробнее о режимах работы программы, а пока давайте подумаем вот о чем: где программа System Policy Editor должна делать изменения, (какие конкретно изменения - мы рассмотрим позже), чтобы, например, ограничивать пользователя в том или ином действии? Мы уже неоднократно говорили, что ВСЕ настройки Windows NT сохраняются в Registry (Реестре) - единой базе данных всех настроек Windows NT. Соответственно, все настройки рассматриваемая нами программа должна внести непосредственно в реестр! Соответственно, работа программы Policy Editor в режиме Реестра означает, что все изменения будут записаны непосредственно в реестр данной конкретной машины и для данного текущего пользователя!

Итак, если Вы хотите настроить некоторого пользователя, указав ему запрещения системной политикой, то Вы можете зайти на компьютер под именем этого пользователя, вызвать System Policy Editor и выбрав в меню пункт Open Registry, сделать необходимые настройки (какие настройки - чуть позже). Но эти настройки сохраняются ТОЛЬКО для данного пользователя на данной машине и такие настройки нельзя применить к пользователю в домене. Следовательно, если Вас не устраивает настраивать политики для КАЖДОГО пользователя на КАЖДОЙ машине, то Вы должны отказаться от режима Реестра и работать в режиме Политики, т.е. в меню Файл выбрать New Policy.

При этом все настройки которые Вы впредь сделаете не будут сохранены в реестре данной машины для данного пользователя - Вы можете сохранить все эти настройки в файле. Обратите внимание, что когда Вы работаете в режиме политики, Вы создаете ЕДИНСТВЕННЫЙ файл политики для домена, в эту политику Вы включаете всех желаемых пользователей и группы. Что затем сделать с полученной политикой? Как назвать файл политики, куда его разместить? У создаваемого Вами файла политики должно быть строго определенное имя - ntconfig.pol. Этот файл должен лежать в домене в строго определенном месте (вам уже знакомом) - в папках \NETLOGON каждого контроллера домена, там же где и пользовательские сценарии. Важно заметить: политика, которую Вы таким образом создали, будет действовать только для пользователей с Windows NT. Можно ли назначить политику для пользователей Windows 9x? Да, можно! Но для этого не подойдет рассматриваемый нами System Policy Editor, так как файлы которые он создает не понимаются Windows 9x. Однако для системы Windows 9x существует точно такой же System Policy Editor, только он генерирует .pol файлы, которые понимает эта операционная система. Эту программу Вам, соответственно, придется найти в комплекте Windows 9x. Файл, который предназначен для клиентов Windows 9x должен лежать в домене в том же месте (d \NETLOGON каждого контроллера домена), и такой файл должен называться config.pol.

Теперь мы с Вами можем переходить к рассмотрению настроек, которые можно сделать для пользователя. Этих настроек очень много, детально рассмотреть каждую настройку весьма не просто, но мы попробуем. Итак, первая секция настроек для пользователя - Control Panel, в ней единственная подсекция Desktop, и в ней единственная настройка Restrict Display - ограничить пользователя в настройках Экрана.

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

Соответственно, первая галочка - Deny Access to Display Icon полностью запрещает пользователю настраивать свойства экрана, щелкая на рабочем столе правой кнопкой и вызывая свойства. Если пользователю установлена эта галочка, то при попытке настроить свойства Экрана пользователь получит:

Следующие четыре галочки соответственно запрещают страницы в свойствах дисплея - страницу фона, страницу хранителя экрана, страницу цветов, страницу настроек. На приведенном ниже примере отключены страницы Setting и Screen Saver, а страницы Background и Appearance остались в распоряжении пользователя:

Идем далее - секция Desktop. В ней всего две настройки:

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

Следующая секция настроек - Shell - оболочка. В ней всего одна подсекция - Restriction - ограничения. Давайте рассмотрим, какие же ограничения здесь можно установить:

Настройка первая - Remove Run command from Start Menu. Если Вы примените эту опцию пользователю, то его меню Start ... будет лишено пункта Run, как показано на рисунке:

Далее: Remove folders from Setting on Start Menu - Это означает, что из Start\Setting исчезнут папки Control Panel и Printers, а останутся только настройки панели задач. Это иллюстрирует рисунок:

С помощью следующего пункта можно, напротив, удалить из меню Start\Setting пункт о настройках панели задач:

Следующая настройка - скрыть все диски в приложении My Computer. Если Вы примените это пользователю, то его My Computer будет выглядеть так:

С помощью следующей настройки можно убрать с рабочего стола пользователя программу Network Neighborhood - Сетевое окружение.

Далее - No Entire Network in Network Neighborhood - не показывать значок "Вся сеть" в сетевом окружении. Таким образом пользователь сможет видеть только компьютеры своего домена:

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

Настройка Hide all items on Desktop означает, что пользователь при старте не получит на рабочем столе ни одной иконки:

Следующая команда удаляет пункт Завершение работы из меню Start. Если Вы примените пользователю это ограничение, то его меню Start будет выглядеть так:

И, наконец, последняя настройка в этой секции - Don't save setting on exit не позволяет пользователю сохранить свои настройки при выходе - когда пользователь войдет в систему следующий раз, он получит исходные установки.

Следующая секция - System, в ней единственная подсекция Restriction, а в ней всего две настройки:

Первая из них - Disable Registry editing tools, запрещает пользователю пользоваться программой для ручного редактирования реестра Windows NT. В Windows NT есть две программы для редактирования реестра вручную - regedit.exe и regedit32.exe. Если Вы установите эту галочку, то пользователь при попытке запускать эти программы получит отказ.

Вторая настройка в этой секции - Run Only allowed Windows application. Это очень мощная и очень опасная настройка. Применив ее к пользователю Вы можете позволить ему запускать только разрешенные программы, список которых Вы составляете, нажав кнопку Show (см. рисунок выше). Никакие другие программы, кроме перечисленных в списке пользователь запускать не сможет - поэтому прежде чем применить к пользователю эту настройку, следует хорошо подумать.

Следующая секция настроек: Custom NT Shell, первая подсекция: Custom User Interface, единственная настройка - Custom Shell означает, что пользователю можно настроить другую программу-оболочку, вместо принятого по умолчанию проводника. С этой настройкой следует быть аккуратным. Вторая подсекция - Custom Folders. Здесь следующие настройки:

Каждая из перечисленных настроек описывает тот факт, что пользователь имеет свою собственную уникальную папку для: Start\Programs, для иконок Рабочего Стола и пр. Обратите внимание, на какие папки указывают настройки в этой секции, например, настройка Custom Program Folder. Напомню, что папка с ярлыками меню Start\Program находится в профиле пользователя! Посмотрите, на что по умолчанию указывает эта настройка: %userprofile%\Start Menu\Program. Здесь Вы сталкиваетесь с понятием перемененной окружения: выражение %userprofile% используется для того, чтобы ЗАМЕНИТЬ собой соответствующую папку \winnt\profile\папка_с_именем_пользователя. В Windows NT Вы встретитесь и с другими переменными окружения, мы поговорим о них позже.

Последняя подсекция в этой секции - Restriction. В этой части настроек Вы можете отключить пользователю еще некоторые возможности: правую кнопку мыши в панели задач и в Explorer, удалить из проводника пункты меню Tools\Goto, File, View\Option и т.д.

В секции Windows NT System Вы можете отключить возможности, которые появляются при нажатии комбинации клавиш Ctrl+Alt+Del. В ваше сегодняшнее домашнее задание входит рассмотреть, какие это возможности появляются у пользователя при нажатии этой комбинации клавиш, и, соответственно, какие запрещения можно сделать в этой секции Policy Editor.

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

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

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

Сервисы

Что такое сервисы? Это программное обеспечение, запускаемое на компьютере под управлением Windows NT НЕЗАВИСИМО от логина пользователя. Вы спросите, зачем на компьютере могут быть запущены программы, если не вошел пользователь? Действительно, такое программы как PhotoShop или C++ Builder не представляют никакой особой ценности, будучи запущены на компьютере без пользователя. Но мы уже говорили о том, что компьютер под управлением Windows NT вполне может выполнять свои функции в сети (как контроллер домена и пр.) и в том случае, если работает без вошедшего пользователя. Более того, логин пользователя для компьютера не желателен - пользователь своими приложениями занимает ценные ресурсы компьютера. Вот, например, Ваш компьютер предоставляет свои папки в общий доступ - какое программное обеспечение за это отвечает? Оно запускается только тогда, когда на компьютер входит пользователь, а в остальное время не работает? Смешно - разумеется это программное обеспечение работает всегда! Или например Ваш Windows NT выполняет роль WEB-сервера. Должна ли зависеть работа WEB-сервера от того, вошел ли пользователь на компьютер? Программное обеспечение WEB-сервер должно работать СОВЕРШЕННО НЕ ЗАВИСИМО от того, вошел ли пользователь в систему!!! Такое программное обеспечение в Windows NT, как уже говорилось выше, относится к СЕРВИСАМ.

Иногда вместо слова "СЕРВИСЫ" по-русски говорят "СЛУЖБЫ".

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

Для управления сервисами найдите в панели управления приложение Services. Давайте запустим это приложение - что мы видим:

Перед нами список сервисов этого компьютера. Каждая строка в приведенном выше окне соответствует одному сервису. Приведу примеры некоторых сервисов:

* Сервис Server отвечает за то, что ресурсы этого компьютера могут быть предоставлены по сети. Если Вы остановите этот сервис, то данный компьютер не сможет предоставлять свои ресурсы в общее пользование. Остановив этот сервис на контроллере домена Вы нарушите правильную работу домена, так ему необходимо предоставлять общий ресурс \NETLOGON для пользователей, входящих в домен.

* Сервис Workstation отвечает за противоположное - за то, что этот компьютер может получать доступ к общим папкам в сети.

* Сервис Event Log отвечает за сбор информации в журналы, рассмотренные нами на предыдущем уроке.

* Сервис Messenger отвечает за возможность обмениваться короткими сообщениями между компьютерами - что вроде простейшей почты :).

* Сервис Directory Replicator отвечает за репликацию в домене. Мы подробно остановимся на этом сервисе позже.

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

Давайте рассмотрим, как управлять сервисами. Обратите внимание - каждый сервис имеет Status, которые может принимать значение "Started". Очевидно, если статус сервиса Started, то сервис запущен в данный момент, если же статус сервиса не установлен в это значение, то программное обеспечение сервиса не активно в данный момент.

Статус сервиса можно изменить: для этого в правой части вышеприведенного окна есть кнопки: Start, Stop, Pause и Continue. Соответственно кнопка Start запускает сервис, кнопка Stop останавливает, кнопка Pause - приостанавливает, а по кнопке Continue сервис продолжает выполняться. (Пауза возможна не для любого сервиса).

Очевидно, что запускать сервисы кнопкой Start не типично - сервисы должны запускаться автоматически при запуске компьютера. Для настройки поведения сервиса при запуске есть кнопка StartUp. Давайте выберем какой ни будь сервис и нажмем ее: (я выбрал сервис Server)

Первая настройка в этом окне говорит о том, как ведет себя сервис при старте компьютера:

* Automatic - сервис стартует автоматически вместе с операционной системой (Если по причине ошибки этого не произошло, то отчет об этом Вы найдете в System Log).

* Manual - сервис не стартует автоматически, но может быть запущен потом с помощью кнопки Start вручную при необходимости.

* Disable - сервис не запускается автоматически и не может быть запущен по кнопке Start.

Вторая настройка - Log On As - означает, под каким именем сервис будет запущен. Обратите внимание, когда Вы, войдя в систему, запускаете какую либо программу, Вы фактически запускаете ее под своим именем! Но сервис запускается до входа пользователей в систему, следовательно должен запускаться под КАКИМ-ТО именем - под каким? Об этом - данная настройка:

Как видно из рисунка, по умолчанию любой сервис автоматически стартует под System Account. Большинство сервисов работают именно под этой учетной записью, но некоторые сервисы (мы коснемся таких) для нормальной работы требуют создания специальной учетной записи, под именем которой будут работать. Соответственно, эта учетная запись (и соответствующий пароль) должна быть указана в настройках данного сервиса. Фактически сервис осуществит вход в систему под тем именем, которое Вы укажете здесь, при этом сервис воспользуется указанным Вами паролем. Очевидно, что учетные записи, которые Вы создаете для сервиса не должны истекать, кроме того, они должны иметь настройку Password Never Expire.

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

Обратите внимание на следующий факт: в рассматриваемом нами приложении Вы НЕ МОЖЕТЕ добавлять новые сервисы. Приложение Services панели управления может оперировать только с теми сервисами, которые установлены на данном компьютере. Установить же новый сервис следует специально предусмотренными для него средствами. Например: для установки сервиса IIS (Internet Information Server, WEB-сервер, разработанный Microsoft для Windows NT) можно просто запустить ярлык, который после инсталляции создается на рабочем столе, для установки сетевых сервисов необходимо воспользоваться приложением Network панели управления и т.д. Т.е., сервисы устанавливаются тем способом, который для каждого из них индивидуально предусмотрен.

Так же следует заметить, что приложение Services может работать с сервисами только данного компьютера, с сервисами других компьютеров следует работать иначе, как - узнаете позже.

Server Manager. Управление общими ресурсами.

Сегодня мы начнем с Вами рассматривать важнейшую утилиту администрирования домена Windows NT, программу Server Manager. С помощью этой программы осуществляется управлением доменом в целом, а так же отдельными серверами домена. Ниже мы рассмотрим функциональные возможности этой программы.

Программа Server Manager запускается из известной Вам программной группы Administrative Tools: Когда программа запускается, Вы видите на экране примерно слдующее:

Окно программы содержит список компьютеров домена (на рисунке в списке пока один единственный компьютер). Напротив каждого компьютера отмечена его роль в домене, изображенный на рисунке компьютер - Primary Domain Controller. Если бы в домене в данный момент были бы другие компьютеры, то мы бы видели их в списке. Практически все действия, которые делаются с помощью этой программы, делаются с тем компьютером, на котором наведен курсор в момент, когда Вы даете какую-то команду. Поэтому, прежде чем Вы выберете в меню Server Manager какое либо действие, убедитесь, что Вы предварительно указали с каким компьютером домена Вы сейчас работаете.

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

Давайте рассмотрим пункты меню по очереди, правда, первый пункт мы оставим напоследок. Итак, второй пункт меню - Shared Directories. С помощью этого пункта меню, как ясно из названия, можно управлять общими папками. Но мы с Вами знаем, как управлять общими ресурсами, для этого необходимо для той папки, которую необходимо предоставить в общий доступ, выбрать во всплывающем меню Sharing. Спрашивается, зачем нужен еще один инструмент управления общими папками?

Дело в том, что с помощью Server Manager можно получить список всех общих папок компьютера в одном окне и управлять ими оттуда - это достаточно удобно, особенно когда Вы не знаете, какая именно папка на жестком диске предоставлена в общий доступ с некотором именем. Но главное достоинство Server Manager в деле управления общими папками состоит даже не этом. Вы знаете как управлять общими папками СВОЕГО компьютера, Server Manager позволяет Вам централизовано управлять общими папками ЛЮБОГО компьютера домена! Просто перед тем, как выбрать в меню пункт Shared Directories, укажите с общими папками какого именно компьютера Вы хотите работать!

Теперь давайте рассмотрим, какие возможности Вам представляются, если Вы выберете некоторый компьютер в списке Server Manager и выберите в меню Computer пункт Shared Directories.

В верхней части окна Вам сообщают с каким компьютером Вы сейчас работаете, а ниже Вы видите список общих ресурсов, которые предоставляет этот компьютер и, соответственно, видите, какие папки на жестком диске соответствуют общим папкам. Обратите внимание, данный компьютер - контроллер домена, и, соответственно, предоставляет в общий доступ папку \winnt\system32\repl\import\scripts под именем NETLOGON.

С помощью кнопки New Share в правой части окна Вы можете создать на выбранном компьютере новый общий ресурс.

В поле Share Name необходимо указать будущее общее имя ресурса, полное имя ресурса будет \\Compname\ShareName, где Compname - имя того компьютера, на котором Вы создаете общий ресурс. (В нашем примере на компьютере Vmware создается общая папка с именем example, соответственно, имя создаваемого ресурса будет \\Vmware\example.

В поле Path Вам необходимо указать путь к той папке, которую Вы собираетесь предоставить в общий доступ. Как Вы думаете, в этом поле следует указывать локальный путь или UNC-имя? Ответ очевиден - необходимо указать локальный путь к папке в формате х:\папка\папка\..\. Действительно, как можно указывать общее имя, если его еще нет, более того, то что мы сейчас делаем и должно привести к созданию общего ресурса и, соответственно, появлению нового общего имени. Так как Вы, перед тем как создавать общий ресурс, указали с каким компьютером работаете, то теперь необходимо просто указать какую папку данного компьютера необходимо предоставить в общий доступ, а выше Вы уже указали какое общее имя будет присвоено вновь создаваемому общему ресурсу.

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

Так же Вы можете указать User Limit, смысл этого параметра мы с Вами уже обсуждали, когда говорили о создании локальных общих ресурсов.

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

Предположим я создам указанный выше общий ресурс, тогда окно Shared Directories для компьютера Vmware будет выглядеть так:

Как видите в списке появился созданный нами общий ресурс \\Vmware\exaple, предоставляющий в общий доступ папку c:\test.

Для любого уже существующего общего ресурса Вы можете вызвать свойства, нажав кнопку Properties в правой части окна Shared Directories.

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

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

Server Manager. Часть II

Рассмотрев пункт меню Shared Directories, пойдем далее. Следующий пункт в меню Computer - Services (Сервисы). Надеюсь Вы еще помните, что такое сервисы :)? Мы говорили с Вами об управлении локальными сервисами, т.е. теми сервисами, которые выполняются непосредственно на той машине, на которой Вы открываете приложение Services Панели управления. С помощью Server Manager Вы тоже можете управлять сервисами, то не только на своей машине, а на любом компьютере домена. Разумеется Вы будете управлять сервисами того компьютера, который был выбран в окне Server Manager в тот момент, когда Вы в меню выбрали Services.

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

Идем далее - следующий пункт в меню Computer - Send Message. С помощью этой команды можно отправить текстовое сообщение ВСЕМ пользователям, подключенным к некоторому компьютеру. К какому - разумеется это определяется тем, какой компьютер был выбран в списке, когда Вы выбирали в меню Send Message. Для чего нужно отправлять такие сообщения всем подключенным пользователям? Например, Вы собираетесь отключить какой либо сервер и хотите предупредить подключенных к нему пользователей об этом.

За отправление и доставку таких сообщений отвечает сервис Messenger, который по умолчанию запущен на любом Windows NT. Если Вы отключите сервис Messenger, то компьютер не сможет передавать подобные сообщения, невозможным станет так же и прием.

Следующий пункт в меню Computer - Promote to Primary Domain Controller. Этот пункт меню позволяет делать очень полезные и важные вещи. Давайте рассмотрим такую ситуацию:

Пусть в Вашем домене вышел из строя PDC (Primary Domain Controller, главный контроллер домена). Что делать? Пользователи не могут войти в домен так как некому проверить их подлинность, пользователи, следовательно, не получат нужные им ресурсы - короче говоря работа организации парализована. Для того, чтобы так не было, для того, чтобы выход из строя PDC не означал катастрофу для сети, и существуют резервные контроллеры домена. BDC (Резервные контроллеры домена) имеют базу данных пользователей, синхронизирующуюся с базой данных главного контроллера, и BDC могут проверять подлинность пользователей при входе в домен. Т.е. применение BDC должно решить описанную выше проблему. Если PDC выйдет из строя, то резервные контроллеры домена будут по-прежнему впускать в домен пользователей (они делают это и при работающем PDC), следовательно работа домена не нарушится. Но! А кто теперь будет хранить базу данных о пользователях домена? Раньше этим занимался PDC, а затем рассылал такую базу всем резервным контроллерам домена, но кто будет теперь решать эту задачу? Если все BDC (а их может быть несколько) начнут вести свою собственную базу самостоятельно, то это будет уже не домен а бардак! Именно по это причине после выхода из строя PDC резервные контроллеры домена будут впускать пользователей в домен, но при этом изменения в базе данных пользователей домена будут запрещены! Т.е. если Вы запустите User Manager for Domain без работающего PDC в сети, то не сможете добавить нового пользователя или изменить существующего. Таким образом наличие BDC смягчает ситуацию, но не решает проблему полностью. Если, например, Вы отключили PDC для замены вышедшего из строя дисковода, то отсутствие PDC в течении нескольких минут (или даже часов) не слишком критично, и невозможность в течении ограниченного времени вносить изменения в базу данных пользователей домена можно стерпеть. А если Ваш PDC сгорел, при чем именно сгорел - с дымом и пламенем? Устраивает ли Вас домен без PDC навсегда?! НЕТ! Нужно закрепить за одним из резервных контроллеров домена роль главного, фактически превратить BDC в PDC.

И Server Manager предоставляет такую возможность. Если Вы выберете в окне компьютер, который не является BDC, то название следующего пункта меню - Promote to Primary Domain Controller (Продвинуть на роль главного контроллера домена) будет неактивным.

Однако если Вы выделите в Server Manager Резервный контроллер домена, то пункт станет активным - Вы можете превратить Ваш BDC в PDC!!!

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

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

Если же на момент выдвижения BDC на роль PDC в домене нет работающего PDC, то Вас предупредят о том, что в домене нет сейчас PDC, следовательно, нет правильной копии базы данных пользователей. Преобразование избранного Вами BDC в PDC будет возможно, но при этом базой данных домена станет база данных того BDC, который Вы выдвигаете на роль PDC. Если затем Вы вернете в домен старый PDC, то, фактически, в домене окажется два PDC, разумеется, только один из них будет выполнять свои функции. Только в этом случае, когда Вы выберете в Server Manager один из таких PDC, тот пункт меню, который мы сейчас рассматриваем превратиться в Demote to BDC (Понизить до BDC). Таким образом, Вы можете вернуть в домен тот компьютер, который раньше был PDC в качестве BDC, а затем, при необходимости повысить его до PDC, тогда на него будет перенесена текущая база данных пользователей домена, а текущий PDC станет BDC.

Операция выдвижения на роль PDC начинается с предупреждения:

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

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

Если Вы выберите рядовой сервер в окне Server Manager, то данный пункт меню не будет активным - рядовые сервера не играют никакой роли в системе безопасности домена и не принимают участия в хранении базы данных пользователей домена. Если Вы выберите в окне Server Manager BDC, то вид пункта меню будет таков: Synchronize with Primary Domain Controller (Синхронизировать с Главным DC). Фактически выбор этого пункта меню для данного BDC означает принудительную немедленную синхронизацию базы данных данного BDC и PDC. Сделаем эту синхронизацию:

Как видите, в окне написано, что только данный компьютер (TESTER) будет синхронизирован с PDC.

Если Вы выберите в окне Server Manager PDC, то данный пункт меню будет выглядеть таким образом: Synchronize Entire Domain (Синхронизация внутри домена). Сделаем это:

выбрав этот пункт меню Вы синхронизируете ВСЕ резервные контроллеры домена с PDC (конечно, имеется ввиду база данных пользователей домена). Т.е. на ВСЕ резервные контроллеры домена одной командой Вы можете распространить текущую версию базы данных пользователей домена.

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

Server Manager. Часть III.

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

Для начала давайте рассмотрим пункт меню Add to Domain. Дело в том, что не любой компьютер может стать членом домена, а лишь тот компьютер, которому предоставлены соответствующие полномочия. Напомню, что правом добавления компьютеров домен обладают члены групп Administrators и Server Operators. Итак, выберем этот пункт в меню: необходимо ответить на вопрос о роли добавляемого сервера. Пусть мы желаем добавить BDC:

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

Компьютер TESTER добавлен в домен как рядовой сервер или рабочая станция. Когда этот компьютер будет включен, Server Manager поймет, что это за компьютер: сервер или workstation.

Если компьютеры к домену можно добавлять, то наверняка их можно из домена удалять. Следующий пункт меню как раз это и позволяет: выбрав компьютер, укажите в меню Computer пункт Remove from Domain. Вы увидите следующее:

Вы действительно желаете удалить этот компьютер из домена? Тогда соглашайтесь, Вы получите следующее окно:

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

Ну, и, наконец последний пункт меню Computer: Select domain. Здесь Вы можете указать, каким именно доменом Вы желаете управлять; если у Вас имеются доверительные отношения с этим доменом и Вы имеет в нем соответствующие права, то Вам позволят управлять в Server Manager чужим доменом.

Напомню, что есть еще один пункт в меню - Properties. Мы рассмотрим его в следующий раз, с помощью Server Manager и этого пункта меню можно настроить службу репликации в домене - это и будет одной из тем следующего урока.

Служба репликации

В сети нередко бывают ситуации, когда нужно предоставлять нескольким пользователям одни и те же ресурсы сети (файлы, каталоги) одновременно и часто. Вот представляем себе такую себе фирму, которая занимается таким себе бизнесом. И в начале работы все сотрудники просто обязаны посмотреть или расписание работы, или номера телефонов клиентов, или .. то что им нужно, но при этом всем сразу. Но кроме этого мы уже знаем, что каждый из пользователей имеет свои сценарии входа (Logon Scripts), файлы системных политик (System Policy Files), которые загружаются для каждого пользователя при входе в сеть. Возникает огромная нагрузка на сервер, который должен всем угодить и предоставить нужную информацию. Вот тут и возникает речь об использовании службы репликации Windows NT (будем надеяться, что администратор той фирмы работает именно с этой операционной системой, в противном случае эта информация ему не поможет :( Чем же эта служба может помочь? И как эта помощь осуществляется?

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

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

Нам уже известно, что когда пользователь входит на любой из контроллеров домена (неважно основной или резервный), то контроллер по умолчанию ищет выше названные файлы в своем определенном локальном каталоге, по умолчанию это каталог \winnt\system32\Repl\Import\Scripts.

Но что же сделать, чтобы пользователь, независимо к какому контроллера домена он подключается, никогда не беспокоился, почему, когда он загружается в сеть, не запускается его любимый Word, и чтобы администратор спокойно шел на обед с уверенностью, что этот пользователь точно будет работать только в Word-е. Нужно просто поместить копии настроек, которые находятся на основном контроллере домена в выше указанный каталог на каждый из резервных контроллеров домена и все. Копии системных файлов на резервном контроллере домена позволяют ему проверить пользователя и обеспечить его вход в сеть без связи с основным сервером. Если бы системные файлы находились только на PDC, то BDC приходилось бы в случае необходимости запрашивать и получать с PDC копии всех системных файлов.

В центре службы репликации каталогов находится экспортирующий сервер, который предоставляет данные исходного каталога. Экспортирующие серверы репликации хранят в системном реестре специальные данные, управляющие графиком экспортирования каталогов. Экспортирующим сервером может быть только Windows NT Server. Серверы, выбранные для импортирования, получают копию исходного каталога в своих каталогах. Импортирующими компьютерами могут быть компьютеры Windows NT Server, Windows NT Workstation, LAN Maneger for OS/2 Server. Запомните - компьютеры под управлением MS-DOS и Windows 95 НЕ ПОДДЕРЖИВАЮТ РЕПЛИКАЦИЮ! И еще одно, сценарии входа должны передаваться только на контроллеры домена. Поскольку проверка пользователей может выполняться только этими серверами, репликация сценариев входа на другие компьютеры только загружает сетевой график и является излишней.

Еще немного уточним по поводу каталогов экспорта и импорта. Сервер экспортирует файлы из подкаталогов главного каталога экспорта - \winnt\systen32\Repl\Export\. При этом нужно запомнить, что просто файлы из главного каталога копироваться НЕ БУДУТ их нужно сортировать в подкаталоги! Так например, для экcпорта файлов Logon Scripts, их помещают в папку winnt\systen32\Repl\Import\Scripts. Главный каталог импорта - \winnt\system32\Repl\Import\.

Сервис (служба) репликации в Windows NT называется Directory Replicator Service, да это именно та служба, о которой вот уже два урока обещается вам рассказать подробнее. Его можно найти среди списка всех сервисов функционирующих на данном сервере (постарайтесь вспомнить, где находятся сведения о сервисах : ). Именно этот сервис управляет репликацией файлов. Он работает на каждом экспортирующем сервере и импортирующем компьютере. Сервис репликации копирует из главного каталога экспортирующего компьютера все подкаталоги вместе с файлами в главный каталог импорта каждого импортирующего компьютера. Кроме этого, при малейшем изменении какого-либо файла в подкаталогах главного каталога экспорта сервис репликации копирует его в соответствующий подкаталог импорта.

Это происходит приблизительно так: сервис репликации периодически проверяет, в каком состоянии экспортируемые файлы и когда изменение обнаружено, то происходит следующие действия: экспортирующий сервер сообщает об изменении импортирующим компьютерам, те в свою очередь получают уведомление, обращаются к серверу экспорта и читают структуру каталога экспорта. Импортирующий компьютер копирует все новые или измененные файлы в свои подкаталоги импорта, а также удаляет из своих подкаталогов импорта те файлы, которые отсутствуют в подкаталогах экспорта. Вот какой хороший сервис репликации. Единственно строгое условие - это сервис на каждом компьютере, участвующем в процессе репликации, должен работать под именем некоторого вымышленного спец-пользователя, например Repl. Сейчас уже для вас создать пользователя на контроллере домена как дважды два, только вот что нужно обязательно учесть: во-первых - он должен быть членом системной группы Replicator, которая создана специально для обеспечения копирования файлов репликации в обход возможных запретов по правам доступа, во-вторых, как уже говорилось ранее, учетная запись такого пользователя должна иметь неограниченный срок действия пароля. Вход с этой учетной записи должен быть разрешен в любое время. И не забудьте ему предоставить право входить локально на сервер (Log on locally)!

После того, как пользователь создан, нужно сообщить об этом сервису репликации (т.е. сконфигурировать сервис для входа под именем нашего спец-пользователя Repl). Для этого нужно воспользоваться уже хорошо нам известной программой Server Manager. В меню программы Computer->Services показаны все сервисы, которые мы подробно рассматривали в предыдущем уроке. Только если на прошлом уроке мы могли настраивать сервисы локальной машины, то в Server Manager можно настраивать сервисы ЛЮБОГО удаленного компьютера находящегося в сети! В списке сервисов можно найти и нужный нам сервис репликации Directory Replicator. Вы уже сами хорошо знаете, как настроить сервис. Для Directory Replicator, (при нажатии кнопки Startup..) необходимо в настройке Log On As (стартовать под учетной записью) указать, что сервис будет работать под учетной записью пользователя Repl. Для этого в поле This Account нужно выбрать пользователя репликации из списка всех существующих пользователей в домене (нажав такую вот кнопочку)

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

Ну, все - скажите вы, - сейчас, наконец, начнем репликацию. Нажмем на Start и .. получите сообщение об ошибке :(

Ведь мы с вами не указали, какие ресурсы нужно копировать, куда копировать и откуда? Эти вопросы решаются в Server Manager. В утилите Server Manager меню Computer есть пункт Properties. При нажатии в отдельном окне показывается все сведения о выбранном компьютере (его можно вызвать также, если в основном окне Server Manager нажать дважды на выбранном компьютере левой кнопкой мыши). Остановим немного свой взгляд на этом окошке...

Session - сколько удаленных пользователей, подключенных к компьютеру (количество сеансов).

Open Files - сколько файлов общего доступа, открытых на компьютере.

File Locks - сколько блокировок открытых на компьютере файлов общего доступа.

Open Named Pipes - сколько именованных каналов, открытых на компьютере.

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

Здесь внизу расположен ряд кнопок, которые более детально показывают свойства выделенного компьютера. Среди них кнопка Replication, при нажатии на которую, появиться окно настройки процесса репликации. Оно как бы разделено на две части: в левой все, что касается экспорта, а в правой - импорта. Выбор сервера экспорта и серверов импорта по кнопке Add в соответствующей части окна. Удаление с помощью кнопки Remove.

В нижнем поле указан путь по умолчанию к файлам сценариев входа Logon Script. Каталоги репликации по умолчанию winnt\System32\Repl\Export для экспортирующего и winnt\System32\Repl\Import импортирующих серверов. Нажав на кнопку Manage в соответствующей части окна Directory Replication on имя компьютера, появиться окошко, в котором можно администрировать эти каталоги. Для экспортирующего каталога будет отображаться список всех подкаталогов, находящихся в нем, по умолчанию там создан единственный подкаталог Scripts (при добавлении подкаталогов, они автоматически появляется в списке). Здесь же можно установить или снять блокировку выбранного подкаталога (Add Locks, Remove Locks), посмотреть дату последней установленной блокировки (Locked Since). Следует отметить, что блокировка предотвращает экспорт этого подкаталога (так же как и импорт). Stabilize показывает, будет ли производиться репликация, если были изменены подкаталоги или файлы в подкаталогах (можно оставить установленный по умолчанию (No), при этом репликация будет происходить сразу после изменений файла (подкаталога)).Subtree показывает, будут ли экспортироваться подкаталоги, которые созданы в верхнем подкаталоге (для этого нужно установить флажок Entire Subtree, в противном случае все подкаталоги, находящиеся, например, в подкаталоге Script экспортироваться не будут). И, наконец, можно просто удалить подкаталог из списка или, наоборот добавить с помощью кнопок Add и Remove (в основном подкаталоги не здесь добавляют, а создают "в ручную", например, в проводнике Windows NT Explorer, это касается и подкаталогов импорта).

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

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

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

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

Если же в этом поле пусто, скорее всего, неправильно настроена репликация, например, стоит проверить есть ли сервер экспорта и импорта в окне Directory Replicator on Server.

Теперь, проверив еще раз все установки и нажав OK (в окне Directory Replicator имя компьютера), вы увидите окно старта службы репликации Directory Replicator Service, которая будет работать под учетной записью спец-пользователя Repl. И можно утверждать, что одной проблемой в вашей сети стало меньше. На своих компьютерах вы можете попробовать осуществить подобие репликации. Если предположить, что ваш сервер будет одновременно и экспортирующим и импортирующим.

Оставаясь в окне Properties, давайте рассмотрим другие свойства компьютера. Кстати, если вы желаете посмотреть свойства компьютера другого домена, нужно в Server Manager выбрать домен Select Domain в меню Computers (это возможно только при установленных между доменами доверительных отношениях).

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

* Users

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

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

Connected Users - имена подключенного пользователя.

Computer - имя компьютера, с которого он подключился в систему.

Opens - количество ресурсов, открытых на компьютере, свойства которого мы изучаем

Time - время, прошедшее от начала соответствующего сеанса работы.

Idle - время, прошедшее после последнего обращения пользователя к ресурсу.

Guest - а может пользователь просто зашел в гости? (т.е. имеет ли пользователь статус гостя в системе)

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

Resourse - имя ресурса

Opens - сколько пользователь открыл файлов.

Time - время, прошедшее с последнего момента открытия файла.

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

! перед отключением пользователя от ресурса НЕОБХОДИМО поставить его в известность (т.е. доступно объяснить причину своего решения).

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

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

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

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

* Shares

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

Sharename - имя общего ресурса (кроме файла это может быть принтер или именованный канал).

Uses - число подключений к данному ресурсу.

Path - путь, где находится общий ресурс.

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

Time - время, прошедшее с момента последнего обращения к ресурсу.

In Use - открыты ли файлы данного ресурса пользователем (Yes or No).

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

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

Следующая кнопка в окне свойств Properties for имя компьютера:

* In Use

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

Open Resources - общее число открытых на компьютере (свойства которого мы наблюдаем) общих ресурсов (ресурсами могут быть как файлы, так и принтеры и именованные каналы).

File Locks - общее число блокировок открытых общих ресурсов.

Opened by - имя пользователя, который осмелился открыть ресурс.

For - разрешения, предоставленные пользователю при открытии этого ресурса.

Loks - число блокировок открытого ресурса.

Path - путь, где находится файл открытого ресурса.

Чтобы обновить информацию можно воспользоваться кнопкой Refresh. Если нужно закрыть ресурс, то прежде чем нажать на кнопку Close Resource нужно все-таки предупредить об этом пользователя, об этом напомнит информационное окно с угрожающим сообщением, что пользователь может потерять данные. Если вы решились закрыть все ресурсы, нажимайте Close All Resource.

И последняя кнопка:

* Alerts

В этом окне можно составить отдельный список пользователей или компьютеров, которые будут получать сообщения специального типа. Это сообщения о возникновении неполадок в системе Windows NT, связанных, например, с обеспечением безопасности, доступом, сеансами пользователей или принтеров. Чего, конечно, хотелось бы избежать. Например, можно посылать сообщение группе администраторов, если на каком-то определенном компьютере выключилось питание. Для добавления пользователя или компьютера в такой "черный" список под названием Send Administrative Alerts To нужно в поле New Computer or Username ввести соответствующее имя и нажать Add и подтвердить все кнопкой OK. Оповещание будут создаваться только службой оповещаний Alerts. Другие программы приложений не могут их генерировать.

Подводя итог тому, о чем мы с вами разговаривали на протяжении вот уже двух уроков, хотелось бы отметить широкую разнообразность выполняемых задач, а также огромную полезность для администратора программы Server Manager. Server Manager позволяет: работать с сервисами любого компьютера в сети (даже членов другого домена, при налаженных доверительных отношениях), управлять общими ресурсами сети, выполнять репликацию каталогов сети, проводить преобразование статуса контроллера домена. При выполнении такого рода задач администрирования Server Manager "правая рука" администратора.

Диспетчер задач Task Manager

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

Это все возможно с помощью программы диспетчера задач Task Manager. Два урока назад вам предлагалось рассмотреть его работу в домашнем задании. И вы уже знаете, что если нажать, находясь в Windows NT заветную комбинацию Ctr+Alt+Del, то из появившегося окна можно запустить Task Manager. Давайте еще раз с вами рассмотрим его работу, чтобы понять, каким образом он нам поможет исполнить возникшее желание.

На страничке Application показаны все приложения, работающие в данное время. Любое из них можно заставить не работать (End Task), либо заставить работать любое другое приложение (New Task), или просто переключиться в выбранное приложение (Switch To).

Чтобы закрыть работающее приложение (оно имеет статус Running) достаточно просто нажать на End Task. Если необходимо закрыть "зависшее" приложение (тогда оно имеет статус No Responding) нужно нажать на End Task, немного подождать и в появившемся окне подтверждения выбрать: Wait - для того, чтобы попытаться дождаться возвращения приложения рабочее состояние (все бывет :); End Task - чтобы немедленно все-таки закрыть приложение; Cancel - если вы передумали закрывать это приложение.

Для переключения на любое приложение из списка, просто выделите его и нажмите Switch to.

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

Немного остановимся и поговорим о понятии процесса и потока.

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

Поток (Thread) - это часть выполняющегося процесса. В Windows NT каждый процесс имеет, как минимум один поток, хотя их число может быть и больше. Для нас пользователей системы, весь ход выполнения процесса незаметен. Мы запускаем программу. Она посылает сообщения своим внутренним потокам. Потоки делят для этого между собой процессорное время и последовательно выполняют строго поставленные задачи. По окончании выполнения задачи поток останавливается, пока не получит ответа на запрос, затем либо продолжает работу, либо загружает следующий поток (для обработки ответа). Например, я сейчас выполняю процесс - печатаю текст в Word, тут же этот текст форматируется (при этом программа при каждом форматировании запускает поток соответствующих команд), затем запускается проверка орфографии, печать на принтере. Одновременно, например, для программы орфографии запускается несколько потоков, один считывает слово, другой ищет его в словаре, третий осуществляет вывод на экран сообщений. Поток проверки орфографии может быть запрограммирован на сохранение информации и выдачу ее по запросу, выделение неправильно набранных слов цветом. И в итоге вместе все они работают параллельно. При этом каждый процесс для работы требует ресурсы компьютера: ресурсы памяти, процессора, какие-то другие устройства и ресурсы.

На страничке Process для всех выполняющихся на компьютере процессов по умолчанию показаны самые основные данные: процент загруженности процессора, процессорное время, индентификатор процесса (так сказать, уникальный номер), параметры используемой памяти. В меню View->Select Column можно установить для просмотра остальные данные характеристик каждого из процессов, я приведу их ниже, но об организации ресурсов памяти и работе файла подкачки в системе Windows NT поговорим немного позже:

максимальное значение используемой памяти (Peak Memory Usage) приоритет процесса по умолчанию (Base Priority) значение виртуальной памяти (Virtual memory size) используемые объекты (User Object) изменения используемой памяти (Memory Usage Delta) Page Faults, Page Faults Delta, Paged Pool, Non Paged Pool - параметры работы файла подкачки используемые объекты графического интерфейса (GDI) количество потоков (Thread Count) количество идентификаторов процесса (Handle Count),

Сейчас мы рассмотрим еще одно важное понятие для работы процесса - приоритет процесса? Как он назначается и кем?

Многозадачная среда NT требует, чтобы некоторые процессы обладали более высоким приоритетом по сравнению с остальными. Это необходимо для распределения доступа протекающих в системе процессов к ресурсам системы. Ядро системы присваивает определенный приоритет каждому процессу и может увеличить или уменьшить его, чтобы повлиять на выполнение процесса. Существует 32 уровня приоритета (от 0 до 31). Процессы с высоким приоритетом "берут" для себя больше ресурсов системы и дольше обрабатываются процессором, чем процессы с низким приоритетом, но только в тот момент, когда они выполняются. Когда процесс с более высоким приоритетом не выполняется, он переходит в фоновый режим. Но стоит ему получить сообщение, на которое ему нужно отреагировать, как Windows тут же спешит удалить из процессора процесс с более низким приоритетом и передает процессорное время процессу с более высоким приоритетом.

Хотя система может использовать все 32 уровня, но наши возможности по изменению приоритетов ограничены. По умолчанию всем приложениям, запущенным пользователями и администраторами, присваивается базовый приоритет 8 (нормальный). Хотя пользователи также могут запускать приложения с приоритетом 4 (низкий) и 13 (высокий), и только администраторы могут запускать приложения с приоритетом 24 (приоритет реального времени). Мы пока рассмотрим только один из способов установки приоритета процесса в Windows NT - с помощью Task Manager.

Task Manager позволяет назначать процессам низкий, нормальный, высокий или приоритет реального времени с помощью меню Set Priority на страничке Process, вызываемого правой кнопкой мыши. Приоритет реального времени может назначаться процессам лишь администраторами!

Task Manager дает право пользователю принудительно остановить любой из выполняющихся в данное время процессов. Зачем это нужно? Иногда бывает так, что приложение уже закрыто, а процесс связанный с ним еще присутствует и продолжает занимать процессорное время и ресурсы памяти, одним словом, это приводит к снижению работоспособности системы (а нам же всегда нужно все делать быстрее : ).

ПРЕДУПРЕЖДЕНИЕ: Следует, все-таки, задуматься перед этим - ТОЧНО ли вы знаете, к каким приложениям этот процесс относится, в противном случае может случиться останов совсем другого приложения или даже Windows NT (ведь вы помните закон: хотелось как лучше, а.. :). Об этом сообщается в окне сообщения после нажатия кнопки End Proc.

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

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

Общие данные - количество процессов, их идентификаторов и количество потоков в системе;

Параметры физической памяти - общее количество оперативной памяти компьютера, количество доступной памяти, размер файла подкачки;

Параметры памяти ядра системы;

Параметры используемой памяти;

Кроме этого строятся графики, характеризующие использование ресурсов процессора CPU Usage, памяти Memory Usage. Показаны значения этих показателей в текущий момент и их изменение во времени (CPU Usage History, Memory Usage History). В большинстве случаев Task Manager в процессе работы вызывается для закрытия "зависшего" приложения либо процесса. Особенности внутренней организации ядра Windows NT позволяют обеспечить высокую стабильность работы системы. Поэтому чаще всего "зависание" одной из задач не вызовет "зависания" всей системы. Для более детальной информации о работе и конфигурации системы, существует другая утилита входящая в состав Administrative Tools, о которой пойдет дальше речь.

Windows NT Diagnostics

Обычно очень удобно работать с информацией, когда она находится в одном месте, рассортированная по типам, функциям и т.п. Таким местом сбора абсолютно всей информации о вашем компьютере является утилита диагностики Windows NT Diagnostics. Как вы знаете, все утилиты администрирования Windows NT находяться в Administrative Tools. Оттуда вы можете запустить и Windows NT Diagnostics.

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

Внизу кнопки Properties, Refresh, Print, OK - позволят вам соответственно посмотреть свойства конкретного объекта данных, обновить окно информации (может что-то изменилось в системе, пока вы смотрели какой у вас видеоадаптер), распечатать или просто согласится с увиденным.

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

Пойдем смотреть дальше. Страничка System.

Тут вы увидите параметры BIOS: дату выпуска версии, производителя и номер версии;

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

Перейдем на страничку Memory.

Для того, чтобы разобраться в этой информации остановимся немного на вопросе организации управления памяти в Windows NT. Управление памятью в системе самым прямым путем влияет на производительность вашего компьютера. Мы с вами говорили, когда знакомились с работой Task Manager, что каждая запущенная вами (или системой) программа в ходе выполнения требует ресурсы памяти. Но как же, - скажите вы, - все программы удовлетворяются моими 32 метрами? Неужели их запросы так малы? Да будет вам известно, что на самом деле для работающих на вашем компьютере программ используется не "32 метра", а намного больше.

?! - скажите вы.

Сейчас вы сами в этом убедитесь. Еще в самом начале мы говорили об особенностях Windows NT как 32-разрядной системы. Еще одно и довольно существенное преимущество: 32-разрядная адресация позволяет выделить объем памяти 4Gb!. Этот объем называют виртуальным пространством. Эти 4Gb выделяются системой для каждого процесса выполняющегося в системе. Программа помещает в этом пространстве все необходимые ей данные. Хотя в реальности не все 4Gb обычно доступны одному процессу, верхние 2Gb являются общими для всех. Но тут остается непонятным вопрос, как же процессы, используя одно и тоже адресное пространство, могут "разминуться", ведь при этом вполне вероятно, что в один прекрасный момент несколько процессов потребуют от системы поместить данные по одному и тому же адресу. Беспокоится об этом не стоит. Внутренний механизм системы не позволит этого. Система смотрит, какой объем данных хочет текущий процесс, но помещает их не по тому адресу, который указал процесс в запросе. Система на самом деле все "раскидывает" в ОЗУ (туда помещаются те данные, которые нужны процессу прямо сейчас) и на жестком диске (поэтому желательно все-таки оставить хоть немного свободного места для этих целей : ) в виде одного единственного файла. Этот файл называется файл виртуальных страниц или файл подкачки - pagefile (попробуйте отыскать его на своем жестком диске, на том разделе, куда вы установили Windows NT).

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

Windows NT поддерживает одновременную работу с несколькими файлами подкачки. Кстати, Windows NT также позволяет располагать их на разных жестких дисках. Здесь одно замечание:

не стоит размещать файлы подкачки на разных разделах жесткого диска, это будет только "тормозить" работу.

Система определяет размер файла подкачки в зависимости от размера ОЗУ и свободного дискового пространства, но существуют способы тонкой настройки размера и физического расположения этого файла (в эти тонкости мы с вами вдаваться не будем). Просто запомним, на всякий случай, как определить размер этого файла. Начальный рекомендуемый размер файла подкачки определяется как размер оперативной памяти + 11Mb

Максимальный размер - это удвоенный или утроенный начальный размер файла подкачки.

Нам с вами еще необходимо вооружиться понятием доступная память. Это не совсем, та память, которую вам по карману купить.

Доступная память = объем оперативной памяти + размер файла подкачки

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

Из выше сказанного следует постараться запомнить на будущее хотя бы то, что если у вас размер файла подкачки окажется недостаточным (или другими словами НЕДОСТАТОЧНО ВИРТКУАЛЬНОЙ ПАМЯТИ) для нормальной работы программ, вам грозят постоянные сбои в системе. Поэтому эксперименты с изменением размера файла подкачки следует проводить со знанием дела. По этой причине мы с вами так много уделили этому вопросу внимания.

Вот так и происходит жизнь процессов в системе. Информацию об этом и показывает нам страничка Memory:

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

состояние оперативной памяти

состояние памяти, используемой ядром системы

количество процессов и потоков в текущий момент

При просмотре этих данных можно вспомнить о кнопочке Refresh.

Следующая страничка Drives

Тут нам показаны все диски, которые система смогла распознать на вашем компьютере, иногда бывают такие случаи, что их количество не совпадает с реальностью :(. Это особенно актуально особенно актуально при работе на портативном компьютере, когда некоторые диски могут быть недоступны, в зависимости от того, подключены вы к сети или нет, а также от наличия на компьютере внешнего жесткого диска или CD-ROMа. Можно воспользоваться кнопкой Properties для более подробной информации о диске (размере, кластерах, секторах и прочих существенных деталях).

Следующая страничка нам "до боли" знакома - Services. Здесь мы еще раз увидим все службы функционирующие в системе (кнопка Services, она по умолчанию включена при вызове страницы) в состоянии на данный момент времени (колонка State). Можно посмотреть сведения о любой из служб, ее имя, уровень отслеживания ошибок, группа, флаги состояния, перечень связанных с ней служб, путь, где находится файл запуска службы.

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

Cтраничка Display приводит параметры вашего дисплея. Сведения о видеоадаптере и драйвере.

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

Переменные среды разделяют на два типа:

* системные переменные среды

* переменные среды пользователя

Название системные переменные среды говорит само за себя. Эти переменные относятся к системе. Администратор имеет право изменять эти переменные или добавлять. После установки Windows NT заносятся значения системных переменных по умолчанию, их можно увидеть, если нажать на странице кнопку System. Эти переменные доступны для всех пользователей компьютера. По умолчанию Windows NT просматривает с:\autoexec.bat, и если он у вас есть, то настраивает соответствующие переменные среды. В частности, значение переменной PATH из autoexec.bat автоматически добавляется к стандартному пути при каждой загрузке Windows NT. А в общем случае порядок присвоения значений этих переменных таков:

1. Переменные из autoexec.bat. 2. Системные переменные. 3. Переменные среды пользователя.

В принципе просмотр autoexec.bat можно исключить, установив соответствующий параметр системного реестра. Все равно эти переменные переопределяются в процессе работы, т.е. если, например, в autoexec.bat. был указан "SET TMP = C:\", а также задана переменная пользователя "TMP=X:\TEMP", то переменная среды TMP будет равна "TMP=X:\TEMP". В реестр мы пока не будем заходить. Но если вам так хочется, все-таки это сделать, можете вспомнить, каким образом вызвать редактор системной политики. И для соответствующего пользователя снять флажок Parse Autoexec.bat.

Переменные среды пользователя различаются для каждого пользователя данного компьютера. Это переменные установленные конкретным пользователем и доступными для данного пользователя приложениями (например, пути к файлам приложений). Эти переменные различны для различных пользователей. Помните, мы как-то пытались с вами создавать профили пользователей? Так вот для каждого созданного профиля существуют свои переменные среды. Их значения можно посмотреть при нажатии на кнопку Local User.

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

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

- прерывания (IRQ) Именно IRQ - частая причина возникновения неполадок в системе при использовании одного и того же прерывания различными устройствами (например, конфликт мышки с модемом, установленного на COM-Рort). Поэтому, если в вашем компьютере начались сбои какого-то оборудования, то первое, что можно предпринять - открыть Windows NT Diagnostic и посмотреть не такой ли случай произошел с вами ?

- порты ввода/вывода (I/O Ports) и подключенные к ним устройства, номер шины, тип. Должно сказать, что если IRQ первый возможный источник сбоев, то порты ввода/вывода - второй (поэтому, если вы ничего плохого не обнаружили на страничке IRQ, а ваша мышка по-прежнему "не хочет дружить" с модемом, без которого вы "как без рук", то переключайтесь и ищете возможный конфликт здесь).

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

- устройства (Devices), в свойствах каждого из которых можно посмотреть владельца ресурса, тип и номер шины и пр...

- каналы прямого доступа к памяти (DMA). В каждый пункт списка включены номер канала и порта ввода/вывода, имя устройства и тип шины.

Последняя страничка - Network.

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

В категории Transport приводится список протоколов транспортного уровня. Здесь можно узнать какой протокол используется в системе, его основные параметры, адрес сетевой платы. Следует отметить, что если на вашем компьютере установлен неподходящий протокол, то вряд ли вы сможете "покатать" в DOOM с соседом сети.

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

И наконец, последняя категория Statistics покажет вам огромный список количественных показателей работы сети и их значений. Так что, если у вас возникли неполадки в сети, то не забудьте о такой утилите Windows NT Diagnostics. Запустите страничку Network, здесь уж, как вы убедились, есть что посмотреть.

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

Windows NT Diagnostics позволяет только посмотреть текущее состояние системы. Если вы захотите что-либо изменить, то нужно воспользоваться возможностями Control Panel.

Стратегия планирования глобальных и локальных групп в многодоменных сетях. Доверительные отношения.

Эту часть урока мы будем проходить под девизом: "повторение - мать учения"!

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

НУЖНО создавать, если в вашей сети более чем три человека нуждаются в предоставлении одного и того же права на какой-то сетевой ресурс или на какое-то право что-то делать в локальном домене. Если вы будете создавать локальные группы на основном контроллере домена PDC, то им могут назначаться права или предоставляться ресурсы любого компьютера этого домена. Если же вы создаете локальные группы на выделенном сервере StandAlone или рабочей станции, то им будут назначаться права или предоставляться ресурсы только локального компьютера.

! Локальные группы НЕ МОГУТ включать в себя другие локальные группы !

Зато локальные группы могут включать в свой состав глобальные группы ЛЮБОГО ДОМЕНА сети. Об этом сейчас и поговорим, только прежде напомним, что такое глобальные группы.

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

* Domain Users - все пользователя данного домена.

* Domain Administrators - все администраторы только данного домена.

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

Никакие локальные группы или другие глобальные группы не могут существовать в глобальных группах!!!

Глобальные группы всегда создаются на основном контроллере домена PDC, на котором расположена вся база учетных записей пользователей. Это можно делать и с помощью BDC или StandAlone, или рабочей станции с установленными средствами администрирования, и только в утилите администрирования User Manager for Domains.

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

Стратегия планирования групп

  • Логически объедините пользователей по общим нуждам (например, руководство, бухгалтеры, продавцы)
  • Сразу определитесь, что кому нужно у вас в сети. И под девизом: "все для блага пользователя" создайте локальные группы, опираясь на уровень потребности каждого пользователя сети в данном ресурсе. Приведу пример, скажем, в фирме "Shabash" к каталогу /manager нужен полный доступ только BOSSам, а для рядовых продавцов - чтение и только :(. Так что, как бы может и быть и не хотелось бы, но для вас же лучше создать одну локальную группу для BOSSов, а другую для продавцов.
  • Следите внимательно, чтобы имена локальных групп были уникальными в домене. Они не должны совпадать с именами других пользователей или групп.
  • Если ресурс находится на выделенном сервере или рабочей станции со средствами администрирования (имеется в виду наличие User Manager for Domains), то создайте там локальные группы, а если ресурс их на основном контроллере, то создавайте на основном.
  • Назначьте подходящие разрешения и/или права соответствующим локальным группам. Например, для фирмы "Shabash" можно назначить локальной группе BOSS - Log on locally, а локальной группе Saller - Access this computer from network.
  • В каждом домене, где находятся учетные записи пользователей, создайте глобальную группу для каждой локальной группы пользователей. Потом добавьте учетные записи тех пользователей, которые сильно часто обращаются к вам с одной и той же просьбой, в глобальную группу, которая соответственно им подходит (в плане просьбы).
  • Добавьте глобальные группы в локальные.

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

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

Однодоменная модель

Тут все уже для нас понятно, это если к вашему PDC добавить BDC, несколько StandAlone и парочку рабочих станций. Хотя такая модель и может выдержать нагрузку порядка 40 тыс. учетных записей, но она лучше подходит для организаций, которые имеет небольшое количество пользователей и ресурсов в сети, a ресурсы нуждаются в группировке. В такой модели сети локальные и глобальные группы, в общем случае, администратор создает один раз, затем группирует локально ресурсы, а управление этими ресурсами происходит централизованно (т.е. под "крышей" основного контроллера домена PDC). Редко такую сеть администрирует несколько администраторов, так что с такой сетью вы могли бы, вполне и сами справляться.

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

Один из способов избежать этой ситуации - построение сети по модели - с мастер-доменом. Тут ниже показано приблизительно как это может выглядеть. Вверху мастер-домен (1PDC, 1BDC, 1StandAlone, рабочие станции), а внизу другие домены (каждый имеет 1PDC, 1BDC и рабочие станции). Эти "нижние" (это я имею в виду относительно расположения на рисунке) домены особенным образом связаны с главным мастер-доменом. Что значит особенным образом? Это то, о чем и обещалось вам уже давно поведать - доверительные отношения между доменами сети. Вам уже, наверное, на всю жизнь запомнилось :), что учетные записи пользователей хранятся на основном контроллере домена. А также вы прекрасно знаете, что когда пользователь входит в сеть, контроллер домена проверяет, есть ли такой в его базе учетных записей. Научными словами аутентифицирует пользователя при входе. И вы также уже не раз до этого слышали, что существует возможность с одного компьютера получать доступ к ресурсам любого домена сети.

Для того, чтобы пользователь, учетная запись которого хранится на основном контроллере одного домена мог свободно пользоваться ресурсами ЛЮБОГО другого домена сети между соответствующими доменами налаживаются доверительные отношения. Это освобождает администратора создавать одинаковые учетные записи на всех контроллерах доменов.

Таким образом, в сети появляются два вида доменов - доверяющий и доверяемый. По иностранному это звучит как "trusting and trusted". Кто из них кто?

Доверяющий домен - trusting - это такой "добрый" домен, который безвозмездно предоставляет доступ к своим ресурсам пользователям из другого домена - доверяемого или trusted. Посмотрите еще раз на предыдущий рисунок. Если немного приглядеться, то можно заметить линии связи нижних (на рисунке) доменов с верхним мастер-доменом, это показаны установленные доверительные связи. Так вот, верхний нарисованный мастер-домен - это доверяемый домен, а внизу нарисованы доверяющие домены, которые любезно дают пользоваться своими ресурсами пользователям доверяемого домена. Часто этот "добрый" домен называют еще ресурсным, поскольку в нем находятся серверы, к ресурсам которых и могут получить доступ пользователи доверяемого домена. Доверяемый домен хранит учетные записи пользователей и информацию о ресурсах доверяющих доменов, и за это его еще называют учетным. Внимательно обратите внимание, что между ресурсными, доверяющими доменами таких линий связи НЕТ, этот факт свидетельствует о том, что доверительные отношения между ними не существуют. На самом деле есть другие модели в сети, где все доверяют друг другу, но об этом немного позже.

В общем же случае доверительные отношения - односторонние. Поэтому, например, если в одной сети есть три домена - "FIRST", "SECOND", "THIRD".

Когда FIRST будет доверять домену SECOND, а SECOND будет доверять домену THIRD, то это совсем не значит, что FIRST автоматически будет доверять THIRD.

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

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

Вот мы с вами и пришли к ответу на вопрос: зачем включать глобальные группы в локальные.

Хорошо, давайте рассмотрим частный случай. Есть сеть с двумя доменами. Администраторы этих доменов сразу поняли, что их домены не смогут существовать в сети обособленно, и решили доверять друг другу. И вот домен "SECOND" назначен ресурсным, доверяющим, а домен "FIRST" - доверяемым. Администратор ресурсного домена "SECOND" создает на контроллере домена локальные группы пользователей, назначает этим локальным группам соответствующие права на ресурсы домена. В процессе выполнения этой задачи, он всегда помнит, что его ресурсами могут пользоваться и пользователи домена "FIRST". Вот таким образом, он создал, к примеру, локальные группы:

FullControl - пользователи группы имеют полный доступ к каталогам.

Read - пользователи группы имеют право на чтение каталогов

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

Manager - группа для руководства фирмы. Для нее должен быть полный доступ ко всему, что есть в сети (имеется в виде только документация фирмы: файлы, каталоги).

Sallers - группа для служащих фирмы. Для нее право только на чтение.

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

Здесь очень удобно использовать следующую стратегию:

На ресурсном домене администратор создает локальные группы с соответствующими правами на свои ресурсы: READ, FULL_CONTROL и т.п. На учетном домене администратор создает глобальные группы, куда включает нужных пользователей. И для того, чтобы обеспечить соответствующий доступ к ресурсам, администратор ресурсного домена просто включает глобальную группу учетного домена в соответствующую свою локальную группу и таким образом назначает ей права. В частности, в локальную группу FullControl включит глобальную группу Manager, а в Read - глобальную группу Sallers. Как это делать вам напомнит этот рисунок.

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

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

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

Вот, наконец-то, мы разобрались, зачем существует возможность включения глобальных групп в локальные. Для администраторов это существенно облегчает жизнь. Да, сначала конечно придется, все-таки, потрудится. Еще раз напомню как: создать локальные группы, разгруппировать ресурсы для них, создать глобальные группы для каждой локальной группы, включить глобальные в соответствующие локальные. А потом можно просто добавлять/удалять пользователя в глобальную группу и тем самым сразу определять/снимать его права на ресурсы в сети.

Главное в этом вопросе, чтобы между доменами были установлены доверительные отношения. Ну как же это сделать? - спросите вы. И в этой задаче нам поможет известная утилита администрирования User Manager for Domains. К сожалению, вы не сможете получить у себя удачного завершения этой задачи, поскольку нету кому вам доверится :(. Но у вас есть возможность посмотреть как это выглядит в этом уроке. Можете все-таки запустить User Manager for Domains и посмотреть хотя бы, где можно уставить доверительные отношения.

Итак, предполагается, что вы уже знаете, кто кому будет доверять. Например, как мы уже поняли из предыдущего примера домен "Second" доверяет домену "First". В меню User Manager for Domains -> Policies администраторы учетного и ресурсного доменов выбирают пункт Trust Relationships. И каждый из них добавляет имена и пароли соответствующих доменов: учетный домен добавляет ресурсные домены, а ресурсный - учетный домен. Сейчас разберемся конкретней на примере.

В появившемся окне мы видим возможность по соответствующей кнопке Add добавить ресурсный (trusting) или учетный (trusted) домены. В окне добавления ресурсного домена, в нашем случае - это домен "SECOND", администратор учетного домена "First" вводит имя ресурсного домена - "SECOND", и пароль с подтверждением, который будет использовать администратор ресурсного домена "SECOND" в следующей задаче администрирования.

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

В свою очередь администратор ресурсного домена "SECOND" на своем контроллере домена в User Manager for Domains должен ввести в окне Add Trusted Domain имя и пароль учетного домена "FIRST".

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

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

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

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

Например, Alex - пользователь учетного домена FIRST. Он пытается войти в сеть с компьютера ресурсного домена SECOND (вы помните, мы уже настроили доверительные отношения между ними). В окне Logon Information он должен ввести свое имя, а внизу выбрать из списка доменов имя своего учетного домена FIRST. Компьютер ресурсного домена SECOND определит, что в базе такового пользователя не существует, и по доверительной связи даст запрос контроллеру учетного домена FIRST, а уж тот точно подтвердит, что Alex - его любимый пользователь, и что ему действительно нужно разрешить вход (от Alex-а требуется только не забыть свой пароль). Дальше он просто передаст данные Alex-a контроллеру ресурсного домена SECOND, а тот передаст эти данные своему компьютеру, с которого Alex пытается подключиться. Это все происходит быстро и для Alex-a и не будет заметно, что в процессе его подключения уже произошло столько событий.

Проверить работу доверительных отношений можно, используя хорошо известную нам программу управления Server Manager. Вы, конечно же, помните, как можно в этой программе создавать "Shared Directories". Вспомните, мы с вами говорили о том, как можно выбирать и работать с другими доменами, если с ними установлены доверительные отношения. Теперь можно это сделать, например, если администратор учетного домена FIRST выберет в меню Server Manager->Select Domain, то он увидит там имя ресурсного домена Second.

Кроме этого, в User Manager for Domains как вы помните, есть также возможность выбрать другой домен, если они друг другу доверяют.

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

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

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

Но и это еще не все модели сети (набирайтесь терпения - мы уже у финиша :).

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

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

Так что, как говорят, думайте сами, решайте сами ...

Теперь то вы смело можете приступать к администрированию любой (практически любой) сети под управлением Windows NT Server. Этим то мы и займемся сейчас.

На последок, возьмите несколько практических советов по использованию локальных и глобальных групп:

  1. объединяйте пользователей в глобальные группы
  2. назначьте разрешения для локальных групп
  3. добавьте глобальные группы в локальные
  4. используйте вместо группы Everyone глобальную группу Domain Users. Эта группа содержит только созданные вами учетные записи, а не все учетные записи, подключенные к сети.
  5. чтобы позволить группе Administrators выполнять свою работу в других доменах, добавьте глобальную группу Domain Admins в локальную группу Administrators на компьютере в домене, который надо администрировать.
  6. если права встроенной группы устраивают некоторого вашего пользователя, то добавьте его учетную запись в эту группу. Если же он захотел чего-то особенного, то создавайте локальную группу, а потом предоставьте ей соответствующие права пользователя. Например, если нужно, чтобы пользователь имел права только архивирования, но не имел права восстановления файлов, то вам прийдется отказаться от использования встроенной группы, создать локальную группу "Архивирование и только" и назначить ей право Backup Files and Directories (Архивирование файлов и каталогов).
  7. всегда добавляйте пользователей во встроенные группы, которые накладывают наибольшие ограничения и позволяют выполнять лишь необходимые задачи.

Вот такие нехитрые рекомендации, хотя в процессе работы, вы соберете свой личный багаж рекомендаций. Чего вам и желаю :).

Решение задач администрирования на примере конкретной компьютерной сети.

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

Далеко за примерами не пойдем, а возьмемся обслуживать очень для нынешнего времени характерную организацию типа "купи-продай". Назовем ее поприличнее, например так - Торговая организация "N". По-моему, довольно приличное название :).

Определим, так сказать, штат работников организации по должностям.

Торговая организация "N"

Персонал отдела :

Руководство:

  • Директор (Василий Георгиевич)
  • Зам. директора (Василий Георгиевич, только фамилия у него Пономарев)
  • Менеджер (Алексей)

    Бухгалтерия

  • Главный бухгалтер (Татьяна)
  • Касир бухгалтерии (Люба)
  • Касир бухгалтерии (Надя)

    Исполнители

  • Торговый агент - Аня
  • Торговый агент - Валя
  • Торговый агент - Саша
  • Торговый агент - Миша

    Заметим, что бухгалтерию можно выделить в отдельный домен, поскольку она занимается важными делами как бы обособленно, но и фирме без нее никак. Отсюда, между нами администраторами, называть фирму домен №1, а бухгалтерию домен №1. В доменах работает по одному основному контроллеру домена PDC, резервному контроллеру домена BDC, и одному StandAlonе, ну и рабочие станции. Поскольку практически вы не сможете настроить два домена, мы займемся администрированием домена №1, предполагая, что он будет иметь доверительные отношения с доменом №2.

    Домен №1 будет выступать в роли учетного домена, поэтому учетные записи работников бухгалтерии необходимо создать на его основном контроллере домена. Домен №2 будет ресурсным.

    Теперь определим, ресурсы находятся на домене №1 и права доступа к этим ресурсам пользователей, которые нужно назначить.

    1. Каталог - \Documents (секретные материалы). Доступ: руководству - полный доступ, менеджеру - чтение, остальным - нет доступа.
    2. Каталог - \Contracts (контракты). Доступ: руководству - полный доступ, менеджеру и исполнителям - изменение, бухгалтерии - нет доступа.
    3. Каталог - \Cheks (счета). Доступ: руководству - полный доступ, бухгалтерии - изменение, остальным - нет доступа.
    4. Каталог - \Works (рабочие файлы). Доступ: руководству - полный доступ, остальным - изменение.
    5. Каталог - \HOME (личные папки пользователей домена).

    Итак, "закатаем рукава" и начнем администрирование.


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

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

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

    Назначьте ВСЕМ пользователям необходимость смены пароля при входе !!!

    Выключите встроенную учетную запись Guest !

    Можете поменять стандартное имя учетной записи администратора - Administrator !

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

    Подсказка:
    Это все делается в User Manager -> Policies -> Account, вспомнили ?
    

    Создайте "одним махом" (выделив всех созданных пользователей в списке), используя переменную %username%, личные каталоги каждого пользователя, которые будут храниться в одном каталоге \HOME на котроллере домена №1. Не забудьте: сначала создаем этот каталог на контроллере, разшариваем его, а потом правильно указываем путь к этому каталогу : \\имя сервера\имя каталога\%usernames%, если вы выделили сразу всех пользователей (для одного пользователя надо писать %username%).

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

    Определите типы учетных записей пользователей, не забудьте при этом, что домен №1 в будущем настроит доверительные отношения с доменом №2. Для исполнителей лучше ограничить срок действия учетной записи, например, на три года (конкуренция видите ли).

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

    Руководство

    Бухгалтерия

    Исполнители

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

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

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

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

    Не спешите заканчивать работу в User Manager и определите, что каждый из пользователей имеет право делать в вашем домене. Я имею в виду назначение User Rights. Разрешите только руководству право входить локально на контроллер домена без прав администратора конечно. Начальник конечно же, всегда прав, но иногда просто не стоит очередной раз в этом убеждаться :). Остальным назначьте право входить только с компьютеров в сети.

    Что-то мы еще забыли сделать в User Manager... Стоп, ведь шеф говорил, что очень любит контрастную-черную схему рабочего стола, а еще он любит много ярлыков на рабочем столе, и еще ..., но ведь и об остальных надо побеспокоится. В общем, никуда не денешься, нужно создавать профили для каждого пользователя. Поскольку начальство в основном в своих кабинетах обитает, то для них настройте локальные профили. А вот торговым агентам, которые "мигрируют" в сети лучше определить перемещаемые профили. Настройка профилей это дело ответственное, поскольку требует учесть все пожелания пользователей. Мы совсем забыли о наших бухгалтерах. А ведь им каждый раз приходится сразу после загрузки компьютера подключаться к сетевым дискам компьютеров, а это, все-таки, не быстрая процедура. Создайте для бухгалтеров не просто перемещаемый, но и обязательный профиль, сделайте для них подключение к нужным сетевым дискам при загрузке компьютера.

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

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

    Подсказка:
    Нужно написать соответствующий *.bat файл,
    сохранить этот файл в общем ресурсе /NETLOGON,
    и написать имя этого файла в учетной записи 
    соответствующего пользователя.
    

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

    Подсказка:
    Это делается в System Policy Editor, вспомнили ?
    

    Здесь можете кроме задания поставить и собственные настройки, но в общем случае можно поступить с пользователями следующим образом:

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

    Рекомендую всем пользователям убирать кнопку Run из меню Start (в целях безопасности). Для торговых агентов и бухгалтеров можно убрать из меню Start настройку принтеров, вызов панели управления. Для бухгалтерии уберите значок Вся сеть в окне Сетевого окружения.

    Еще одна настойчивая рекомендация - ЗАПРЕТИТЬ всем пользователям запускать редактор реестра.

    Можете придумать какое-то приветствие при входе каждого пользователя. Каждому было бы приятно прийти на работу, включить компьютер, а он "говорит" : "Добро пожаловать Саша! Поработать пришел ?", или что-то другое, это уже вы сами решайте.

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

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

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

    Вон уже сколько мы разных настроек создали: и сценарии входа, и файлы системных политик. А ведь контроллеру домена нужно тратить время для передачи этой информации компьютеру каждого из пользователей. У нас в домене №1 существует еще один BDC и один StandAlone, к ним подключены некоторые из компьютеров. Поэтому желательно воспользоваться службой репликации, о которой мы совсем недавно говорили с вами. Она позволит разгрузить наш основной контроллер домена от передач большого количества данных и обеспечит синхронизацию данных во времени. Положим, что ваш PDC будет экспортирующим сервером. Создайте ответственного "пользователя-репликатора", настройте сервис репликации на работу под учетной записью этого пользователя. Скопируйте все файлы системных настроек пользователей в каталог экспорта, создайте дополнительные подкаталоги репликации на своем контроллере домена, например каталог - \Instruction, в котором будут находиться какие-то файлы-указания необходимые для работы каждого работника фирмы. Саму репликацию у вас получится только сымитировать, но так тоже реально посмотреть ее в действии, если указать, что ваш PDC будет и импортирующим сервером, ведь на одном контроллере есть и каталоги импорта, и каталоги экспорта.

    Настройте доверительные отношения с доменом №2. Домен №2 - trusting. К сожалению, работу доверительных отношений вам пока не удастся :(, но если у вас вдруг, случайно появится еще один компьютер..., не пожалейте времени, установите на него PDC и настройте с ним доверительные отношения. Заодно это будет хорошим повторением наших уроков, начиная с инсталляции Windows NT Server.

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

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

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

    На этот раз мы перейдем от людей к машинам, которые в наше время постоянно модернизируются. Как угнаться за новинками? И даже если вам удалось приобрести новенький "sound", то как об этом "сказать" Windows NT? Сейчас об этом и поговорим.

  • Немного о настройках системных устройств ...

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

    Мы уже говорили с вами и о том, как можно посмотреть состояние работы имеющегося у вас оборудования (Windows NT Diagnostics). А для настройки этого оборудования используется панель управления (Control Panel). В панели управления находятся программы, каждая из которых применяется для конфигурации параметров среды операционной системы в целом: как аппаратных, так и системных. Изменения этих параметров записываются в соответствующий раздел системного реестра операционной системы. Подробней о системном реестре мы поговорим немного позже. Другие программы панели управления контролируют те параметры данного компьютера, которые не зависят от того, какой пользователь вошел в систему Windows NT.

    Для начала мы с вами поговорим о настройке средств мультимедиа, которые поддерживает Windows NT 4.0. в панели управления это программа Multimedia

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

    В окне Video настраиваются параметры воспроизведения видеоклипов.

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

    В окне CDMusic указаны настройки работы вашего CD-ROM.

    И самое нужное для нас окно Devices. Здесь находится перечень используемых драйверов. Драйвера обеспечивают связь между каким-либо устройством и операционной системой. Давайте теперь разберемся с вашей до сих пор не установленной звуковой картой:). Немного остановимся на этом окне и рассмотрим что тут к чему.

    В этом списке можно увидеть драйвера поддерживающие интерфейс - Media Control Interface (MCI). Это интерфейс мультимедиа в Windows NT. Он является промежуточным звеном между аппаратными средствами (звуковой картой, CD-ROM) и программным обеспечением (например CD Player). Таким образом, в системе обеспечивается некоторая независимость приложений мультимедиа от драйверов и ресурсов. Каждый производитель аппаратных средств мультимедиа создает драйвер, совместимый с MCI. В этом списке приведены драйвера MCI, поставляемые с Windows NT.

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

    В Windows NT нет встроенной поддержки джойстиков. Поэтому для установки этих устройств нужно иметь драйвера от их производителей.

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

    По нажатию на кнопку Add высветится список всех совместимых с Windows NT драйверов мультимедиа устройств. Если вы там не найдете нужный тип звуковой карты (в нашем случае это вполне вероятно) выберите из списка Unlisted or Update Driver. Заранее вспомните, где у вас можно найти инсталляцию Windows NT Server - каталог /I386. И в появившемся окне выберите путь ее местоположения.

    Поскольку при установке оборудования или других системных установок вам всегда необходимо иметь под рукой дистрибутив Windows NT, желательно, все-таки, выделить немного места (около 100 Mb) на своем жестком диске и скопировать этот каталог на жесткий диск. Можно использовать доступ к этому каталогу по сети, если он сделан общим ресурсом, тогда нужно указать сетевое имя этого каталога.

    В каталоге инсталляции необходимо отыскать нужные вам драйвера. А если и там их нет, тогда нужно "ставить" драйвера от производителей звуковой карты. Тогда, в случае возможных конфликтов, которые вы не удастся отладить, обращайтесь уже к производителям. Не забудьте, вам нужно искать драйвера именно под операционную систему Windows NT 4.0.

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

    Если вы устнановливаете драйвера из дистрибутива Windows NT, т.е. из каталога /I386 , то после копирования файлов на диск, как правило, вам предложат указать адрес порта ввода/вывода для вашей звуковой карты. В появившемся окне уже будет указан адрес, с ним можно согласится, и нажать Continue. После всей этой процедуры НЕОБХОДИМО перезагрузить компьютер. После перезагрузки зайдите в панель управления в программу Multimedia, если в окне Devices, в списке устройств развернув строку Audio Devices вы увидите название вашей звуковой карты, то вас можно поздравить с успешным завершением проблемы. Если же после установки звуковой карты возникнут какие-то проблемы в работе системы, то можно всегда зайти по выше указанному пути и осторожно попробовать настроить параметры звуковой карты вручную. Для этого в окне списка есть кнопка Properties, которая показывает свойства выбранного драйвера. Чтобы изменить параметры установленной звуковой карты разверните строку Audio Devices , укажите на вашу звуковую карту и нажмите Properties. Чтобы изменить параметры существует кнопочка Settings, по нажатию на которую высветится окно настройки параметров звуковой карты, его внешний вид будет зависеть от типа звуковой карты.

    Итак, без особого труда вы решили эту проблему, и теперь после перезагрузки системы вы сможете наслаждаться миром звуков на вашем компьютере, а ведь под любимую музыку и работать веселее. Теперь и фильм можно полноценно посмотреть - со звуком! В Windows NT есть стандартные приложения мультимедиа: Sound Recorder - для записи звуковых файлов, и CD Player - для воспроизведения, можете и ими пользоваться. Для настройки параметров воспроизведения и записи звука пользуйтесь страничкой Audio программы Multimedia.

    Если вы меняете звуковую карту, то нужно следовать таким маленьким советам:

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

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

    В появившемся окне для установки нового драйвера CD-ROM перейдите на страничку Drivers и нажмите кнопку Add. Если вам надо перед этим удалить старый CD-ROM, то сначала выделите его и удалите по кнопке Remove. При этом не забывайте, что гораздо легче удалить, чем установить! Если вы не знаете точно, какой из драйверов не работает, загляните в Event Viewer, поищите там информацию об отказах устройства. Это относится не только к установке CD-ROM.

    Примечание:

    При установке/удалении любых устройств в системе
    необходимо всегда ПЕРЕЗАГРУЖАТЬ компьютер.
    Поэтому, и при удалении или установке 
    CD-ROM также не забывайте об этом.
    Последствия?
    Очень просто, если вы не сделаете перезагрузку, то вполне вероятно, 
    что ваше установленное устройство работать в системе не будет, 
    а если и будет, то со сбоями.
    

    Итак, вы приготовили все необходимое для установки CD-ROM. После того, как система загрузит список имеющихся у нее в наличии драйверов, ищете там свой CD-ROM. Его там нет? Тогда вам придется обратится к производителям и взять драйвера у них. Для установки CD-ROM в таком случае воспользуйтесь кнопкой Have Disk... и укажите место, где система в таком случае должна искать драйвера.

    Итак, перезагружаемся, и видим, что в окне на страничке Devices программы SCSI Adapters в Control Panel появился CD-ROM. Свойства устройства CD-ROM можно вызвать, нажав на кнопку Properties, там на страничке Resources вы сможете изменить, если это необходимо, ресурсы используемые CD-ROM. После внесения изменений вам предложат перезагрузить компьютер, лучше соглашаться:).

    Устройства, которые мы с вами сейчас устанавливали, физически подключаются к компьютера, используя соответствующие специальные разъемы на материнской плате. Для звуковой карты - это может быть шина типа ISA, или более нового типа - PCI, для CD-ROM разъем IDE и т.п. Но ведь существуют еще и внешние устройства (модем, ZIP-Drive, мышь), которые физически подключаются к компьютеру, используя специально существующие для этих целей порты. Большинство настольных компьютеров имеют как минимум два последовательных порта (serial port) - COM1и COM2. Хотя модемы бывают и встроенными, в таком случае они могут использовать для работы порты от COM3 до COM256. Количество и параметры портов можно настраивать также в Control Panel, с помощью программы Ports.

    Тут все просто: добавить порт - кнопка Add; удалить - Delete изменить параметры - Settings

    При добавлении порта необходимо указать его параметры: адрес ввода/вывода и номер прерывания. Обычно сначала здесь ничего не меняют, соглашаются и после перезагружают компьютер. Потом в процессе работы можно уже смотреть, как себя ведет устройство, которое использует добавленный порт, не появились ли сбои в системе. Если вдруг так и есть, то придется вам потрудится. Во-первых, внимательно отследить с каким из существующих у вас в системе устройств "конфликтует" данное, а во-вторых, ликвидировать эту неприятную ситуацию. Как правило, конфликт заключатся в использовании несколькими устройствами одного и того же прерывания, либо одинакового диапазона адресов ввода/вывода. Не используемые устройствами порты лучше удалять, чтобы они не зря занимали ресурсы. Для этого нужно не просто удалить из системы, но и зайти BIOS в и отключить его в CMOS Setup. Для просмотра параметров работающих (или уже не работающих) на текущее время системных устройств можно пользоваться известной вам утилитой диагностики Windows NT Diagnostics.

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

    Для того, чтобы облегчить труд управления всеми существующими системными устройствами (видео- и звуковыми картами, клавиатурой, мышкой, дисководами, жесткими дисками, контроллерами SCSI, сетевыми платами и т.д. и т.п.) в Windows NT существует специальная программа в панели управления Devices, вы с ней уже немного знакомы из предыдущих уроков.

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

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

    Иногда бывает нужно загружаться в систему с выключенными драйверами, например сетевой карты, или звуковой карты, в зависимости от необходимости. Чтобы обеспечить такую возможность в Windows NT можно создавать различные аппаратные конфигурации. Еще в самом начале наших с вами уроков мы говорили о том, что происходит в процессе загрузки системы, говорили, что есть возможность на начальном этапе загрузки выбирать аппаратную конфигурацию системы. Такую конфигурацию вы можете создать и сами. В Devices если воспользоваться кнопкой HW Profiles, можно включить либо выключить драйвер в текущей конфигурации системы.

    А в панели управления в программе System на страничке Hardware Profiles скопировать эту текущую конфигурацию и дать ей соответствующее имя, например Without Sound. Тогда вы можете без труда выбирать ее из списка при загрузке системы в случае необходимости. Можно также создать конфигурацию с отключенной сетевой картой, и на случай возникновения сбоев в сетевом оборудовании у вас будет возможность войти в систему и спокойно работать, пока не решите проблемы.

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

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

    Поскольку мы заговорили с вами еще раз о процессе загрузки и зашли в программу панели управления System откройте страничку Startup/Shatdown.

    Здесь можно настроить два процесса - загрузку операционной системы и ее восстановление при возникновении сбоев, возможность которых резко возрастает при установке/настройке системных устройств. В группе System Startup выбирается операционная система, которая будет загружаться по умолчанию, указывается время когда это произойдет. Вы помните откуда эти данные? (из файла загрузки Windows NT: boot.ini). Все эти данные можно изменить если нужно.

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

    - записывает событие, которое произошло в системный журнал

    - отправляет всем пользователям, которые указаны в программе Server Manager в окне Alerts сообщения, о том, что в системе неполадки.

    - записывает отладочные сообщения в отдельный файл %SystemRoot%\MEMORY.DMP

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

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

    Профили пользователей

    Теперь, рассмотрев предоставление папок в общий доступ и NetBIOS имена, мы продолжим с Вами рассматривать настройки пользователей, и в первую очередь рассмотрим сознательно пропущенную в прошлый раз тему - Профиль пользователя (User Profile).

    Напомню, как добраться до настроек профиля пользователя: для этого необходимо запустить User Manager for Domain и выбрать свойства пользователя, а затем нажать на кнопку Profile.

    Здесь настраиваются несколько параметров: профиль пользователя, сценарий входа пользователя и домашняя папка пользователя. Мы по очереди рассмотрим все эти настройки, начнем мы с профиля пользователя.

    Что такое профиль? Предположим некий пользователь сел за компьютер и ввел свой пароль, получив таким образом доступ к системе. При этом пользователь получил Рабочий стол, на котором выбрано некоторое разрешение экрана (например, 800х600) и некоторая глубина цвета. На рабочем столе применена некая цветовая схема, на столе некоторые обои. Кроме того, на рабочем столе находятся те значки, которые пользователь там разместил. У пользователя есть свое собственное меню Start, в котором те программы, которые пользователь установил. У пользователя есть свои собственные Закладки (Favorites) в Internet Explorer, свои собственные History от того же Internet Explorer и т.д. В общем пользователь начинает работу не на голом месте - у него есть свое собственное рабочее окружение. Именно это окружение пользователя, включая все вышеперечисленные настройки называется профилем пользователя. Положим, что в приведенном выше окне Вы еще ничего не настраивали - безусловно у пользователя в любом случае есть свой профиль. Давайте разберемся, где находится этот профиль, как пользователь его использует, а затем уж разберемся, каким образом администратор в окне Profiles может влиять на профиль пользователя своими настройками.

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

    В папке \Winnt есть папка \Profiles. Зайдем эту папку, мы видим папки с именами пользователей! Есть папка с именем Administrator и папка с именем нашего пользователя Tester. Именно в этих папках с именами пользователей, по умолчанию и хранятся локальные профили пользователей на каждом компьютере.

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

    В каждой из этих папок хранятся файлы, определяющие окружение пользователя, например: в папке Desktop хранятся иконки рабочего стола пользователя, в папке Favorites - закладки Internet Explorer пользователя, в папке History - история WEB-узлов, посещаемых пользователем, в папке Start Menu - ярлыки, отображаемые в меню Start и Start\Programs и т.д. Однако, огромное количество настроек пользователя не может храниться в виде ярлыков или отдельных файлов. Такие настройки, как: разрешение экрана, глубина цвета, обои на рабочем столе, информация о настройке различных программ и т.д. должны хранится в единой базе данных Windows NT, под названием Registry (Реестр). В папке \winnt\profiles\tester есть файл, который называется ntuser.dat. Этот файл представляет собой часть реестра Windows NT, специфическую для конкретного пользователя, в нашем случае, пользователя Tester. Когда пользователь Tester входит в систему, то файл ntuser.dat интегрируется в реестр Windows NT и характеризует личные настройки пользователя. Соответственно, профилем пользователя иногда называют всю папку profiles\tester, а иногда только файл ntuser.dat.

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

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

    Во-первых, необходимо решить вопрос о том, где должен храниться перемещаемый профиль. Так как к папке с профилем пользователя необходимо обращаться с любой машины домена, то совершенно очевидно, что папка, в которой будет храниться перемещаемый профиль пользователя должна быть предоставлена в общий сетевой доступ. Следовательно, локальный профиль пользователя, из которого Вы хотите сделать перемещаемый необходимо скопировать в некую папку и предоставить ее в общий доступ. Для этого в Windows NT предусмотрено специальное средство - окно User Profiles в приложении панели управления System. Итак, открываем панель управления,

    запускаем приложение System и переходим на страницу User Profiles.

    Мы видим, что на данном компьютере имеются два профиля - пользователя Administrator и пользователя Tester. Можем ли мы выбрать пользователя Tester, нажать кнопку Change Type и сделать профиль пользователя Tester перемещаемым? Давайте попробуем:

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

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

    В этом окне Вам необходимо указать ту СЕТЕВУЮ папку, в которую Вы скопируете профиль пользователя. Укажите путь в виде NetBIOS имени ресурса и нажмите OK - профиль пользователя Tester будет скопирован в указанную Вами общую папку. Разумеется перед тем, как копировать профиль в общую папку, следует ее (общую папку) создать.

    Теперь, когда Вы скопировали профиль пользователя Tester в общую папку, необходимо указать системе, что пользователь Tester будет пользоваться профилем, размещенным в этой общей папке. Для этого необходимо запустить User Manager for Domain, выбрать пользователя Tester, вызвать его свойства, нажать кнопку Profiles и указать путь к профилю пользователя. Для этого в поле User Profile Path (Путь к профилю пользователя) необходимо указать имя той общей папки, в которую Вы скопировали профиль пользователя. Разумеется, Вы должны указать путь к папке не локально, а виде имени NetBIOS, так как к данному ресурсу будет обращение по сети.

    После того, как Вы указали в User Manager for Domain, что пользователь должен пользоваться профилем из общей папки, остается только предложить пользователю войти в домен. При первом же входе пользователя Tester в домен его профиль станет перемещаемым. После того, как пользователь Tester хоть раз входил в домен, Вы можете убедиться, в том, что его профиль стал перемещаемым, вызвав приложение System панели управления и перейдя на страницу User Profiles.

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

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

    Есть и другой способ сделать профиль пользователя перемещаемым: при СОЗДАНИИ пользователя в User Manager for Domain сразу укажите в поле User Profile Path общую папку, в которой следует разместить перемещаемый профиль.

    Когда пользователь впервые войдет в систему, для него не будет создан локальный профиль на той машине, с которой он вошел в домен, а сразу будет создан перемещаемый профиль в общей папке, указанной в настройках User Manager for Domain.

    Помимо локального и перемещаемого профиля, администратор может назначить пользователю еще один тип профиля - обязательный. Что это такое? Обязательный (Mandatory) профиль это перемещаемый профиль в котором пользователь не может делать изменений, т.е. обязательный профиль жесткого назначается пользователю без права модификации. Пользователь, получивший обязательный профиль МОЖЕТ менять все, что касается его окружения: разрешение экрана, иконки на столе и в меню Start и т.д., но все сделанные в ходе сеанса работы изменения в профиле не будут записаны в обязательный профиль, но будут проигнорированы при выходе пользователя.

    Сделать перемещаемый профиль пользователя обязательным не сложно - необходимо в той общей папке, в которой находится перемещаемый профиль найти уже знакомый Вам файл ntuser.dat и изменить ему расширение на .man.

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

    Итак, мы рассмотрели с Вами все, что касается профиля пользователя, однако на пользователю можно с помощью User Manager for Domain сделать еще две настройки: сценарий и домашнюю папку. Давайте рассмотрим, что же это такое.

    Сценарий и домашняя папка

    В рассматриваемом нами окне, помимо настройки профиля пользователя есть еще две настройки. Рассмотрим первую из них - сценарий входа (Logon Script) пользователя.

    Что такое сценарий входа пользователя? Это программа, которая передается на компьютер пользователя и запускается автоматически при входе пользователя в домен.

    Положим, Вы как администратор, хотите, чтобы при входе пользователя Tester в домен на его компьютере запускался ... ну положим MS Word. Это можно осуществить с помощью сценариев входа. Но, разумеется, не стоит в качестве сценария (программы для запуска на компьютере пользователя) использовать файл winword.exe!!! Это бы означало, что Вы передаете на компьютер пользователя файл winword.exe размером 5Мбайт! Это совершенно бессмысленно - таким образом Вы во-первых перегружаете сеть, передавая по ней большие объемы информации, а во-вторых, сам по себе файл winword.exe это еще не полноценная программа, ей для запуска необходимы еще дополнительные библиотеки: итого таким образом Вам НЕ запустить Word на машине пользователя. Можно поступить иначе: если на компьютере пользователя установлен Word, то можно создать такой сценарий, который будет запускать Word прямо с машины пользователя. Для этого необходимо в качестве сценария пользователя создать запускаемый пакетный файл с расширением .bat, в котором указать строку вида

    Обратите внимание - в качестве сценария пользователя ему на компьютер при входе в домен будет передан .bat файл размером в несколько байт(!). После того, как этот файл будет передан на компьютер пользователя, он будет запущен на компьютере пользователя как обычный файл, и, следовательно, это приведет к запуску MS Word с локального диска пользователя! Строк в .bat - файле может быть много - Вы можете выполнить на компьютере пользователя при его входе в домен произвольное количество приложений или давать различные команды.

    Соответственно, если Вы хотите настроить пользователя на использование сценария входа, необходимо создать файл сценария (обычно с расширением .bat), указав в нем все программы и команды, которые Вы собираетесь запускать на компьютере пользователя при его входе в домен. Когда файл сценария создан, необходимо еще разместить его в нужном месте и настроить пользователя на использование созданного сценария. Настроить пользователя на использование некоторого сценария проще простого - в User Manager for Domain в свойствах пользователя необходимо нажать кнопку Profile и заполнить соответствующее поле:

    В данном примере пользователю Tester назначен сценарий входа с именем tester_scr.bat. Обратите внимание вот на какой факт:

    Когда Вы настраиваете профиль пользователя, Вас НЕ спрашивают как называется файл профиля (потому, что это предопределено, он называется ntuser.dat), но Вас спрашивают ГДЕ находится профиль.

    Когда Вы настраиваете сценарий пользователя, Вас спрашивают, как должен называться файл сценария. Но Вас НЕ спрашивают где он находится!!! Отсюда следует сделать вывод - сценарий пользователя ДОЛЖЕН находиться в строго определенном месте. И что это за место, в котором должны находиться сценарии пользователей в домене, мы сейчас и рассмотрим.

    При входе пользователя в домен, ему должен быть передан сценарий а также некоторые другие настройки. Соответственно передает пользователю сценарий и пр. тот контроллер домена, который проверял подлинность пользователя при входе его в домен. Следовательно, если в домене есть несколько контроллеров (один главный PDC и несколько резервных BDC), то на каждом из них должны быть копии сценариев пользователей. На каждом контроллере домена (главном и резервном) существует общая папка \Netlogon, создаваемая автоматически при установке контроллера домена.

    Именно из этой общей папки пользователь, входящий в домен, должен получить свой сценарий входа. Но так как проверить подлинность пользователя при входе может ЛЮБОЙ контроллер домена, то, следовательно, сценарии пользователей должны быть расположены в общих папках \Netlogon на ВСЕХ контроллерах домена!

    Общий ресурс \Netlogon отображает в общее использование папку \winnt\system32\repl\import\scripts, что видно из приведенных ниже рисунков. Вот папка \winnt\system32\repl\import\scripts

    как видите она предоставлена в общий доступ. Если Вы посмотрите с каким именем она предоставлена в общий доступ, то увидите, что с именем \Netlogon.

    Итак, подведем итог: сценарии пользователей должны быт помещены в папки ..\import\scripts КАЖДОГО контроллера домена! Разумеется, администратору не удобно вручную располагать сценарии всех пользователей в соответствующих папках на всех контроллерах домена: для решения этой задачи автоматически в Windows NT есть специальная служба - служба репликации. Мы рассмотрим ее позже, пока что Вам необходимо запомнить, что сценарии пользователя должны располагаться в ..\import\scripts каждого контроллера домена; иными словами сценарии должны быть помещены в общие папки \Netlogon каждого контроллера домена.

    После того, как Вы создали сценарий для пользователя, дайте ему некоторое имя, разместите в указанном выше месте (местах), а затем настройте пользователя в User Manager for Domain на использования сценария с данным именем и ... все!

    Нам осталось рассмотреть еще одну настройку пользователя - домашнюю папку. Здесь все очень просто - пусть пользователь сохраняет свой файл из некоторой программы, в какую папку по умолчанию будет предложено пользователю сохранить файл? Для того чтобы пользователь всегда при попытке сохранить файл из приложения получал одну и ту же папку в качестве места сохранения своих документов, необходимо выполнить настройку домашней папки пользователя. Домашняя папка пользователя может быть локальной - это значит, что она располагается на компьютере пользователя и будет всегда меняться в зависимости от того, на каком компьютере работает пользователь. Для того, чтобы сделать некоторую локальную папку домашней для данного пользователя, необходимо просто указать на эту папку в User Manager for Domain для данного пользователя:

    В данном примере пользователю Tester в качестве домашней назначена локальная папка d:\Tester_home_dir. Если пользователь Tester будет работать за разными компьютерами, то на каждом у него будет своя общая папка по адресу d:\Tester_home_dir. Разумеется было бы удобно настроить пользователю одну единственную домашнюю папку, которая бы не зависела от того, за каким компьютером пользователь работает. Вполне естественно, что такая домашняя папка должна быть сетевой - ведь иначе к ней нельзя было бы иметь доступ с любой машины. Соответственно, с помощью User Manager for Domain можно настроить пользователю в качестве домашней папки сетевую общую папку:

    В приведенном примере пользователю Tester в качестве домашней папки назначена общая папка Tester_HD, расположенная на компьютере Vmware. При настройке сетевой домашней папки есть одна особенность, относительно локальной домашней папки: при настройке сетевой домашней папки необходимо указать букву диска, с которой будет подключена домашняя папка. Фактически это означает, что когда пользователю назначена сетевая домашняя папка, то эта папка на компьютере пользователя будет представлена как "раздел жесткого диска :)", этой папке будет присвоена буква диска. Это связано с тем, что не все приложения могут напрямую обращаться к сетевым ресурсам, а ставя сетевому ресурсу в соответствие некоторое локальное имя (букву диска) Windows NT гарантирует, что любое приложение сможет обратиться к домашней папке пользователя.

    Вот теперь мы разобрались с Вами с настройками пользователя в User Manager for Domain, теперь Вы знаете, что такое профиль пользователя, сценарий входа и домашняя папка, знаете как создать и настроить пользователя в домене Windows NT. А мы пойдем дальше - у нас сегодня есть еще весьма важная тема - Права Пользователей.

    (0 Комментарии)
     
    << В начало < Предыдущая 1 2 3 4 5 6 7 8 9 10 Следующая > В конец >>

    Всего 37 - 45 из 128

     


    Реклама | Контакты | ©2005-2013 Алхимик