我正在尝试根据在 AD 站点和服务中找到的位置映射默认打印机。我可以使用以下方法获取计算机的位置[System.DirectoryServices.ActiveDirectory.ActiveDirectorySite]::GetComputerSite().Name
一旦我获取了位置,我希望它根据位置映射 2 台打印机。我们的 10 个站点中的每一个都有 2 台默认打印机,我希望“域用户”拥有这些打印机。然后,任何与安全组相关的打印机都通过我已有的另一个脚本进行映射。
我已经有一个使用 VB 的脚本来执行此操作 - 但由于我目前正在学习 PS,所以我希望得到一些指点。
提前致谢
答案1
答案2
为用户设置所有打印机,并根据站点切换默认打印机,例如:
$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()
}
}