所以基本上我一直在PS远程自助脚本上工作,最初被认为很简单:重新启动后台处理程序服务,清除队列,并在默认打印机上打印测试页。然而,由于安全问题,到达那里并不那么容易。几个小时后,我能够让我的本地用户测试帐户接受我的域管理员的凭据。我认为一切都很好,直到我尝试在本地管理员的帐户上复制它,在这种情况下访问被拒绝。这很重要,因为我们将在上部署脚本的大部分帐户都是本地管理员。我怀疑它可能是一个UAC问题,但我不知道我应该怎么做来解决这个问题。以下是我目前正在使用的内容:
$v = [bool](([System.Security.Principal.WindowsIdentity]::GetCurrent()).groups -match "S-1-5-32-544")
If ($v = "False")
{
$password = "ElPassword" | ConvertTo-SecureString -asPlainText -Force
$username = "Domainname\Username"
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
invoke-command {Stop-Service spooler} -comp $env:ComputerName -cred $credential
Remove-Item C:\Windows\System32\spool\PRINTERS\* -Force
invoke-command {Start-Service spooler} -comp $env:ComputerName -cred $credential
$printer = Get-WmiObject -Query " SELECT * FROM Win32_Printer WHERE Default=$true"
$PrintTestPage = $printer.PrintTestPage() } Else
{ Stop-Service spooler
$printer = Get-WmiObject -Query " SELECT * FROM Win32_Printer WHERE Default=$true"
Start-Service spooler
$PrintTestPage = $printer.PrintTestPage() }
这样做的第一件事是检查当前的PS会话是否以admin身份运行;看到用户实际上没有看到PowerShell窗口或脚本,我们最近开始使用RMM工具,我仍然试图弄清楚该工具在什么条件下运行PS提升 - 文档说它运行时带有凭据登录用户,但似乎并非如此,因为他们的支持团队一小时告诉我,脚本没有在任何管理员帐户上执行此任务的原因是因为它没有升高。无论如何,在检查之后,它要么传递命令的凭证,要么不传递。此脚本似乎处理每个方案,但是运行PS非提升的本地管理员帐户的方案。在那种情况下,它只是拒绝我访问完全相同的信用卡允许我访问常规用户帐户的位置。我不知道如何处理这个问题,所以任何帮助都表示赞赏。