NET USE M: \\Server1\Letters /PERSISTENT:NO
Ключ /PERSISTENT :NO
в команде NET USE
нужен для создания временных подключений (не сохраняющихся после завершения сеанса пользователя). Если бы подключения были постоянными ( /PERSISTENT:YES
), то при следующем входе пользователя в систему возникла бы ошибка (повторное использование уже имеющегося подключения).
Наконец, папка C:\TEXT предоставляется в общее пользование командой NET SHARE
:
NET SHARE MyTxt=C:\TEXT
Интерактивный выбор программ автозагрузки
Как известно, в подменю Программы(Programs) стартового меню Windows имеется пункт Автозагрузка(Startup), в который можно поместить ярлыки тех программ, которые должны быть автоматически запущены при регистрации пользователя в системе. Однако в процессе загрузки своего профиля пользователь не имеет возможности запустить только какие-либо определенные программы из папки автозагрузки — можно либо запустить все программы, либо не запускать ни одной (для этого необходимо в процессе регистрации в системе удерживать нажатой клавишу ).
Мы напишем сценарий Logon.js, с помощью которого пользователь при входе сможет выбрать запускаемые программы; назначив этот сценарий в качестве сценария входа групповой политики, мы сделаем процесс автозагрузки приложений интерактивным.
Начнем мы с того, что создадим в каталоге %SystemDrive%\Documents and Settings\All Users \Главное меню, в котором хранятся ярлыки программ из стартового меню для всех пользователей, папку Выборочная автозагрузкаи поместим туда ярлыки для нужных приложений (рис. 11.17).
После этого ярлыки из обычной папки Автозагрузканужно убрать. Рассмотрим теперь алгоритм работы сценария входа Logon.js.
Вначале нужно определить путь к папке выборочной автозагрузки (переменная PathStartup
). Для этого мы воспользуемся объектом WshSpecialFolders
:
//Создаем объект WshShell
WshShell=WScript.CreateObject("Wscript.Shell");
//Создаем объект WshSpecialFolders
WshFldrs=WshShell.SpecialFolders;
//Определяем путь к папке выборочной автозагрузки
PathStartup=WshFldrs.item("AllUsersStartMenu")+"\\Выборочная автозагрузка\\";
Рис. 11.17.Новая папка Выборочная автозагрузка
Зная путь к нужной папке, мы формируем коллекцию всех файлов, которые находятся в ней (переменная Files
):
//Создаем объект FileSystemObject
FSO=WScript.CreateObject("Scripting.FileSystemObject");
//Создаем объект Folder для папки выборочной автозагрузки
Folder=FSO.GetFolder(PathStartup);
//Создаем коллекцию файлов каталога выборочной автозагрузки
Files=new Enumerator(Folder.Files);
После этого мы выводим на экран диалоговое окно с вопросом, нужно ли запустить программы из папки автозагрузки в пакетном режиме, т.е. все сразу (рис. 11.18).
Рис. 11.18.Выбор режима автозагрузки программ (пакетный или интерактивный)
В зависимости от нажатой в диалоговом окне кнопки мы присваиваем логическое значение переменной IsRunAll
, определяющей режим автозагрузки программ (если IsRunAll
равно false
, то для каждой программы будет выдаваться запрос на ее запуск, в противном случае все программы запускаются без предупреждения):
//Выводим запрос на запуск сразу всех программ
Res=WshShell.Popup("Запустить сразу все программы?", 0,
"Выборочная автозагрузка", vbQuestion+vbYesNo);
//Определяем, нажата ли кнопка "Да"
IsRunAll=(Res==vbYes);
Далее в цикле while
производится перебор всех файлов из коллекции Files
; переменная File
соответствует текущему файлу в коллекции:
//Цикл по всем файлам каталога выборочной автозагрузки
while (!Files.atEnd()) {
//Создаем объект File для текущего элемента коллекции
File=Files.item();
//Переходим к следующему файлу в коллекции
Files.moveNext();
}
Если ранее был выбран интерактивный режим запуска программ (переменная IsRunAll
равна false
), то мы выводим запрос на запуск текущего файла (рис. 11.19):
//Обнуляем переменную Res Res=0;
if (!IsRunAll) //Программы нужно запускать по одной
//Выводим запрос на запуск одной программы
Res=WshShell.Popup("Запустить "+File.Name+"?", 0, "Выборочная автозагрузка", vbQuestion+vbYesNo);
Читать дальше