我一直在研究一个小的,可重新部署的.ps1脚本,该脚本将用于自动清除最终用户的打印后台处理程序和清除打印队列,并在将来的实现中提供更多功能。这是一些需要提升的命令的片段。
net stop spooler
Remove-Item C:\Windows\System32\spool\PRINTERS\* -Force
net start spooler
为了在最终用户的计算机上成功运行此脚本,我已经创建了一个Powershell凭据对象。 (如果管理员凭据是明文,则无关紧要,因为它是在后台通过RMM执行的。)
$password = "adminpassword" | ConvertTo-SecureString -asPlainText -Force
$username = "adminusername"
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
但是,当我尝试使用新创建的变量运行任何命令时,
net stop spooler -credential $credential
我得到某种复杂性,比如PS窗口只返回命令的语法而不是实际运行它。我对Powershell自动化相对缺乏经验;如果有人可以提供关于如何最好地将新制作的凭证对象集成到我的脚本中的解决方案,以便它将以完整的提升权限运行,那将非常感激。
答案 0 :(得分:0)
net stop
不是PowerShell命令,也不会获取凭据对象。
以下是如果您在本地提升运行时如何执行此操作的示例:
stop-service -Name spooler