我正尝试根据在AD网站和服务中find的位置来映射默认打印机。 我可以使用[System.DirectoryServices.ActiveDirectory.ActiveDirectorySite]::GetComputerSite().Name来获取计算机的位置[System.DirectoryServices.ActiveDirectory.ActiveDirectorySite]::GetComputerSite().Name
一旦我抓住了位置,我希望根据位置映射2台打印机。 我们10个站点中的每一个都有2个默认打印机,我想要“域用户”拥有。 然后任何安全组相关的通过我已经有的另一个脚本映射。
我已经有一个脚本,使用VB来做到这一点 – 但正如我目前正在学习PS,我想在这方面的一些指针。
提前致谢
我喜欢脚本,但这可能是一个你不需要脚本的东西。 我认为最正式和最标准的方法是通过共享来自“打印服务器”的打印机,无论是集中式还是打印服务器。 将打印服务器angular色添加到已经在执行其他function的另一台服务器(如文件服务器)上是很常见的做法。 文件和打印服务通常很好地结合在一起。 使用打印pipe理控制台安装,共享,部署和发布打印机。 如果将GPO链接到每个站点,然后使用这些站点链接的GPO部署打印机,则用户将在站点之间移动时获得打印机的更新列表。
设置用户的所有打印机,并根据网站切换deafult打印机,例如:
$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() } }