Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Свойство пользователя (http://forum.oszone.net/showthread.php?t=123569)

forsem 20-11-2008 21:29 958475

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

если user.ou = mosk тогда ........
если user.ou = sptb тогда ........

если возможно то кусок этого кода

pva 21-11-2008 19:10 959407

Код:

dim user;
set user = GetObject "winmgmts:Win32_UserAccount.Domain='MYCORP',Name='petrov'"
WScript.Echo "Caption      " & group.Caption
WScript.Echo "Description  " & group.Description
WScript.Echo "Domain        " & group.Domain
WScript.Echo "InstallDate  " & group.InstallDate
WScript.Echo "LocalAccount  " & group.LocalAccount
WScript.Echo "Name          " & group.Name
WScript.Echo "SID          " & group.SID
WScript.Echo "SIDType      " & group.SIDType
WScript.Echo "Status        " & group.Status

полезное сообщение? ;) уточни, что с пользователем делать собираешься

forsem 22-11-2008 02:37 959813

собираюсь диски подключать . так как имею в распорежении только один бат файл и ничего более )

pva 22-11-2008 20:20 960324

Если мапировать сетевые диски, тогда пользователь не нужен. Обычно делают net use. Если скриптом, то MapNetworkDrive. Всё это помещается в логин-скрипт у пользователя (третий ряд, вторая вкладка вроде в свойствая пользователя). И вообще это вопрос не по программированию, а по администрированию ;) сходи туда, там точнее описано

forsem 24-11-2008 08:58 961662

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

pva 24-11-2008 10:19 961718

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

forsem 24-11-2008 10:59 961748

потому что нельзя. :-\ долго писать.

pva 24-11-2008 11:29 961786

Логин-скрипт, который выясняет, в какой OU входит пользователь. Работает медленно и ненадёжно.
Вырезано из скрипта, полгода работал в моей конторе. Потом я переделал всё по-другому, до сих пор работает без проблем.
Но ещё раз повторюсь: быстрее и надёжнее работает если каждому давать свой батник.
Код:

/*****************************************************************
    основные переменные
*****************************************************************/

var shell      = WScript.CreateObject("WScript.Shell");
var logon_dir  = shell.expandEnvironmentStrings("%LOGONSERVER%\\netlogon\\");
var ldap_dom_dc = shell.expandEnvironmentStrings("DC=%userdomain%,DC=ru");
var ldap_user  = shell.expandEnvironmentStrings("CN=%username%");
var fileSystem  = new ActiveXObject("Scripting.fileSystemObject");

/*****************************************************************
    формируем полное имя (путь)
*****************************************************************/

function processUnitBranch(base, target)
{
    var groups = GetObject("LDAP://" + base + ldap_dom_dc);
    var items = new Enumerator(groups);

    for (; !items.atEnd(); items.moveNext())
    {
        with (items.item()) {
            // перебираем все группы, спрашиваем, входим ли мы в них
            // группы переаются в виде CN=Group

            if (target!=Name) {
                // проходимся по всем веткам
                if (processUnitBranch(name + "," + base, target)) return true;
            }
            else {
                // нашли
                user_path = target + "," + base;
                return true;
            }
        }
    }

    return false;
}

/*****************************************************************
  запуск скриптов
*****************************************************************/

 //GetObject ("LDAP://OU=MICROSOFT,DC=MICROSOFT,DC=RU");


if (processUnitBranch("OU=MICROSOFT,", ldap_user))
{
    // нашли, запускаем скрипт
    processTasks();
}

все имена доменов вымышленные (безопасность типа)

amel27 24-11-2008 12:03 961827

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

IfMember Domain\Group01 >nul
If ErrorLevel 1 (
        Net Use X: \\SERVER\Share1
        Net Use Y: \\SERVER\Share2
)
IfMember Domain\Group02 >nul
If ErrorLevel 1 (
        Net Use Z: \\SERVER\Share3
)

IfMember - утилита из ресурскита Windows 2003

pva 24-11-2008 13:08 961900

forsem, прислушайся к amel27, только искользуй
Код:

function isAtGroup(group1)
{
    return GetObject(shell.expandEnvironmentStrings("LDAP://CN=" + group1 + ",CN=BuiltIn," + ldap_dom_dc)).isMember(ldap_user);
}  // isAtGroup

ему специальных утилит не надо

forsem 24-11-2008 15:01 962032

Всё гениальное просто :) спасибо


Время: 00:02.

Время: 00:02.
© OSzone.net 2001-