Powershell para adicionar impressoras baseadas no site do AD

2

Estou tentando mapear uma impressora padrão com base no local encontrado em Serviços e sites do AD. Eu posso pegar a localização do computador usando [System.DirectoryServices.ActiveDirectory.ActiveDirectorySite]::GetComputerSite().Name

Depois de pegar o local, gostaria de mapear duas impressoras com base no local. Cada um dos nossos 10 sites tem duas impressoras padrão que eu gostaria que os "Usuários do Domínio" tivessem. Então, quaisquer itens relacionados ao grupo de segurança são mapeados por outro script que eu já possuo.

Já tenho um script em vigor usando o VB para fazer isso - mas como atualmente estou aprendendo o PS, gostaria de algumas dicas sobre isso.

Obrigado antecipadamente

    
por Chiller_chills 18.08.2015 / 11:49

2 respostas

1

Eu adoro scripts, mas isso é provavelmente uma coisa que você não precisa criar scripts. Acho que a maneira mais oficial e padrão de fazer isso é compartilhar as impressoras de um "servidor de impressão", seja um centralizado ou um servidor de impressão em cada site. É uma prática comum adicionar essa função de servidor de impressão em outro servidor que já esteja executando alguma outra função, como um servidor de arquivos. Os serviços de arquivo e impressão geralmente combinam bem. Use o console Gerenciamento de Impressão para instalar, compartilhar, implantar e publicar as impressoras. Se você vincular um GPO a cada site e, em seguida, implantar as impressoras usando esses GPOs vinculados ao site, os usuários receberão uma lista atualizada de impressoras conforme se movimentam entre os sites.

    
por 18.08.2015 / 15:25
0

Configurar todas as impressoras para os usuários e alternar a impressora de deafult com base no site, por exemplo:

$CurrentSite = [System.DirectoryServices.ActiveDirectory.ActiveDirectorySite]::GetComputerSite().Name

    Switch ($CurrentSite)
    {

    "SiteA" {
    $Printer = gwmi win32_printer -filter "Name='SiteA-PrinterName'"
    $Printer.SetDefaultPrinter()
    }

    "SiteB" {
    $Printer = gwmi win32_printer -filter "Name='SiteB-PrinterName'"
    $Printer.SetDefaultPrinter()
    }

    "SiteC" {
    $Printer = gwmi win32_printer -filter "Name='SiteC-PrinterName'"
    $Printer.SetDefaultPrinter()
    }

    "SiteD" {
    $Printer = gwmi win32_printer -filter "Name='SiteD-PrinterName'"
    $Printer.SetDefaultPrinter()
    }

}
    
por 18.08.2015 / 14:54