2015-05-21 49 views
0

我在PowerShell Studio中为我们的IT服务台人员编写了一个GUI。此GUI应用程序在Citrix中发布并使用其管理员凭据打开。在应用程序中有一个按钮来查询用户的主文件夹的活动目录。此文件夹只能使用提供的管理员凭据打开才能启动应用程序。PowerShell作为其他用户打开共享文件夹

$linklabelTSHomeFolder_Click = { 
    Start-Process $linklabelTSHomeFolder.Text 
} 

这将打开资源管理器,并说该位置不能被发现。但是,我怀疑,打开资源管理器打开自己目前的凭证,而不是管理员的。

当提供正确的凭据测试我不能让资源管理器打开目标股:

Start-Process -FilePath 'C:\Windows\explorer.exe' -ArgumentList $linklabelTSHomeFolder.Text -Credential $Credentials 
Start-Process -FilePath 'C:\Windows\explorer.exe' -ArgumentList $linklabelTSHomeFolder.Text -Credential $Credentials -Verb runas 
Start-Process -FilePath 'C:\Windows\explorer.exe' -ArgumentList $linklabelTSHomeFolder.Text -Credential $Credentials -Verb runas -LoadUserProfile -WorkingDirectory 'C:\Windows\System32' 

我已经试过所有的一切,但我不能把它打开。

即使我尝试在PowerShell ISE的本地工作站上使用我的普通凭据运行它,并提供CmdLet管理员凭据,但它不会吐出错误,也不会显示资源管理器。只有当我删除零件-Credential $Credentials它确实打开资源管理器或吐出一个错误。

谢谢你的帮助。

回答

1

由于Vista,Windows不允许用不同于当前用户的用户打开资源管理器窗口。 runas功能已被删除。有关更多信息,请参见here

Shift +右键单击和Run as different user(仅GUI)仍然有效。

然而,有一种变通方法来访问与其他用户共享,但涉及与注册表搞乱:

$regKey ="HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\advanced" 
$user = $env:username 
$domain = $env:userdomain 
Set-ItemProperty -Path $regKey -Name SeparateProcess -Value 1 
net use \\$args\c$ /user:$domain\$user 
explorer.exe \\$args\c$ 
+0

谢谢Rubanov,在这种情况下,我就用另一[工具](https://开头explorerplusplus.com/)打开分享。 – DarkLite1

相关问题