I have several hundred Server 2008 R2 machines with static IPv4 addresses. I'd like to enable IPv6 on each interface, and then automatically assign IPv6 addresses to them based on their existing IPv4 addresses. Is there a good way to do this?

I wrote a power shell script that does this, but it uses "get-netadapter" and the like, so it will only work on my server 2012 R2 machines.

  • 1
    so, um... any reason not to use DHCPv6?
    – mfinni
    Apr 29 '14 at 17:53
  • Yeah, we can't in this environment, everything has to be statically addressed.
    – TonyD
    Apr 29 '14 at 18:22
  • You know about DHCP Reservations, right?
    – mfinni
    Apr 29 '14 at 19:23
  • What I'm getting at is that it's easier to do things like this from a central management tool, rather than from the hammers and nails of individual machine management.
    – mfinni
    Apr 29 '14 at 19:24
  • 1
    That would require configuration management of each machine, yes. Again, better centralized than individually.
    – mfinni
    Apr 29 '14 at 20:10

Well, there is more than one way to skin a cat.

Having said that, especially with IPv6, static assignments and manually hunting through the address space is exponentially more painful and involved than it is with IPv4, so I'll repeat the advice of using DHCP to do this. Assigning IP address is the whole reason DHCP exists, after all.

  • I tried installing powershell 4.0 on a few server 2008 r2 machines, but they still wont support the get-netadapter command. Other than that, this is all spot on, thank you so much. I will have to change the script to use the netsh command, and convince some folks here that DHCP is the way to go. Some people are just old school.
    – TonyD
    Apr 30 '14 at 19:04

There's an unsupported tool that can turn on IPv6 from the command line called NVSPbind. There are probably others as well. Or you could use netsh, which is probably the path of least resistance.

This article might help. It has a lot of handy netsh commands (netsh interface ipv6 isatap set state enabled, etc.), that you could include in a script.

Good luck!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.