2017-01-27 1 views
1

Я пишу сценарий шеф-повара для установки nvm для окон. Я только что была проблема, где система заканчивает с пользователем и переменной системы для NVM_HOMEИспользуйте Chef, чтобы исключить переменную пользовательской среды, но не системную переменную в Windows

env 'NVM_HOME' do action :delete end

выше будет предположительный удалить как

Как я могу изменить мой шеф сценарий, чтобы обеспечить системная переменная сохраняется, но пользовательская переменная удаляется, если она присутствует?

+0

Я думаю, для этого вам нужно будет создать небольшой скрипт в PowerShell, см. [здесь] (https://technet.microsoft.com/en-us/library/ff730964 .aspx) для начальной точки. – Tensibai

+0

Да, предполагал, что я могу выложить оболочку и сделать что-то вроде «REG delete HKCU \ Environment/F/V FOOBAR», но задавался вопросом, было ли это встроено, и я не понимал, как работают шеф-повара. –

+0

Предполагаю, что играю с SSID пользователя и 'registry_key 'ресурс это выполнимо, мне нужно будет нацелить KHU//... но это должно быть выполнимо. – Tensibai

ответ

1

Если переменная окружения пользователя пользователь работает поваром, а не другой пользователь, вы можете использовать registry_key ресурсов для обеспечения значения будут удалены (непроверенным пример):

registry_key "HKCU\\Environment" do 
    values [{:name => 'NVM_HOME'},{:name => 'NVM_SYMLINK'}] 
    action :delete 
end 

Если вы хотите изменить другой пользовательскую переменную вы можете посмотреть на this answer

+0

благодарит за помощь! –

0

ли это в конце концов

[ 'NVM_HOME', 'NVM_SYMLINK' ].each do |key| execute "ensure nvm has not added #{key} user variables" do command "REG delete HKCU\\Environment /F /V #{key}" only_if { registry_key_exists? "HKCU\\Environment\\#{key}" } end end

, вероятно, не лучший способ, но он побежал :)

+1

Будет работать только для пользователя, шеф-повар работает как – Tensibai

+0

yep, это единственный случай, в котором я нуждаюсь. –

+0

Тогда 'registry_key' [ресурс] (https://docs.chef.io/resource_registry_key.html) позволит избежать необходимости охраны. – Tensibai

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