Substitua o script Kix pelo Powershell

Substitua o script Kix pelo Powershell

Estamos procurando substituir nossos scripts Kix atuais por scripts Powershell e estou curioso para saber como testar a participação em grupos para mapear unidades de rede. Nosso script kix atual basicamente faz uma instrução if em cada grupo de usuários e testa se o usuário faz parte desse grupo; se for, ele mapeia uma unidade de rede. Aqui está um exemplo:

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

Duvido que essa seja a maneira mais eficiente de fazer isso, mas gostaria de perguntar como posso realizar a mesma coisa no PowerShell e o que as pessoas recomendam para mapear unidades e impressoras adequadamente para usuários no Active Directory.

Se esta informação for necessária, todos os nossos clientes estão no Windows Vista/7 e agora estamos migrando para o AD 2008.

Responder1

Eu usaria as preferências de política de grupo para mapear unidades no AD.Consulte Usando preferências de política de grupo para mapear unidades com base na associação ao grupopara detalhes. Também incentivo a educação dos usuários mostrando-lhes como adicionar locais de rede às suas bibliotecas.

Responder2

Passei TRÊS dias inteiros tentando converter nosso arquivo Kix existente (que criei) para Powershell.

O que descobri é que o Powershell ainda não está totalmente pronto para ser usado como script de login. Talvez na versão mais recente, mas com o Powershell 2.0 agora, descobri que os comandos usados ​​são portados principalmente do VBS.

Acho que o comando "If" no Kixtart é muito eficaz porque o usei em vários sites de clientes e FUNCIONA. Puro e simples, é rápido e o comando é fácil de ler para um administrador de sistema que nunca usou o Kix antes. Quero dizer, se você comparar o mesmo comando de mapeamento de unidade no Kixtart com o que você precisa escrever para fazer a mesma coisa no Powershell, parece muito complicado.

Escrevi sobre isso no meu blog:http://thisishelpful.com/kix-login-script-remote-desktop-services-server-terminal-server.html. Vou atualizá-lo com uma comparação do meu script kix com meu script Powershell modificado e você verá o que quero dizer.

Espero que ajude.

Responder3

Para o lado do AD, você pode querer dar uma olhada nos cmdlets AD da Quest.

Responder4

Para verificar a associação ao grupo no 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)

As duas últimas linhas são o padrão a seguir para um grupo embutido (há umnúmero destes). Há também uma sobrecarga deIsInRoleisso leva uma string, por exemplo. "domínio\grupo".

Mapear a execução da unidade net use ...provavelmente é mais simples (o PowerShell pode facilmente chamar executáveis ​​do console).

informação relacionada