【发布时间】:2017-09-20 20:44:08
【问题描述】:
我想在每台机器上部署我们从打印服务器共享的网络打印机到 Windows 10 PC。
目前我们使用 Kix 脚本和 ini 文件执行此操作,但我想将其移动到 PowerShell 并将其部署为具有组策略的启动/登录脚本。必须使用 PowerShell 而不是纯粹的 GPO 进行部署,使用脚本可以更灵活地部署到单个机器上。
我编写了一个 PS 脚本并使用一个包含 PC 和打印机的 CSV 文件进行映射,但它的接缝完全错误。有没有更好的方法来部署打印机?
这是我的 CSV,“True”是将打印机设置为默认值:
#TYPE Selected.System.Management.ManagementObject.Data.DataRow
Name
PC0001
\\SV0002\PR0001, True
\\SV0002\PR00002
Name
PC0002
\\SV0002\PR0001, True
\\SV0002\PR00002
和 PS 脚本:
Get–WMIObject Win32_Printer | where{$_.Network -eq ‘true‘} | foreach{$_.delete()}
$Printers=IMPORT-CSV \\server\$env:username\printers.csv
FOREACH ($Printer in $Printers) {
Invoke-Expression 'rundll32 printui.dll PrintUIEntry /in /q /n $($Printer.Name)'
}
我编辑了 csv 文件,现在看起来像这样:
Client;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;Default
PC0001;\\SV0001\PR0001;\\SV0001\PR0002;;;;;;;;;;;;;;pr_01
PC0002;\\SV0001\PR0001;\\SV0001\PR0002;\\SV0001\PR0003;;;;;;;;;;;;;pr_03
我们使用 Excel 完成了这项工作,因此更易于编辑并将其另存为 csv。
同样位于哪里,我们将其更改为 \Server\Netlogon\Subfolder\Printers.csv,因此变量也更改为:
$Printers=IMPORT-CSV \\server\Netlogon\Subfolder\printers.csv
但现在我觉得整个剧本都错了?
【问题讨论】:
-
您列为 csv 的内容不是 csv 文件。你能发布一个带有标题的csv文件的例子吗?
-
嗨詹姆斯。是的,我现在喜欢它。我创建的新版本是这样的:
codeClient;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;Default PC0001;\\SV0001 \PR0001;\\SV0001\PR0002;;;;;;;;;;;;;1 PC0002;\\SV0001\PR0001;\\SV0001\PR0002;\\SV0001\PR0003;;;;;;;; ;;;;;3code -
最好编辑您的问题,因为 cmets 中的格式是有限的。编辑链接就在您的问题标签下方。
-
嗨詹姆斯。我刚刚编辑了我的问题并对我的脚本进行了一些更改。看看吧。
标签: windows powershell csv printing