远程运行 RUNDLL32.EXE PRINTUI.DLL,PrintUIEntry 进行打印机设置更新

问题描述 投票:0回答:1

我在 2 台 Windows 2016 服务器上拥有同一帐户的管理员。 Server1 有此文件夹文件:'E:\Temp\ZEBRA_1.dat'

如果我在 Server1 上打开 PowerShell(v4 或 v5)(以管理员身份)并运行这行代码,一切都会按预期工作(打印机设置通过 .dat 文件更新):

start-process -Verb runas -filepath "C:\Windows\System32\RUNDLL32.EXE"  -argumentlist "PRINTUI.DLL,PrintUIEntry /Sr /n `"ZEBRA_1`" /a `"E:\Temp\ZEBRA_1.dat`" 2 7 c d g u"

如果我随后在 Server2 上打开 PowerShell(以管理员身份)并输入包含在 Invoke-Command 中的相同代码,则代码看起来会运行(没有错误),但是当我检查 Server1 时 - 没有进行任何更改:

Invoke-Command -ComputerName 'Server1' -ScriptBlock {
   start-process -Verb runas -filepath "C:\Windows\System32\RUNDLL32.EXE"  -argumentlist "PRINTUI.DLL,PrintUIEntry /Sr /n `"ZEBRA_1`" /a `"E:\Temp\20231013135820\ZEBRA_1.dat`" 2 7 c d g u"
}

我尝试将

Start-process
块包裹在
New-PSSession
到 Server1 中,但这也不起作用。在
-Credential
arg 中使用我的管理员凭据也不适用于 Invoke-Command。

如果我搞乱了“s,那么我会收到错误或没有响应,如果我将文件放在 Server2 上并使用 UNC 路径,它仍然无法在 Server2 上工作(但它仍然可以在 Server1 上工作)。

我认为这是与 RunAs Admin 相关的问题,因为如果该命令没有在 Server1 上以管理员身份运行,它看起来好像也没有执行任何操作。

如何使用该 .DAT 文件远程更新打印机?

powershell window
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.