Модераторы: bartram, Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подключение принтеров при входе пользователя 
:(
    Опции темы
Colloseum
Дата 2.4.2009, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



Назначаете черех ГПО на логон пользователя.
Может кому пригодится и/или еще лучше кто усовершенствует его.

Код

// Подключение сетевых принтеров

// Main Entry
ConnectPrinters();
// End of main

//************************************************************************************
function ConnectPrinters()
{
  var WshNetwork = new ActiveXObject("WScript.Network");
  var path = WshNetwork.ComputerName;
    var objSysInfo, strComputerDN, objComputer, pcADLocation;

    objSysInfo = new ActiveXObject("ADSystemInfo");
    
    try {
      strComputerDN = objSysInfo.ComputerName;
      objComputer = GetObject("LDAP://" + strComputerDN);
  }
  catch(e) {
      WriteLocalLog(path, " Не удалось получить данные о конфигурации от контроллера домена. Либо он отключен, либо к нему нет доступа.");
      return;
  }
  
    try {
      pcADLocation = objComputer.Get("Location");
    }
    catch (e) {
      WriteLocalLog(path, " Не указано местоположение компьютера в AD");
        return;
    }
    
    switch(pcADLocation) {
      case "ПервыйОтдел":
        AddPrinterIfNeeded("\\\\server1\\printer", true);
        AddPrinterIfNeeded("\\\\server2\\printer2", false);
      break;
        case "ВторойОтдел":
        AddPrinterIfNeeded("\\\\server2\\printer2", true);
          break;
        default:
          WriteLocalLog(path, "Местоположение ["+ objComputer.Get("Location")+ "] отсутствует в скрипте");
          break;
  }
}

//************************************************************************************
function AddPrinterIfNeeded(printerPath, IsDefault) {
  var WshNetwork = WScript.CreateObject("WScript.Network");
  var oPrinters = WshNetwork.EnumPrinterConnections();
  
  if (oPrinters.length==0) {
    //WScript.Echo("No printers At all");
    AddNetworkPrinter(printerPath, IsDefault)
    return;
  }
  
  for(i = 0; i < oPrinters.length; i += 2) {
    
    var currentPrinter = oPrinters.Item(i + 1);
    
    if (currentPrinter == printerPath) {
      //...
      //WScript.Echo("Present" + printerPath);
      return;
    }
  }
  //WScript.Echo("Need Installation" + printerPath);
  AddNetworkPrinter(printerPath, IsDefault);
}

//************************************************************************************
function AddNetworkPrinter(printerPath, IsDefault) {
  var WshNetwork = WScript.CreateObject("WScript.Network");
  var path = WshNetwork.ComputerName;
    
  try {
    WshNetwork.AddWindowsPrinterConnection(printerPath);
    
    if (IsDefault == true)
      WshNetwork.SetDefaultPrinter(printerPath);
  }
  catch (e) {
    WriteLocalLog(path, "Путь к принтеру указан неверно");
    return;
  }
}

//************************************************************************************
function WriteLocalLog(LocalPcName, WhatToWrite) {
  var d = new Date();
    var fso, tf;
    var ForAppending = 8;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    
    if (!fso.FolderExists("c:\\service"))
      fso.CreateFolder("c:\\service");
    
    tf = fso.OpenTextFile("c:\\service\\glenda." + LocalPcName, ForAppending, true);
    tf.Write ("\n" + d.toDateString()+ " " + d.toLocaleTimeString() + " :: " + WhatToWrite);
    tf.Close();
}


З.Ы. нАгами не пинать если что не так.
PM MAIL   Вверх
Akella
Дата 2.4.2009, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 73
Всего: 329



Colloseum, полезные скрипты в прикреплённой теме. Для Этого есть специальная тема вверху раздела Windows.

Добавлено через 53 секунды
Цитата(Colloseum @  2.4.2009,  13:54 Найти цитируемый пост)
Свернуть кодкод Javascript

почему JavaScript?
PM MAIL   Вверх
Colloseum
Дата 2.4.2009, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



Цитата

почему JavaScript? 

В смысле почему? В перечне подсветок JScript'a нету.

Цитата

Colloseum, полезные скрипты в прикреплённой теме. Для Этого есть специальная тема вверху раздела Windows.


А точно. Да вот я не знаю полезный ли он? smile 
Ну если нужно, то снесите тему и перенесите плиз.
PM MAIL   Вверх
Akella
Дата 3.4.2009, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 73
Всего: 329



уже smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Windows"
December
bartram
Akella

Запрещается!

1. Обсуждать взлом и делиться кряками

2. Способствовать созданию и распространению вирусов

  • Для бессмертных бородатых вопросов типа Win vs Nix есть специальный форум Религиозные Войны
  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • ВСЕГДА УКАЗЫВАЙТЕ ВЕРСИЮ ОС

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, December, bartram, Akella.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Windows | Следующая тема »


 




[ Время генерации скрипта: 0.0651 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.