
Estamos buscando reemplazar nuestros scripts Kix actuales con scripts de Powershell y tenía curiosidad por saber cómo probar la membresía de un grupo para asignar unidades de red. Nuestro script kix actual básicamente simplemente hace una declaración if en cada grupo de usuarios y prueba si el usuario es parte de ese grupo; si lo es, asigna una unidad de red. Aquí hay un ejemplo:
If InGroup("ADGROUP")
Use m: "\\server\share"
EndIf
Dudo que esta sea la forma más eficiente de hacerlo, pero quería preguntar cómo puedo lograr lo mismo en PowerShell y qué recomiendan las personas sobre una forma adecuada de asignar unidades e impresoras para los usuarios en Active Directory.
Si se necesita esta información, todos nuestros clientes están en Windows Vista/7 y ahora estamos pasando a AD 2008.
Respuesta1
Usaría las preferencias de política de grupo para asignar unidades en AD.Consulte Uso de las preferencias de política de grupo para asignar unidades según la membresía del grupo.para detalles. También aliento la educación de los usuarios para mostrarles cómo agregar ubicaciones de red a sus bibliotecas.
Respuesta2
Pasé TRES días enteros intentando convertir nuestro archivo Kix existente (que creé) a Powershell.
Lo que encontré es que Powershell aún no está completamente listo para usarse como script de inicio de sesión. Quizás en la última versión, pero con Powershell 2.0 en este momento, descubrí que los comandos utilizados provienen principalmente de VBS.
Creo que el comando "Si" en Kixtart es muy efectivo porque lo he usado en numerosos sitios de clientes y FUNCIONA. Simple y llanamente, es rápido, el comando es fácil de leer para un administrador del sistema que nunca antes haya usado Kix. Quiero decir, si comparas el mismo comando de asignación de unidades en Kixtart con lo que tienes que escribir para hacer lo mismo en Powershell, parece demasiado complicado.
He escrito sobre ello en mi blog:http://thisishelpful.com/kix-login-script-remote-desktop-services-server-terminal-server.html. Voy a actualizarlo con una comparación de mi script kix con mi script Powershell modificado y verás a qué me refiero.
Espero que ayude.
Respuesta3
Para el lado de AD, es posible que desee consultar los cmdlets de AD de Quest.
Respuesta4
Para comprobar la pertenencia a un grupo en 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)
Las dos últimas líneas son el patrón a seguir para un grupo incorporado (hay unnúmero de estos). También hay una sobrecarga deIsInRole
eso requiere una cuerda, por ejemplo. "dominio\grupo".
Mapear la unidad en ejecución net use ...
probablemente sea lo más sencillo (PowerShell puede llamar fácilmente a los ejecutables de la consola).