更改服务帐户的默认打印机

时间:2018-06-21 07:05:39

标签: powershell server scheduled-tasks windows-server-2012 printers

这里有一个简短的问题。

当前,我们有一个可以在许多不同服务器上运行的应用程序。我们拥有一台服务器,其中有许多“工作人员”(预定任务-总共28个-每个任务都有自己的服务帐户),该服务器处理其他服务器上的应用程序的数据和信息。

在处理阶段中,这些服务帐户的默认打印机必须是PDF创建者。但是,由于GPO的缘故,默认打印机策略更改为普通打印机(因此无法在应用程序中创建特定的PDFS)。

是的,通常仅更改GPO是第一个解决方案,但是经过长时间的讨论,我们不允许这样做,因此我们需要一种每天更改默认打印机的方法,因此一切正常。

首先,我们有用于更改标准打印机的代码。

(Get-WmiObject -ComputerName . -Class Win32_Printer -Filter 
"Name='gCPdf'").SetDefaultPrinter()

此代码有效,但是仅当您使用该用户登录时才有效。我们不想每天都与所有用户一起登录这些服务器。无意义。服务帐户不会登录到服务器,但是它们是在后台运行这些“工作人员”的用户,然后应用程序从服务器获取配置文件信息(时间,日期,货币格式,打印机等)。服务帐户。

因此我们认为,让我们创建计划任务。计划的任务有效,但仅在登录服务器帐户时有效。我们在“计划任务”中尝试了“如果用户未登录则运行”选项,但是该选项不起作用。

我们还认为我们可以尝试使用“运行方式” skript来查看是否有帮助……除非用户实际上已经登录到服务器,否则仍然没有帮助。在此处查看skript:

$username = 'CORP\Username'
$password = 'Password'

$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential $username,       
$securePassword
Start-Process powershell.exe -Credential $credential -ArgumentList 
"C:\\standardprinter.ps1"

任何帮助实现这一目标的方法都将非常有用。主要问题是,是否可以更改用户的标准打印机,而无需直接在服务器上登录用户。

0 个答案:

没有答案