如何使用不同的凭据(没有得到提示输入用户名/密码)安全地启动Powershell.exe?
我已经花了更多时间在这个上,我想承认。我正在寻找将安静地使用的PowerShell代码使用不同的凭证启动一个新的PowerShell实例(在现有的PowerShell窗口中)。如何使用不同的凭据(没有得到提示输入用户名/密码)安全地启动Powershell.exe?
我能想出的最好的是非常笨重的......在屏幕上弹出两个不同的Powershell窗口,然后终于给我一个提示。显然,-NoNewWindow参数并不妨碍打开任何新的PowerShell窗口。
我非常笨重的代码:
Start-Process powershell.exe -Credential $DomainAdmin -WorkingDirectory $env:windir -NoNewWindow -ArgumentList "Start-Process powershell.exe -Verb runAs"
如果有一种方法来 “RunAs的” Powershell.exe从桌面快捷方式(并保存用户名/密码)。我也很高兴。下面是我试图制作的代码。然而,似乎是一直给我的错误的错误,“267:目录名称是无效的”不工作
批处理文件:
runas.exe /savecred /env /noprofile /user:MKA "powershell.exe -noprofile -command \"start-process -WorkingDirectory c:\temp powershell -verb RunAs\""
一个解决办法是大大赞赏。
要为用户MKA
运行,在Target
窗口中创建与此快捷方式:
C:\Windows\System32\runas.exe /User:MKA /savecred C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
要隐藏PowerShell控制台窗口中,您可以在脚本的顶部把这段代码被执行。这是我最喜欢的解决方案this StackOverflow post。
add-type -name win -member '[DllImport("user32.dll")] public static extern bool ShowWindow(int handle, int state);' -namespace native
[native.win]::ShowWindow(([System.Diagnostics.Process]::GetCurrentProcess() | Get-Process).MainWindowHandle, 0)
The post discusses other ways that may be more suitable for you.
非常感谢gms0ulman!伟大的工作解决方案。 – MKANET
我不认为运行方式运作的,你认为它的方式。如果启用UAC,'runas.exe'将以标准用户身份登录'%user%',而不是以管理员身份登录。我不确定你想做什么是可能的,因为我最近发布了一个非常类似的问题,并且无法得到有效的答案。 [链接到我的问题](https://stackoverflow.com/questions/43939765/batch-programming-a-runas-utility-creater) – GrumpyCrouton
我的问题将是你为什么要打开一个新的会议?如果是远程连接到新系统,那么你可以在相同的PowerShell窗口中运行它,并根据需要在脚本中调用每个会话。 – CrypticSage
没有远程处理。我其实是指Powershell的一个实例。类似于在PowerShell控制台窗口中键入“Powershell”,除了使用不同的用户上下文。 – MKANET