Появился тут на вопрос на Технете, о том как же отфильтровать пользователей и подключить сетевой диск на основе состава в глобальных (или других Active Directory групп). Решил поделиться, вдруг кому-то понадобится ?
Param — тут заданы значения по умолчанию, т.е. если вы не укажите их, то они возьмутся отсюда. Запускать скрипт нужно так:
Check-UserMemberGroup.ps1 «G_VPN_Users» «\\srv015\pub» «i:» «bakanov» «password_for_user»
тут главное не пропускать последовательность всех передаваемых параметров. Или так
Check-UserMemberGroup.ps1 - TargetMapDisk «o:» -username «bakanov»
Тут можно передавать параметры в любой последовательности.
Пароль это необязательное поле, нужное только в том случае, если при подключении сетевого диска будут использовать имя и пароль, если же нет. То можете его никогда не использовать.
param ( $TargetGroup = "G_VPN_Users", $TargetShare ="\\srv015\pub", $TargetMapDisk = "i:", $username="bakanov", $pass) #подключаю оснастку Quest.ActiveRoles.ADManagement для вменяемой работы с AD Add-PSSnapin Quest.ActiveRoles.ADManagement #Получаю список всех групп $GetUserDetails=(Get-QADUser $username).Memberof #Гоняем по циклу группы foreach ($Group in $GetUserDetails) { #Получаем нормальное имя группы, а не FQDN $ShortGroupName = (Get-QADGroup $Group).name #Проверяем входит ли пользователь в состав нужной нам группы if ( $ShortGroupName -eq $TargetGroup) { (New-Object -com WScript.Network).MapNetworkDrive($TargetMapDisk, $TargetShare, $false, $username, $pass) write-host "Network share connected" } }


здравствуйте Денис. спасибо вам за ответы на форуме технета. я тоже там задавал воппросы связанные с подключением сетевого диска, но у меня задача проще была просто подключить сетевой диск. вы можете рассмотреть этот пример в своем блоге. я думаю многим было бы интересен этот вопрос.
вот можете ответить на следющие вопросы:
как подключить сетевой диск используя ip адрес, пароль и имя пользователя?
и чем отличается подключение сетевого диска, в том случае если компьютер (на котором находится сетевой диск, который нужно подключить) состоит в домене или же не состоит?
А как вы предлагаете подключать принтеры в зависимости от членства в группе
Заменить строки подключения сетевого диска на подключение сетевого принтера:
$net = new-Object -com WScript.Network
$net.AddWindowsPrinterConnection($PrinterPath)
А вообще советую посмотреть в сторону Group Policy Preferences
думаю для того что бы ваш рецепт заработал надо все же поставить снапин.
Add-PSSnapin Quest.ActiveRoles.ADManagement
без него скрипт обречен на ошибку.
Может я чего-то не понимаю, но 3-я строка ?!
в третьей строке у вас подключение оснастки от Quest-а, а это внешний продукт и для обеспечения результата он должен быть установлен на целевом ПК
Без QUEST`a с AD вообще работать довольно сложно. При этом они бесплатны.
Ну не совсем так.
Без него неудобно и не так легко.
Весь нужный функционал есть в голом PS-е.
Согласен, есть. Но так можно скзать, что и на ассемблере можно реализовать.
Зачем искать сложные пути, когда есть более легкие…
подскажите пж, что у меня не так, пытаюсь добавить пользователя с помощью скрипта, и на определенном моменте мне выдается ошибка:
Оснастка Quest.ActiveRoles.ADManagement Windows PowerShell не установлена на данном компьютере.
посмотрел в компоненты виндовс, — Модуль Active Directory для Windows — у меня стоит, взял вообще все галки там поставил, ошибка та же….
заинсталил, все гуд