Share via


Windows PowerShell

O Windows PowerShell 2.0 oferece scripts para o Active Directory — e não apenas para o Windows Server 2008

Don Jones

Às vezes, parece que a Microsoft pode tomar para sempre para produzir soluções que precisamos. Eu dizer, dezenas de milhares de funcionários em todo o mundo e ainda não “ Halo 4 ”? Mas às vezes, o tempo de espera é simplesmente porque ele está tentando produzir a solução de adequada — e no caso do Active Directory scripting e automação, a espera foi liquidado. Windows Server 2008 R2 vem com um módulo de Windows PowerShell 2.0 permite fantástica de script e automação para o Active Directory.

Requisitos do sistema: Truths & inglês

Os novos comandos do Active Directory para o Windows PowerShell exigem Windows PowerShell v2. Os comandos são distribuídos em uma de módulo, que é nova no 2.0, em vez de um PSSnapin. Módulos são mais fáceis de distribuir e Don requerem instalação ou registro — você simplesmente copie seus arquivos de pasta de módulos do shell e use Importação Module comando para trazer o módulo para o shell.

Windows PowerShell 2.0 é pré-instalado no Windows Server 2008 R2 e no Windows 7; deve estar disponível para Windows Server 2008, Windows Vista, Windows XP e Windows Server 2003, um dia no final do 2010 2009 ou antecipada. O módulo do Active Directory é fornecido com o Windows Server 2008 R2, mas é um mito que você deve ter cada controlador de domínio (DC) em seu ambiente executando esse sistema operacional para usar os comandos. Na verdade, os comandos funcionará bem em relação a um controlador de domínio do Windows Server 2003 e um controlador de domínio do Windows Server 2008 (não-R2) — fornecidas instaladas livre serviço do Active Directory Management Gateway (download de Microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=008940c6-0296-4597-be3e-1d24c1cf0dda) nesses controladores de domínio. O serviço de gateway é o que conversar o Active Directory comandos com e o serviço podem ser instalado no Windows Server 2003 R2 SP2 e posterior, ou Windows Server 2008 SP2 ou posterior.

Por enquanto, o computador cliente precisa estar executando o Windows 7 ou o Windows Server 2008 R2, pois não é possível no momento instalar o módulo do Active Directory em nada mais antigos.

Autenticação

Um dos bits difícil de trabalhar com o Active Directory é a autenticação: Talvez seja necessário gerenciar um domínio diferente a em fazer logon em, e você não pode ter relações de confiança entre todos os domínios que você deseja gerenciar. Em alguns casos, você pode ter direitos administrativos no outro domínio, mas somente através de uma conta de usuário alternativo. Windows PowerShell 2.0 não fornecem um mecanismo interno para manter essas credenciais diferentes e então, o pessoal que escreveu o módulo do Active Directory teve inventar uma técnica. Eles criados é tão elegante como é fácil: O módulo do Active Directory inclui um fornecedor PSDrive do Windows PowerShell, que significa que você pode “ mapear uma unidade ” para um domínio do Active Directory. Esse mapeamento de unidade contém suas credenciais e que permite que essas credenciais persistir durante a sessão do shell. Quando o módulo é carregado no shell, ele mapeia automaticamente seu domínio de logon, usando as credenciais você utilizou para executar o Windows PowerShell 2.0 (cuidado: Usuário se aplica a controle de conta, portanto, certifique-se de executar o shell “ como administrador ” se esse for o que você precisa fazer). Para mapear novos domínios, use o cmdlet Nova PSDrive , que suporta parâmetros da linha de comando para especificar credenciais.

Para alterar diretórios em um domínio mapeado, use familiar CD comando: CD AD:, por exemplo, altera o foco do shell para o domínio mapeado por padrão. A alteração para o domínio é fundamental, porque todos os comandos do Active Directory, por padrão, usará as credenciais de qualquer domínio que o shell está concentrado no momento. É um fato truque, permitindo que você execute comandos do Active Directory sem ter que especificar manualmente as credenciais cada vez. Necessidade de executar o mesmo comando em outro domínio? Apenas alterar a esse domínio, pressione a seta para cima algumas vezes para repetir o comando do Active Directory e pressione ENTER para executá-la novamente no novo domínio.

Os comandos do Active Directory Don forçar você a trabalhar dessa forma, no entanto: Cada um deles também suporta os parâmetros de linha de comando necessários para especificar as credenciais caso a caso. Portanto, você pode trabalhar qualquer maneira escolhida, uma flexibilidade que gosto muito. A equipe de produto poderia ter selecionado facilmente uma técnica ou de outra, e o fato de que eles incluído é uma confirmação de diversidade de seu público.

Os comandos

Tudo told, o módulo do Active Directory traz 82 novos comandos para o shell, desde o óbvio como New-ADUser até o mais esotérico, como instalação ADServiceAccount. Todos os cmdlets têm um prefixo de “ AD ”, que executa duas funções importantes. Primeiro, ele ajuda a diferenciar os cmdlets de outros semelhantes — New-ADUser cria um novo usuário do AD, não um novo usuário local ou um novo usuário do SQL Server ou alguma outra coisa. Segundo, o prefixo ajuda você a localizar todos os cmdlets facilmente: Executar o Ajuda * –AD * e você receberá uma lista de todos os 82.

Cada um dos comandos do Active Directory tem parâmetros de linha de comando — de muitas de parâmetros, em alguns casos. Novo ADUser, por exemplo, possui aproximadamente uma zillion parâmetros, permitindo que você defina atributos de diretório, como Office, organização e assim por diante — sem ter que memorizar os nomes de atributo de esquema interno (nunca lembro que “ sobrenome ” é “ sn ” no esquema).

Bons algo sobre os comandos é que eles protegem você contra acidentalmente fazendo algo burro. Por exemplo, se você executar o Get-ADUser , você pode esperar obter uma lista de todos os usuários no diretório. Em um domínio grande, que não somente poderia levar algum tempo, mas também pode criar um impacto considerável em seu controlador de domínio. Para evitar que, – Filter parâmetro do comando é obrigatório, forçá-lo a fornecer um ponto de partida (como uma unidade organizacional) ou algum outro critério. Obviamente, o comando não Parar que façam que ela seja você deseja fazer; usando – Filter * na verdade irá recuperar todos os usuários do diretório. Ele será não, no entanto, recuperar automaticamente cada atributo de desses usuários — porque, novamente, que pode arrastar um controlador de domínio para baixo para um pouco. Parâmetros adicionais, como –ResultPageSize , que permite que você especifique quantos resultados para trazer de uma vez e –Properties , que lhe permite especificam quais atributos para recuperar, ajudam a ajustar o equilíbrio entre desempenho e Obtendo as informações que você precisa.

É como você está trabalhando dificilmente

Eu fondly — bem, não realmente — Lembre-se de dias que levou linhas de duas dúzias de VBScript para criar e preencher um novo usuário no Active Directory. Agora é simples, como:

PS AD: \ > Novo aduser - nome DonJ - CannotChangePassword $ True - IT Department - DisplayName 'Don Jones' - EmployeeNumber 42 - GivenName Don - Office PasswordneverExpires 'Las Vegas' - Concentrated Technology Organization-$ True

Um truque: Depois de criar um novo usuário, convém fazer coisas adicionais com o objeto de usuário. Se você adicionar a opção de –PassThru ao comando, o objeto de usuário recém-criado é enviado para o pipeline, onde outro cmdlet pode aceitá-lo como entrada. Que permite que você faça algo assim:

Novo-ADUser... -Passagem | set ADAccountPassword... -Passagem | ativar ADAccount

Eu tiver reduzido a sintaxe, obviamente — “... ” é onde todos os parâmetros normais deve ir. Isso apenas ilustra como –passThru permite continuar a saída de objeto de usuário no pipeline para que outros cmdlets possa fazer algo com ele. Técnicas como este ativar linhas de incrivelmente eficiente — uma linha de comando, em vez de um script — que permitem trabalhar com muito mais eficiência.

Aguarde … IT obtém de SO muito melhor

Aqui está o ponto onde configurar shrine um pouco, direita no meu escritório para a equipe e gals que escreveram esses comandos do Active Directory: Descobri um pouco miracle chamado de vinculação do parâmetro de pipeline e essas pessoas-usado para efeito total. Executar o Ajuda New-ADUser –full e inicie olhando a Ajuda para cada parâmetro individual. Você observará que muitos deles — aqueles que correspondem aos atributos do Active Directory, como cidade e o Office e departamento — aceitar entrada do pipeline “ ByPropertyName. ” O que isso significa que é possível canalizar entrada para o cmdlet de New-ADUser e se a entrada contém propriedades que correspondem ao nome do parâmetro, em seguida, irá correspondam automaticamente. Portanto, se sua entrada contém uma propriedade de “ cidade ”, ele irá anexar próprio para o parâmetro de –City. Se a entrada possui uma propriedade do departamento de “ ”, ele será conectar próprio para o parâmetro de –Department.

Se você souber como funciona o cmdlet de Import-CSV, em seguida, você já está animado. Imagine um arquivo .csv que contém colunas como este:

"Nome", "Departamento", "Organização", "Cidade"

Cada linha no arquivo, em seguida, contém as informações para essas colunas. Você pode facilmente criar essa estrutura no Microsoft Office Excel, Microsoft Office Access, Microsoft SQL Server ou qualquer que seja e, em seguida, exportar dados para o formato CSV. Se fazer isso — Lembre-se coincidir com os nomes de coluna para os nomes de parâmetro de New-ADUser — poderá criar novos usuários como esta:

Importação de CSV c:\new-users.csv | New-ADUser

Pronto, isso é tudo o que você teria de digitar. Desde que o arquivo .csv contém todas as colunas — como nome, considerando o –Name parâmetro é obrigatório — depois New-ADUser magicamente irá conectar .csv colunas à direita os parâmetros à direita. Você pode importar uma centena novos usuários em segundos, de digitando menos de 50 caracteres. Se de que não completamente vender você no aprendizado do Windows PowerShell 2.0 … bem, acho deve realmente gosto clicando em “ Avançar, Avançar, concluir. ”

Gerenciamento do AD, concluído à direita

Um dos princípios básicos do Windows PowerShell é que os programadores devem escrever todos os de funcionalidade administrativa — como o gerenciamento do Active Directory — nos cmdlets do shell. Qualquer GUI basicamente deve ser um front-end para esses cmdlets. Microsoft Exchange Server 2007 apresentado esse padrão para nós e ela funciona muito bem – você obtém uma GUI grande e você sempre tem a opção de soltar na linha de comando se a interface gráfica do usuário não faz exatamente o que você precisa. Portanto, Microsoft reconfigurar Active Directory Users e computa dessa maneira?

Bem, não. Mas honestamente, isso é uma ferramenta muito antigos. No entanto, outro recurso inovador no Windows Server 2008 R2 é a Central de administração do Active Directory, uma nova GUI usada para gerenciar o Active Directory. E adivinhe o que está sob a administração central? Pronto, esses cmdlets do Active Directory. Isso significa que qualquer coisa fazer na GUI, você pode fazer a partir do shell — portanto, tudo o que é entediante ou repetitivas, você pode dedicada a um script de shell.

Assim, por fim, após quase uma década, Active Directory realmente chegou. Podemos agora tem a opção de gerenciamento simples e intuitivo por meio de uma interface gráfica do usuário ou de administração mais eficiente e automatizada por meio de uma linha de comando completo — que, francamente, não é que muito mais complicada de usar a GUI. Você Don precisa esperar por Windows Server 2008 R2, porque com o complemento à direita, os domínios do Windows Server 2003 podem aproveitar esse mesmo tipo de capacidade de gerenciamento.

 

Don Jones I s um país do mais experientes treinadores Windows PowerShell e gravadores. Blogs he semanal Windows PowerShell dicas em ConcentratedTech.com; Você pode também entrar em contato com ele ou perguntas que ele existe.