如何使用不同的凭据安静启动Powershell.exe(不提示输入用户名/密码)?

时间:2017-06-16 20:24:57

标签: windows powershell batch-file

我花了更多时间在这上面,我想承认。我正在寻找使用不同凭据 静静地 启动新PowerShell实例(在现有PowerShell窗口中)的powershell代码。

我能想到的最好的是非常笨重...在我的屏幕上弹出两个不同的Powershell Windows,最后给我一个提示。显然,-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\""

非常感谢解决方案。

1 个答案:

答案 0 :(得分:1)

要以用户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.