我正在玩在客户端网络上的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
凭据?
答案 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