通过GPO打印机部署的PowerShell启动脚本
问题描述:
我试图通过PowerShell脚本将打印机部署到组织中的PC。脚本本身通过组策略部署在机器启动时运行。当测试OU中的机器启动时,它会坐下来,请无限期地等待,脚本永远不会完成。如果您手动执行该脚本,该脚本将起作用我不会详细介绍它,但是通过组策略直接部署打印机不是一种选择。通过GPO打印机部署的PowerShell启动脚本
PowerShell脚本
# Print File Server Path
$printsrv = "\\Servername\Deploy\"
# Check FTP Server Status
$file = ($env:computername + '.csv')
$num = 0
IF ((Test-Path ($printsrv + $file)) -eq $false) {
Do {
Start-Sleep -Seconds 5
$num = $num + 1
} Until ((Test-Path ($printsrv + $file)) -eq $true -or $num -eq 3)
}
if ((Test-Path ($printsrv + $file)) -eq $false) {exit}
# Create Printers
$print = Import-Csv ($printsrv + $file)
$num = 0
do {
(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection($print.p_address[$num])
$num = $num + 1
} Until ($num -eq $print.Count)
#Set Default
$num = 0
Do {
$contains = $Print.Def_Bit[$num].Contains(1)
$Default = $print.P_Address[$num]
$num++
} until ($contains -eq $true -or $num -eq $print.Count)
(New-Object -ComObject WScript.Network).SetDefaultPrinter($Default)
Remove-Item -Path ($printsrv + $file)
CSV文件
#TYPE System.Data.DataRow
"P_Address","DEF_Bit"
"\\server\printer",""
"\\server\printer","True"
答
我想通了这个问题(新物体-ComObject WScript.Network).AddWindowsPrinterConnection是我RUNDLL32 printui.dll取代它的问题,PrintUIEntry/ga/n \ printername及其现在的工作
添加一些'写主机'来找到它的位置 – 2013-03-15 16:21:04