gpt4 book ai didi

windows - 如何使用 Vagrant shell/path provisioner 配置 Windows 客户机?

转载 作者:可可西里 更新时间:2023-11-01 13:46:44 24 4
gpt4 key购买 nike

我正在尝试使用 Powershell 来配置 Windows Vagrant 机器。如果我以管理员身份启动 Powershell,我已经验证我的脚本可以在我的本地计算机上运行。在 Vagrant 配置过程中,vagrant 用户无法提升和运行脚本。

我知道 Vagrant 支持 powershell 脚本,那么使用它们进行配置需要做什么?我最初的想法是尝试让脚本启动一个新的 Administrator Powershell,但我觉得一定有更好的方法。

我正在尝试使用 System.Net.WebClient 下载文件并使用 msiexec 进行安装。

Vagrant 文件:

# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
PROVISION_WIN7_SCRIPT = "provision_win7.ps1"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.define "win7", primary: false do |win7|
config.vm.provision "shell", :path => "#{PROVISION_WIN7_SCRIPT}"
config.vm.box = "win7"
config.vm.hostname = "win7"
config.vm.communicator = "winrm"
config.vm.network :private_network, ip: "10.10.10.10"
config.vm.box_url = "https://atlas.hashicorp.com/designerror/boxes/windows-7/versions/1.0/providers/virtualbox.box"
config.vm.provider :virtualbox do |vb|
vb.gui = true
vb.customize ["modifyvm", :id, "--memory", 1024]
vb.customize ["modifyvm", :id, "--cpus", 1]
vb.customize ["modifyvm", :id, "--vram", "32"]
vb.customize ["modifyvm", :id, "--clipboard", "bidirectional"]
vb.customize ["setextradata", "global", "GUI/SuppressMessages", "all" ]
end
end
end

编辑:

我今天使用当时运行的软件再次尝试:Vagrant 1.6.3、Virtualbox 4.3.30。当我打开我的 vagrant box 时,我没有看到任何错误输出:

Bringing machine 'win7' up with 'virtualbox' provider...
==> win7: Importing base box 'designerror/windows-7'...
==> win7: Matching MAC address for NAT networking...
==> win7: Checking if box 'designerror/windows-7' is up to date...
==> win7: Setting the name of the VM: vagrant_win7_1453859492744_23074
==> win7: Clearing any previously set network interfaces...
==> win7: Preparing network interfaces based on configuration...
win7: Adapter 1: nat
win7: Adapter 2: hostonly
==> win7: Forwarding ports...
win7: 3389 => 3389 (adapter 1)
win7: 22 => 2222 (adapter 1)
win7: 5985 => 55985 (adapter 1)
==> win7: Running 'pre-boot' VM customizations...
==> win7: Booting VM...
==> win7: Waiting for machine to boot. This may take a few minutes...
==> win7: Machine booted and ready!
==> win7: Checking for guest additions in VM...
==> win7: Setting hostname...
==> win7: Configuring and enabling network interfaces...
==> win7: Mounting shared folders...
win7: /vagrant => /Users/dstark/Projects/itbestprac-pres/vagrant
==> win7: Running provisioner: shell...
win7: Running: c:\tmp\vagrant-shell.ps1

在我的 vagrant box 下 c:\tmp 有一个 vagrant-shell.ps1vagrant-elevated-shell.ps1 如果我手动执行 vagrant generated elevated shell ps 脚本作为它安装的 vagrant 用户。所以,我认为我的脚本没问题。

如果我添加 config.winrm.usernameconfig.winrm.password 我仍然无法提升运行脚本所需的权限。事件查看器中也没有任何信息。

最佳答案

可能您需要将 privileged 标志添加到配置行:

config.vm.provision "shell", path: "scripts/provision.ps1", privileged: true

或者在你的情况下:

config.vm.provision "shell", :path => "#{PROVISION_WIN7_SCRIPT}", privileged: true

关于windows - 如何使用 Vagrant shell/path provisioner 配置 Windows 客户机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29216975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com