尝试写基于位置的打印脚本在VDI环境。登录到VDI会话后,网络打印机将根据客户端(瘦客户端/零客户端)IP(使用GPO)进行映射。基于该打印机名称(即'PRN-Printer1'),我需要将共享文件(\ Server \ share \ printer1)复制到本地c:\驱动器\位置。对于'PRN-Printer2',它将从\ Server \ share \ printer2等拷贝。PowerShell脚本来检查REG键和复制文件或文件夹的位置
我发现了几个脚本检查reg键和另一个拷贝文件,但我需要一些帮助把它全部一起。我不是脚本专家,但我可以通过一些内衬摸索我的方式。
任何援助将不胜感激!
这里是我迄今为止...
检查注册表(不知道这是要寻找一个关键的最好方式)
reg query HKLM\SYSTEM\CurrentControlSet\Control\Print\Printers /f "PRN-" /t REG_SZ /s /k | find "Name"
或
pushd;sl HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers; if(test-path PRN-){--???--}ELSE{"Printer does not exist"};popd
到复制文件:
ls "C:\drive\location" -r -i * | % {cp -force $_ ($_ -replace "c:\\drive\\location", "\\Server\share1")}
或
Copy-Item \\Server\Share\printer1\* C:\drive\location\
不知道如何把这个逻辑一起或检查这台打印机在注册表中,因为有可能是在VDI会话多台打印机的最佳方式。
基本上,我需要的东西做:
如果reg键(HCLM ..)是 'PRN-PRINTER1',那么文件(S)\服务器\共享\ PRINTER1复制到C:\还有驱动器\位置...检查PRINTER2 .... printer3 ...等...
请帮帮忙!谢谢!