Insert NIC driver into custom install.wim - windows

Up to today, I have been using a single boot.wim file and a single install.wim file (captured from a configured PC, with DISM) to install Windows 10 from my Server 2012R2 WDS server. Now we have purchased new hardware and I need to add a driver to both .wim files. I was able to use the following steps to put the driver into the boot.wim:
Dism.exe /mount-wim /wimfile:d:\temp\boot.wim /index:2 /mountdir:d:\temp\mount
Dism.exe /image:"d:\temp\mount" /add-driver /driver:"d:\temp\drivers\IntelI354"
Once that was done, I PXE booted and was able to pull down my install image. So, I used the same steps to update install.wim, but when I pulled down the updated image, the NIC was not detected.
I followed the steps in scenario 1, from https://technet.microsoft.com/en-us/library/dd348456%28v=ws.10%29.aspx?f=255&MSPPError=-2147217396, to deploy driver packages through WDS, but it obviously didn't work.
What do I need to do, to get this new NIC driver properly installed in my image?
Thanks.

I ended up using: https://blogs.technet.microsoft.com/doxley/2007/12/13/editing-the-registry-of-your-wim-without-having-to-recapture/ to load the registry file from the WIM, and https://technet.microsoft.com/en-us/library/cc753716(v=ws.11).aspx to add my desired directory to the DevicePath registry entry.

Related

Is it possible to apply unattend.xml on custom prepared image when deploy new PC?

I've created custom Windows_10_PRO_1909_x64 image with hashicorp packer (with QEMU).
To build it I used unattend.xml file. Steps to prepare were:
Absolutely unattended installation of Windows
Installation of big amount of software
Converting VM (it was build with QEMU) to raw .img file
Now I want to deploy this image to new PC. I'm using bootable USB stick with embedded Linux (also custom) which can grab this .img file from local storage and write to /dev/sda
Everything works fine in this process.
Main problem is - after writing .img to /dev/sda I'm changing ComputerName in unatted.xml file (on mounted /dev/sda), but after first time boot, Windows ignores this file, and PC name is the same as it was before changing. When I checked unattend file, it has correct PC name, which I changed while was on bootable linux, before Windows first run.
Maybe somebody have an idea - how I can change PC name, each time I deploy new PC? But it should be without user interaction. It could be any file modification on bootable linux, or maybe there is a way to do it automatically on first Windows boot?
Found solution.
Need to run sysprep afer Windows install with sysprep-unattend.xml file to clean system.
After it Windows will catch this file on first boot. So it's possible to change PC name in this file before boot.

How to deploy a file system driver?

I was trying to test this File System Minifilter Driver sample. I'm having a problem with the deployment because this is not an actual device driver (non-PnP driver).
In Visual Studio, in the property page of the project: Driver Install -> Deployment, If I select "Hardware ID Update", I don't know what is the hardware ID for the driver and I cannot see in the .INF file either.
If I select "Install/Reinstall and Verify" -> "Default Driver Package Installation Task (possible reboot)", I get Driver Deployment Task Failed: Default Driver Package Installation Task error.
Deployment settings in VS
I checked this and this page but I couldn't find anything beside how to prepare the .INF file.
How can I deploy this driver to my target machine? Thank you.
Actually you don't need an INF file to install your mini filter driver.
First, create a kernel driver service with either "sc create" from command line or call "CreateService" from your installation program if you want to automate the deployment.
Then, add some registry modification as below (from Norton 360) with Registry Editor or again with Win32 registry APIs in your installation program:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SymEFASI\Instances]
"DefaultInstance"="SymEFASI"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SymEFASI\Instances\SymEFASI]
"Flags"=dword:00000000
"Altitude"="260610"
Replace "SymEFASI" with your driver service name when running "sc create" or calling "CreateService". The most important part is "Altitude". It needs to be unique in your system, otherwise Filter Manager won't load your driver due to conflicts. For a formal product deployed in the real world to end-users, you need to apply for a unique number assigned by Microsoft. This is also critical because mini filter drivers are classified by layers. Each layer has its own functionalities. If your driver sits on the wrong layer, you might not see the correct data or behavior as you want.
Once the above is done, the last thing is to run "sc start" or call "StartService".

How to save docker windows images?

I'm currently trying to install a docker image on an air-gaped Windows Server 2016 machine. I have a Windows 10 machine that's connected to the internet from which I can transfer files. However, the Windows 10 machine can't seem to connect to the Microsoft docker API (https://mcr.microsoft.com/v2) to download the files needed to create the image tar file.
Specifically, when I connect to https://mcr.microsoft.com/v2/windows/nanoserver/tags/list I see a full list of tags available for download. However, I can only connect to the "sac2016" tag. All other endpoints return a "MANIFEST_INVALID" error.
For example, on the Windows 10 machine https://mcr.microsoft.com/v2/windows/nanoserver/manifests/1709 returns:
{"errors":[{"code":"MANIFEST_INVALID","message":"manifest invalid","detail":{}}]}
How can I connect to the Microsoft API to download these files? Is Microsoft restricting these files under the assumption that I'm not running the corresponding Windows version for these images? If so, is there a way around that restriction?
Check first if a more complete tag works.
I do manage to access https://mcr.microsoft.com/v2/windows/nanoserver/manifests/1709-amd64
So 1709-amd64 instead of 1709, the latter giving "manifest unknown".
Only images with architecture might be defined here.

Not able to run cloudera VM using .vmdk on windows 10 machine

I am newbie in Big Data space. I downloaded cloudera-quickstart-vm-5.7.0-0-virtualbox from Cloudera and got Oracle virtual box where i have to setup remote space. But i am not able to run .vmdk file using VM. I am able to get it using .ovf file. I am not sure what is the issue here. Do i need to change some configuration for running this on machine (network or something else).
Adding error print in my post.
enter image description here
Other users have reported similar problems using the .vmdk file. The workaround, which you have already done, is to import the .ovf file instead. The user experience should be the same, either way.

WinPE3 with Teamviewer over LAN - doesn´t connect

for a remote backup and recovery solution, I want to create a WinPE Environment with embedded Teamviewer (newest possible version)
Now I found a tutorial which describes this steps. (unfortunately its not english so its just for information)
http://www.andysblog.de/windows-teamviewer-und-winpe-eine-boot-cd-fuer-den-remote-support
You have to mount the WIM Image, copy few DLLs into the System32 Folder
c:\windows\system32\avicap32.dll
c:\windows\system32\msvfw32.dll
c:\windows\system32\de-de\avicap32.dll.mui
c:\windows\system32\de-de\msvfw32.dll.mui
and use the Teamviewer Quicksupport Ver. 5 (Portable Version works too)
which is important because all versions above 5 doesn´t work in the WinPE environment.
I did everything as decribed (in a VM machine), and tried to connect over LAN (without ID - not over the Teamviewer server) - My Teamviewer 10 didn´t connect and gave the following error: "Protocol negotiation failed"
Any suggestions?
The second problem is, that I would like to run the newest possible version, according to some reports, Teamviewer above Ver 5 checks in which account it runs. - If it is the SYSTEM account it will try to switch the account, if it fails it closes without any error message.
So I need also a solution for this. Maybe how to run programs in WinPE as different user and not as the default SYSTEM account.
Thanks for any suggestions.
Well, I think I figured it out.
You have to run the full install in WinPE and check the "run-on-startup-feature" which registers it as a service. Now I was able to connect without any problems.
Though it does not have any sense to "install" Teamviewer everytime I boot the WinPE environment, so I did all the settings I need and exported them to a *.reg File on a USB drive.
Also copied the new installed Teamviewer folder to include it in the WIM Image later, and will create a batch file which loads the *.reg File on every boot and then starts up "Teamwiever" - Let´s see if this works.

Resources