也许有一种方法可以使用我找不到的Start-Process cmdlet 来完成它?我在StackOverflow上找到的其他相关Q/A就是这样,这和所有这些都提供了一个解决方案来使用自定义C#代码.我的问题是具体的,有没有直接的方法在PowerShell中执行此操作?即你是在一个升级的PS控制台,并希望以非管理员身份运行一个进程.
从我的Delphi程序写入Windows 7中的映射网络驱动器(P :)时遇到一些问题.例如,当我尝试时,ForceDirectories('P:\test\folder')我收到错误(找不到路径).
我尝试在代码(ForceDirectories('\\computername\share\test\folder'))中键入UNC路径并且可以正常工作.但是,ExpandUNCFileName('P:\')似乎没有用; 它返回'P:\'.在Windows XP上,ExpandUNCFileName('P:\')返回UNC路径.
如何在Windows 7上获取Delphi中的UNC路径,或以其他方式写入映射的网络驱动器?
经过进一步调查,就好像我在Windows中缺少某种初始化.我有另一个使用TcxShellComboBox(一个DevExpress组件)的应用程序(app2 ).导航到P:在组合框中,在app2中,调用ExpandUNCFileName在第一个应用程序中正常工作.与FileExistsP:下的on文件相同,在app2中导航到P:之前返回False,在计算机重启之后返回true.
我有一个以管理员身份运行的 PowerShell 脚本,以及它调用的另一个不需要以管理员身份运行的脚本。我以前曾经Start-Process -FilePath "powershell.exe" -Verb runas进行过提升,但是如何从已经以管理员身份运行的会话中“取消提升”?
psexec我想避免像这篇文章使用的第三方工具。非常适合寻找内置 PS 功能或 PSSnapin。
需要此“未提升”会话的特定过程是查看管理员安装的驱动器。根据这篇文章, UAC 可能是罪魁祸首。建议的解决方案运行如下:
New-ItemProperty -Path HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name EnableLinkedConnections -Value 1 -PropertyType DWord
Get-PSDrive但是,在提升的会话中运行时,驱动器仍然不会显示。