通过向Orca

时间:2016-05-30 10:05:46

标签: powershell windows-installer orca

我必须使用GPO部署虚拟打印机软件。发布者提供的MSI安装程序工作正常,但在安装过程中没有将虚拟打印机设置为默认值的选项。

所以我创建了这个“简单”的PowerShell脚本来更改默认打印机。

## Get the Printer with WMI
$printer = Get-WmiObject -Query "Select * from Win32_Printer Where Name = 'GreenPrint'"

## Set printer as default printer
$printer.SetDefaultPrinter()

安装完成后,手动执行此脚本,但是 有没有办法通过使用转换文件(.mst)将此脚本包含在MSI的安装过程中。

感谢您的回答

使用Powershell进行完整安装

根据NiklasSjögren的提议,我创建了一个Powershell脚本,它安装MSI包,然后将打印机设置为默认值。由于GPO不提供仅在登录时运行一次脚本的选项,因此我使用注册密钥来检查是否需要处理。

我认为你最好在工作站的初始配置中使用这种脚本而不是使用logonscript!

## Custom variables

$CompanyName = ‘YourCompany’
$InstallDir = "Path\Installer.msi"

## Set registry information for the local machine

$CompanyRegPath = "HKLM:\Software\"+$CompanyName

if (Test-Path $CompanyRegPath)
  {}
else
  {New-Item -path "HKLM:\Software\" -name $CompanyName}

if (Test-Path $CompanyRegPath'\Green Print')
  {}
else
  {New-Item -path $CompanyRegPath -name "Green Print"}

if ((Get-ItemProperty $CompanyRegPath'\Green Print').IsDeployed -eq $null)
  {Set-ItemProperty $CompanyRegPath'\Green Print' -name IsDeployed -Value 0}

#Retrieve registry information   
$IsDeployed = (Get-ItemProperty $CompanyRegPath'\Green Print').IsDeployed

if ($IsDeployed -ne 0)
  {}  
else
  {  
  ## Install the virtual printer software
  Start-Process $InstallDir /qn -Wait

  ## Get the Printer object with WMI
  $printer = Get-WmiObject -Query "Select * from Win32_Printer Where Name = 'GreenPrint'"

  ## Set the Printer object as default printer
  $printer.SetDefaultPrinter()

  #Update the IsDeployed in registry
  Set-ItemProperty $CompanyRegPath’\Green Print’ -name IsDeployed -Value -1
  }

0 个答案:

没有答案