我有一个应用程序可以在远程Windows机器上执行PowerShell脚本。 我正在尝试使用PowerShell脚本映射networking驱动器。 当在端点执行相同的脚本时,脚本可以正常工作,并能够映射networking驱动器。 但是,当从我的应用程序执行相同的脚本,映射完成一个networking驱动器,但作为断开的networking驱动器。
现在,我的观察:我发现我的应用程序正在执行与NT Authority\System帐户的脚本。 可能是因为这个原因,映射的networking驱动器对于特定的用户来说是一个可见的驱动器。 我对么!!?
现在,问题:我可以做什么来映射可供所有用户使用的networking驱动器? 或者我可以运行我的PowerShell脚本作为特定的用户,驱动器将被映射到该用户只?
无论如何,我已经尝试运行我的PowerShell脚本作为从我的应用程序使用Start-Process和Invoke-Command不同的用户,它会引发错误,说运行winrm quickconfig这也没有工作。
任何帮助? 感谢!
从NT Authority\System进行映射时,驱动器将显示为断开连接,但应起作用: 映射要由服务使用的networking驱动器
注:新创build的映射驱动器现在将显示给该系统的所有用户,但他们将看到它显示为“Disconnected Network Drive(Z :)”。 不要让这个名字欺骗你。 它可能声称是断开连接,但它将为大家工作。
此外,使用NT Authority\System映射驱动器是唯一的(虽然不是官方支持的)使networking驱动器可供所有用户使用的方法。
如果您想为特定用户映射驱动器,则必须以不同的用户身份运行PowerShell 。 但这也意味着你必须获得该用户的凭据。
这可以通过使用令牌操作来缓解,但这很棘手。 请参阅Invoke-TokenManipulation函数,它是ImpersonateUser参数。