1 00:00:01,040 --> 00:00:06,440 And let me take a look here, so it's event ID 71. 2 00:00:06,440 --> 00:00:12,940 Okay, the migration wizard couldn't access the print$ share on mem1. 3 00:00:12,940 --> 00:00:13,610 Yeah, okay. 4 00:00:13,610 --> 00:00:18,340 So we've got some additional work to do to finish this. 5 00:00:18,340 --> 00:00:20,650 Yeah, so we're going to have to restart that again. 6 00:00:20,650 --> 00:00:23,990 We probably could get this done from the remote machine. 7 00:00:23,990 --> 00:00:25,730 I'm really curious about this, 8 00:00:25,730 --> 00:00:31,110 so let's go ahead and create mstsc to open up the Remote Desktop connection. 9 00:00:31,110 --> 00:00:33,200 Let's do a mem1. 10 00:00:33,200 --> 00:00:38,140 I'm going to do a mem1.timw.info. 11 00:00:38,140 --> 00:00:43,390 So let's sign into that remote machine using my current credentials, 12 00:00:43,390 --> 00:00:50,370 and I'm going to open up the Print Management console from the Start menu. 13 00:00:50,370 --> 00:00:54,140 And again, let's do a Migrate Printers. 14 00:00:54,140 --> 00:00:57,490 We're going to do an import, select the file. 15 00:00:57,490 --> 00:01:01,920 Now I did through the magic of video editing copy that printer's folder 16 00:01:01,920 --> 00:01:05,240 locally just so we don't have to go over the network. 17 00:01:05,240 --> 00:01:10,310 And again, I'm just specifying all the defaults, keep existing list printers. 18 00:01:10,310 --> 00:01:12,000 I'm going to override existing. 19 00:01:12,000 --> 00:01:14,940 I'm going to list all printers. 20 00:01:14,940 --> 00:01:16,810 Looks like we're getting somewhere here. 21 00:01:16,810 --> 00:01:19,840 Sometimes, you just have to work locally, don't you? 22 00:01:19,840 --> 00:01:21,470 Good, completed with no errors. 23 00:01:21,470 --> 00:01:23,140 That's what we want to see. 24 00:01:23,140 --> 00:01:26,090 So if I expand the Print Servers and go to Printers, 25 00:01:26,090 --> 00:01:29,860 we can see that full queue has been successfully migrated. 26 00:01:29,860 --> 00:01:33,340 Good, so now let's close out of our mem1 session, 27 00:01:33,340 --> 00:01:39,040 and we'll come back to our old host, and let's launch directly into DHCP. 28 00:01:39,040 --> 00:01:42,220 So to review, I've got the DHCP console up here. 29 00:01:42,220 --> 00:01:45,700 So, the way I've got the win2019 box set up is, 30 00:01:45,700 --> 00:01:49,200 first of all, we can verify that it is authorized. 31 00:01:49,200 --> 00:01:53,940 That is the server is an authorized DHCP server in my domain. 32 00:01:53,940 --> 00:01:55,490 I'm not doing IPv6, 33 00:01:55,490 --> 00:02:00,170 but I do have an activated scope in my IPv4 bucket 34 00:02:00,170 --> 00:02:02,250 where I've got an address pool. 35 00:02:02,250 --> 00:02:07,230 I've got, let's see, it looks like one active lease, no reservations. 36 00:02:07,230 --> 00:02:09,030 I do have some scope options. 37 00:02:09,030 --> 00:02:11,540 I'm distributing my default gateway, 38 00:02:11,540 --> 00:02:15,400 and DNS Servers and Domain Name as properties, 39 00:02:15,400 --> 00:02:16,430 and that's great. 40 00:02:16,430 --> 00:02:20,900 Notice here, we've got in the graphical user interface Backup and Restore. 41 00:02:20,900 --> 00:02:22,610 So that would be a graphical approach, 42 00:02:22,610 --> 00:02:25,220 but we're going to use the server migration tools. 43 00:02:25,220 --> 00:02:27,140 Let's go back to PowerShell, 44 00:02:27,140 --> 00:02:29,480 and let's take a look here at a couple other options. 45 00:02:29,480 --> 00:02:34,120 Let me exit my remote session, clear the terminal, and let's look here. 46 00:02:34,120 --> 00:02:38,040 So in Migrate DHCP, it looks like I've done a couple things. 47 00:02:38,040 --> 00:02:42,430 I'm showing you the backup and restore, but in PowerShell, you see? 48 00:02:42,430 --> 00:02:47,240 So we could do Export‑DhcpServer to bring out everything, 49 00:02:47,240 --> 00:02:52,550 and you would run something like Get‑Help examples to view examples 50 00:02:52,550 --> 00:02:55,780 in the online help for this command because that might surface 51 00:02:55,780 --> 00:02:58,440 parameters that you didn't know existed, 52 00:02:58,440 --> 00:03:01,140 and we can import on the destination server. 53 00:03:01,140 --> 00:03:02,940 That's fine and good. 54 00:03:02,940 --> 00:03:06,690 But what we're going to do is now that we have the migration tools 55 00:03:06,690 --> 00:03:09,940 installed on both the source and destination, 56 00:03:09,940 --> 00:03:12,140 we're going to bring them over that way. 57 00:03:12,140 --> 00:03:14,550 So I'm going to do this quickly to make sure I don't 58 00:03:14,550 --> 00:03:16,870 have any denial of services happening. 59 00:03:16,870 --> 00:03:22,060 Elsewhere in this training, I don't remember offhand if it's in AZ‑800 or AZ‑801, 60 00:03:22,060 --> 00:03:23,440 as a matter of fact. 61 00:03:23,440 --> 00:03:25,720 I think it's in this learning path. 62 00:03:25,720 --> 00:03:29,110 We do DHCP high availability in which you would have 63 00:03:29,110 --> 00:03:31,840 more than one DHCP server anyway. 64 00:03:31,840 --> 00:03:37,540 But in this case, I'm going to temporarily stop the DHCP server service, 65 00:03:37,540 --> 00:03:40,300 and I'm going to load in the migration tools. 66 00:03:40,300 --> 00:03:44,440 Now, unfortunately, those migration cmdlets, 67 00:03:44,440 --> 00:03:47,590 they're part of the old snap‑in architecture, 68 00:03:47,590 --> 00:03:50,940 so they don't use the current module architecture, 69 00:03:50,940 --> 00:03:54,340 so we have to manually import that module. 70 00:03:54,340 --> 00:03:55,650 This line is optional, 71 00:03:55,650 --> 00:03:59,650 but it's allowing you to get a dump of all of your IP config 72 00:03:59,650 --> 00:04:03,180 settings as a text file because you may not just want to 73 00:04:03,180 --> 00:04:05,610 migrate your DHCP server database, 74 00:04:05,610 --> 00:04:10,180 but you may again want to transition the IP settings of the server as well, 75 00:04:10,180 --> 00:04:11,010 you see? 76 00:04:11,010 --> 00:04:13,670 Now the command we're concerned with are 77 00:04:13,670 --> 00:04:18,240 Export‑SmigServerSetting and Import‑SmigServerSetting. 78 00:04:18,240 --> 00:04:21,910 If you're running really old Windows servers like 2008, 79 00:04:21,910 --> 00:04:24,590 2012, there's a SmigDeploy.exe. 80 00:04:24,590 --> 00:04:27,950 There are some additional steps that you have to follow in 81 00:04:27,950 --> 00:04:29,990 terms of setting up a deployment share. 82 00:04:29,990 --> 00:04:33,440 I would encourage you to look in the Microsoft docs to read in more 83 00:04:33,440 --> 00:04:37,040 detail on these Windows Server migration tools. 84 00:04:37,040 --> 00:04:40,290 I'm dealing with relatively current versions of Windows Server, 85 00:04:40,290 --> 00:04:43,510 so we don't have to worry about that SmigDeploy stuff. 86 00:04:43,510 --> 00:04:44,130 So instead, 87 00:04:44,130 --> 00:04:48,610 we're just going to do a variant of Export and Import‑SmigServerSetting. 88 00:04:48,610 --> 00:04:51,560 There's a number of feature IDs for the different features. 89 00:04:51,560 --> 00:04:54,340 We're concerned with DHCP. 90 00:04:54,340 --> 00:04:58,470 We also want to bring along our DHCP security permissions, 91 00:04:58,470 --> 00:05:01,740 so we can specify user and group. 92 00:05:01,740 --> 00:05:04,000 We want to include IP configuration. 93 00:05:04,000 --> 00:05:05,910 We can do that, 94 00:05:05,910 --> 00:05:11,540 and then we specify a path to where that IP configuration is located. 95 00:05:11,540 --> 00:05:18,040 We then can unauthorize the source server here using good old NetShell, 96 00:05:18,040 --> 00:05:22,130 which is decidedly not part of the Windows Server migration tools, 97 00:05:22,130 --> 00:05:26,240 but it's one method if you don't want to use the graphical user interface to 98 00:05:26,240 --> 00:05:30,140 remove the old server so that it's no longer authoritative. 99 00:05:30,140 --> 00:05:31,930 Then on the destination server, 100 00:05:31,930 --> 00:05:35,250 we would do an Import‑SmigServerSetting ‑Feature "DHCP", 101 00:05:35,250 --> 00:05:37,580 and we would mimic the same stuff, 102 00:05:37,580 --> 00:05:41,340 specifying the path to where your backup is and so on. 103 00:05:41,340 --> 00:05:44,860 A more complex example where you want to do a more 104 00:05:44,860 --> 00:05:49,120 detailed mapping between source address and MAC or 105 00:05:49,120 --> 00:05:51,310 physical address on the network interface, 106 00:05:51,310 --> 00:05:55,910 assuming that you really want the new server to take over the role 107 00:05:55,910 --> 00:05:59,860 and essentially the identity of the source server, 108 00:05:59,860 --> 00:06:03,600 I got this example from the online help for this command. 109 00:06:03,600 --> 00:06:08,230 As a matter of fact, you might want to do, in fact, we'll do it right now. 110 00:06:08,230 --> 00:06:11,140 Let me copy this string to my clipboard. 111 00:06:11,140 --> 00:06:18,000 We can do a Get‑Command where PSSnapin is, and let me lay that in here. 112 00:06:18,000 --> 00:06:20,740 There's just a small number of commands here, 113 00:06:20,740 --> 00:06:24,400 Export, Get, Import, Receive, and Send. 114 00:06:24,400 --> 00:06:26,520 So there's not too much going on there. 115 00:06:26,520 --> 00:06:28,030 Okay, let's get started here. 116 00:06:28,030 --> 00:06:29,840 Let's go to line 27. 117 00:06:29,840 --> 00:06:32,450 Let me fix, I need to inject a space in there. 118 00:06:32,450 --> 00:06:36,530 I do have a folder on my C drive called dhcp. 119 00:06:36,530 --> 00:06:42,840 To protect those exported settings, we're going to apply a password, 120 00:06:42,840 --> 00:06:45,960 and it will take a little while to enumerate and 121 00:06:45,960 --> 00:06:51,700 package all of the DHCP database data, NTFS permissions, 122 00:06:51,700 --> 00:06:56,040 user group, enumerations, leases, all of that good stuff. 123 00:06:56,040 --> 00:06:57,240 Okay, great. 124 00:06:57,240 --> 00:06:58,560 We then, like I said, 125 00:06:58,560 --> 00:07:04,440 can decommission the DHCP server on the old machine with Network Shell. 126 00:07:04,440 --> 00:07:07,330 We then can connect to the remote machine. 127 00:07:07,330 --> 00:07:10,220 Hopefully, this won't break over a network connection. 128 00:07:10,220 --> 00:07:12,640 We'll find out at any rate. 129 00:07:12,640 --> 00:07:15,160 So lastly, we've got Import‑SmigServerSetting, 130 00:07:15,160 --> 00:07:20,280 and then we're specifying a path to that DHCP folder where I'm going 131 00:07:20,280 --> 00:07:23,440 over the network using the administrative share. 132 00:07:23,440 --> 00:07:24,350 Didn't like that. 133 00:07:24,350 --> 00:07:25,920 I think I know why, 134 00:07:25,920 --> 00:07:28,750 and that's going to be we have to import the 135 00:07:28,750 --> 00:07:31,050 Windows Server Migration Tools again. 136 00:07:31,050 --> 00:07:34,820 So we're going to have to do on the remote box now import, 137 00:07:34,820 --> 00:07:36,850 actually, it's not import, it's Add. 138 00:07:36,850 --> 00:07:39,040 It's this line right here. 139 00:07:39,040 --> 00:07:43,240 Let me come back, let me lay this in with my right mouse button. 140 00:07:43,240 --> 00:07:46,920 So that will import those commands into our run space, 141 00:07:46,920 --> 00:07:51,140 and then we can scroll down to line 32 and try it again. 142 00:07:51,140 --> 00:07:52,260 Still didn't like it. 143 00:07:52,260 --> 00:07:55,140 Well, this is some live troubleshooting, isn't it? 144 00:07:55,140 --> 00:07:59,080 Alrighty then, let's head on over, as you can see, to mem1.timw. 145 00:07:59,080 --> 00:08:02,390 And what I've done through the magic of video editing, 146 00:08:02,390 --> 00:08:04,540 once again, I've got that benefit, 147 00:08:04,540 --> 00:08:08,980 I copied over our DHCP backup folder from the old server, 148 00:08:08,980 --> 00:08:14,430 and notice that the migration file is svrmig.mig. 149 00:08:14,430 --> 00:08:16,840 And again, it's a binary format file. 150 00:08:16,840 --> 00:08:19,630 And what I've done here, let me bring up my PowerShell, 151 00:08:19,630 --> 00:08:21,730 is that, well actually, instead of the PowerShell, 152 00:08:21,730 --> 00:08:24,440 I can show you in the terminal exactly what I did. 153 00:08:24,440 --> 00:08:28,540 I discovered a bug along the way, as a matter of fact. 154 00:08:28,540 --> 00:08:33,010 So on the destination server, I did a stop service DHCP server, 155 00:08:33,010 --> 00:08:36,170 and then I did, as you can see here, let me highlight it, 156 00:08:36,170 --> 00:08:38,470 Import‑SmigServerSetting ‑Featureid. 157 00:08:38,470 --> 00:08:41,680 See, if you use feature, it bombs out. 158 00:08:41,680 --> 00:08:42,500 That's the bug. 159 00:08:42,500 --> 00:08:45,960 I'm going to submit that tomorrow, as a matter of fact, to the PowerShell docs. 160 00:08:45,960 --> 00:08:50,730 So I'm quite confident that if you look in the PowerShell help for this command, 161 00:08:50,730 --> 00:08:54,440 you will find that it's corrected, the examples are corrected. 162 00:08:54,440 --> 00:08:56,130 So Featureid is DHCP. 163 00:08:56,130 --> 00:08:56,540 Again, 164 00:08:56,540 --> 00:08:59,650 there's user and group migration options that I left off, in 165 00:08:59,650 --> 00:09:02,850 this case, because my deployment is completely stock, the 166 00:09:02,850 --> 00:09:07,860 path to where the mig file is, and I added ‑Verbose and ‑force, 167 00:09:07,860 --> 00:09:09,970 and that came back is Success True. 168 00:09:09,970 --> 00:09:15,140 So now I can start the DHCP server service on this machine, 169 00:09:15,140 --> 00:09:21,010 and let's open up the DHCP console and verify that mem1, 170 00:09:21,010 --> 00:09:24,500 number one, it has the DHCP server service installed. 171 00:09:24,500 --> 00:09:26,600 Let's go to Manage authorized servers. 172 00:09:26,600 --> 00:09:29,800 Aha, looks like we've got to make sure to do that. 173 00:09:29,800 --> 00:09:35,040 So let's click Authorize, mem1.timw.info. 174 00:09:35,040 --> 00:09:38,040 Yes, this is the IP address. 175 00:09:38,040 --> 00:09:40,460 So yes, we're authorizing that machine. 176 00:09:40,460 --> 00:09:41,370 Good deal. 177 00:09:41,370 --> 00:09:44,040 And then lastly, let's come in here and take a look. 178 00:09:44,040 --> 00:09:47,350 There's our scope, and we'll look at our scope options, 179 00:09:47,350 --> 00:09:51,000 so it's been brought over. So mission accomplished with that.