2015-02-23 4 views
2

Я пытаюсь создать очень простой скрипт, который может удалить папку с помощью Invoke-Restmethod. Он отлично работает, если я пишу точное назначение папки, но если я хочу, чтобы добавить такие вещи, как $ ENV: имя_компьютер он просто возвращает пустойpowershell invoke-restmethod переменная окружения в url

Invoke-RestMethod -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Uri http://rm44:8081/conf.fapi-1.4.0/client/machine/$env:computername/ -Method DELETE 

Это возвращение будет http://rm44:8081/conf.fapi-1.4.0/client/machine// вместо моего реального имя_компьютера, что я понимаю, это строка , но он не читается как один.

+0

Имеет ли значение, если вы создаете 'Uri' первый и передать его в качестве переменной? – arco444

ответ

0

Как сказал arco444, вы должны определить URI в переменной и передать его в Invoke-RestMethod. Вы пытаетесь вставить переменную ($ env: имя_компьютера) в место, где разрешена только буквальная строка.

Этот код должен работать для вас:

$URI = "http://rm44:8081/conf.fapi-1.4.0/client/machine/$env:computername" 
Invoke-RestMethod -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Uri $URI -Method DELETE 
+0

, что делает трюк да, приветствия – cubus