Получите текущий путь UNC от локального пути в powershell

Принятие у меня есть сетевой диск M:\ кому: \\SomeServer\SomeShare и в powershell я нахожусь в папке M:\SomeFolder как я преобразовываю это в путь UNC, т.е. \\SomeServer\SomeShare\SomeFolder.

9
задан 26.08.2009, 14:05

2 ответа

Я довольно плохо знаком с 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, который Вы ищете.

14
ответ дан 07.12.2019, 13:09

Для любого заинтересованного сценарием 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, мне нравится хранить мой в корне моей домашней папки.

4
ответ дан 07.12.2019, 13:09

Теги

Похожие вопросы