Заменить скрипт Kix на Powershell

Заменить скрипт Kix на Powershell

Мы хотим заменить наши текущие скрипты Kix скриптами Powershell, и мне было интересно, как проверить членство в группе для сопоставления сетевых дисков. Наш текущий скрипт kix в основном просто делает оператор if для каждой группы пользователей и проверяет, является ли пользователь частью этой группы, если да, он сопоставляет сетевой диск. Вот пример:

If InGroup("ADGROUP")
  Use m: "\\server\share"
EndIf

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

Если эта информация необходима, то все наши клиенты используют Windows Vista/7, и мы только сейчас переходим на AD 2008.

решение1

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

решение2

Я потратил целых ТРИ дня, пытаясь преобразовать наш существующий файл Kix (который я создал) в Powershell.

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

Команда "If" в Kixtart, я думаю, очень эффективна, потому что я использовал ее на многочисленных клиентских сайтах, и она РАБОТАЕТ. Простая и понятная, быстрая, команда легко читается системным администратором, который никогда раньше не использовал Kix. Я имею в виду, если вы сравните ту же команду сопоставления дисков в Kixtart с тем, что вам нужно написать, чтобы сделать то же самое в Powershell, это покажется слишком сложным.

Я написал об этом в своем блоге:http://thisishelpful.com/kix-login-script-remote-desktop-services-server-terminal-server.htmlЯ собираюсь обновить его, сравнив мой скрипт kix с моим измененным скриптом Powershell, и вы поймете, что я имею в виду.

Надеюсь, это поможет.

решение3

Что касается AD, вам, возможно, стоит взглянуть на командлеты AD от Quest.

решение4

Чтобы проверить членство в группе в PowerShell:

$wid=[System.Security.Principal.WindowsIdentity]::GetCurrent()
$prp=new-object System.Security.Principal.WindowsPrincipal($wid)
$adm=[System.Security.Principal.WindowsBuiltInRole]::Administrator
$IsAdmin=$prp.IsInRole($adm)

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

Проще всего, вероятно , сопоставить выполнение диска net use ...(PowerShell может легко вызывать исполняемые файлы консоли).

Связанный контент