runas.exe和Start-Process -Credential之间的区别

时间:2013-03-25 03:48:44

标签: powershell active-directory

我正在玩在客户端网络上的vpn上设置一些脚本。此客户端通常在其网络上分配ActiveDirectory帐户,并使用它来管理权限(例如,数据库)。好的,这是有道理的。

但这让我感到困惑:

start-process runas.exe "/user:CLIENTDOMAIN\George.Mauer /netonly W:\tools\LINQPad4\LINQPad.exe

查询密码并运行正常(我可以访问数据库)

但是

Start-Process W:\tools\LINQPad4\LINQPad.exe -Credential (Get-Credential)

并在弹出提示下输入CLIENTDOMAIN\George.Mauer和我的密码总是会导致错误

Start-Process : This command cannot be run due to the error: The user name or password is incorrect.

这些不一样吗? runas-Credential之间有什么区别?还有一个次要问题 - 我如何Start-Job使用我的CLIENTDOMAIN\George.Mauer凭据?

1 个答案:

答案 0 :(得分:4)

/netonly以当前用户身份运行流程,并且只与其他凭据建立网络连接。

Start-Process将使用其他凭据运行进程(及其所有网络连接)。使用/NETONLY无法实现Start-Process功能。

您必须p / invoke Win32 API才能实现/ NETONLY功能。如果您正在参加练习,那么您需要使用LOGON_NETCREDENTIALS_ONLY的API:

http://www.pinvoke.net/default.aspx/advapi32/createprocesswithlogonw.html

更多资源:

以另一个用户身份运行作业:

Start-Job -ScriptBlock {whoami} -Credential (get-credential) | Wait-Job | Receive-Job