PowerShell 以其他用户身份打开共享文件夹
PowerShell Open a shared folder as another user
我在 PowerShell Studio 中为我们的 IT 服务台人员编写了一个 GUI。此 GUI 应用程序在 Citrix 中发布,并使用其管理员凭据打开。在应用程序中,有一个按钮可以查询用户主文件夹的活动目录。此文件夹只能使用为启动应用程序而提供的管理员凭据打开。
$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
时,它才会打开资源管理器或吐出错误。
感谢您的帮助。
自 Vista 起,Windows 不允许浏览器 window 由与当前用户不同的用户打开。 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$
我在 PowerShell Studio 中为我们的 IT 服务台人员编写了一个 GUI。此 GUI 应用程序在 Citrix 中发布,并使用其管理员凭据打开。在应用程序中,有一个按钮可以查询用户主文件夹的活动目录。此文件夹只能使用为启动应用程序而提供的管理员凭据打开。
$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
时,它才会打开资源管理器或吐出错误。
感谢您的帮助。
自 Vista 起,Windows 不允许浏览器 window 由与当前用户不同的用户打开。 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$