Принятие у меня есть сетевой диск M:\
кому: \\SomeServer\SomeShare
и в powershell я нахожусь в папке M:\SomeFolder
как я преобразовываю это в путь UNC, т.е. \\SomeServer\SomeShare\SomeFolder
.
Я довольно плохо знаком с PowerShell, таким образом, код ниже может быть низким качеством. Однако это должно получить информацию, которую Вы хотите:
$currentDirectory = Get-Location
$currentDrive = Split-Path -qualifier $currentDirectory.Path
$logicalDisk = Gwmi Win32_LogicalDisk -filter "DriveType = 4 AND DeviceID = '$currentDrive'"
$uncPath = $currentDirectory.Path.Replace($currentDrive, $logicalDisk.ProviderName)
$uncPath должен содержать путь UNC, который Вы ищете.
Для любого заинтересованного сценарием RunAs для StExBar это:
param([string] $username)
$path = Get-Location
$currentDrive = Split-Path -qualifier $path
$logicalDisk = Get-WmiObject Win32_LogicalDisk -filter "DeviceID = '$currentDrive'"
if ($logicalDisk.DriveType -eq 4)
{
$path = Join-Path $logicalDisk.ProviderName (Split-Path -NoQualifier $path)
}
$systemroot = [System.Environment]::SystemDirectory
&"$systemroot\runas.exe" /user:$username "$systemroot\windowspowershell\v1.0\powershell.exe -NoExit -Command \`" &{ Set-Location '$path' }\`""
И командная строка в StExBar:
C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -Command "&{ &'%homedrive%%homepath%\RunAs.ps1' 'domain\username' }"
Замените путь тем, где когда-либо Вы сохраняете сценарий RunAs.ps1, мне нравится хранить мой в корне моей домашней папки.