diff --git a/lib/vagrant/action/builtin/box_add.rb b/lib/vagrant/action/builtin/box_add.rb
index <HASH>..<HASH> 100644
--- a/lib/vagrant/action/builtin/box_add.rb
+++ b/lib/vagrant/action/builtin/box_add.rb
@@ -310,8 +310,11 @@ module Vagrant
           # by trying to parse JSON!
           uri = URI.parse(d.source)
           if uri.scheme == "file"
+            url = uri.path
+            url = uri.opaque if Util::Platform.windows?
+
             begin
-              File.open(uri.opaque, "r") do |f|
+              File.open(url, "r") do |f|
                 BoxMetadata.new(f)
               end
               return true
core: BoxAdd uses the proper path on Unix