2014-12-01 2 views
1

У меня есть сценарий, где мне нужно построить путь powershell как $RemotePath = '$($env:USERPROFILE)\Desktop\Shell.lnk'. Эта переменная передается на удаленную машину, где она должна быть выполнена. Удаленный компьютер получает это как строковую переменную. Как расширить строку для оценки $env:USERPROFILE?Развернуть строку Переменная сохраняется через одиночную цитату в Powershell

ответ

3

Expand the string на удаленной стороне:

$ExecutionContext.InvokeCommand.ExpandString($RemotePath) 
+0

Удивительный человек. Это работало как прелесть. –

2

Использование двойных кавычек. PowerShell не будет расширять переменные внутри строк с одной кавычкой.

+0

При использовании двойных кавычек переменная расширяется на локальной стороне, а не на удаленной стороне, как OP хочет. –

+0

Я вижу. Спасибо за правильный ответ и объяснение :) – ojk

+0

Yup. Как упоминал Ансгар, мое требование - оценить выражение на удаленной машине, так как я хочу значение UserProfile с удаленной машины. –

Смежные вопросы