我正在尝试使用PowershellconfigurationWindowsstream量计算机。 如果以pipe理员身份启动Powershell,我已经validation过我的脚本可以在本地机器上运行。 在stream浪者configuration过程中,stream浪者不能提升和运行剧本。
我知道Vagrant支持powershell脚本,那么需要怎么样才能将它们用于configuration? 我最初的想法是尝试让脚本启动一个新的pipe理员Powershell,但我觉得必须有一个更好的方法。
我正在尝试使用System.Net.WebClient
下载文件,并使用msiexec
进行安装。
Vagrantfile:
# -*- 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。 当我提出我的stream浪汉箱子时,我没有看到任何错误输出:
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
在c:\ tmp下的我的stream浪盒子里,有一个vagrant-shell.ps1
和vagrant-elevated-shell.ps1
,如果我手动执行vagrant生成的高架shell脚本作为它所安装的stream浪者用户。 所以,我觉得我的脚本是可以的。
如果我添加config.winrm.username
和config.winrm.password
我仍然无法提升运行脚本所需的权限。 事件查看器中也没有任何提示。
可能需要将privileged
标志添加到配置行:
config.vm.provision "shell", path: "scripts/provision.ps1", privileged: true
或者在你的情况下:
config.vm.provision "shell", :path => "#{PROVISION_WIN7_SCRIPT}", privileged: true