IT Consultant Everyday Notes

Just some problems/solutions storage

Azure: Azure Database bacpac import failed with “The connection is broken and recovery is not possible.”

One of my Customers asked me to implement Azure PAAS database for PoC. I am not a SQL guru and when the database was set I went to google to see how to migrate data.

 

Microsoft recommends to use export/import data using bacpac file.

So we exported db to bacpac file (took 1.5 hour for a small 500MB DB). , copy it to azure VM and after that I tried to use SQL Management Studio to import the bacpac into the new Azure database as described here: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-cloud-migrate-compatible-import-bacpac-ssms

 

The attempt miserably failed with the following error:

“An Exception occured while executing a Transact-TSQL statement or batch (Microsoft.SqlServer.ConnectionInfo)

Additional Information:

The connection is broken and recovery is not possible. The client driver attempted to recover connection one or more times and all attempts failed. Increase the value of ConnectRetryCount to increase the number of recovery attempts. (Microsoft SQL Server)

Cannot open database “mydatabasename” requested by login. The login failed. Login failed for user ’myusername’. (Microsoft SQL Server, Error: 4060)

 

Unusual resolution: I tried to restore the bacpac to an existing database. This attempt naturally failed with error “database already exists. Try to restore into a new database”. After that I put a name of the saved database and this time bacpac was restored successfully (it took ~1 hour again Smile )

SCCM: How to convert Package to Application using Package Conversion Manager (PCM) on SCCM CB

PCM does not support SCCM Console newer than SCCM 2012 SP1. Jason Sandys published and article for SCCM R2. I used the same approach for SCCM CB (1607) and it seems to be working fine.

 

Step-by-step from Jason is here: http://blog.configmgrftw.com/package-conversion-manager-and-configmgr-r2-sp1-or-sp2/

SCCM: WSUS re-installation

I recently found a badly broken 2012 R2 WSUS in one of my Clients environment. After some troubleshooting I decided to re-install WSUS to save time.

Here are several points to remember during re-installation.

1. Not everything will be uninstall with WSUS

– Windows Internal Database (should be unchecked in Feature List during uninstallation or uninstalled using directions: https://technet.microsoft.com/en-us/library/dd939818(v=ws.10).aspx)

– Content of C:\Windows|WID should be cleared before the new install (otherwise you may have an error message “Synchronization in progress. Please cancel synchronization and rerun postinstall again.”  after the new WSUS will be installed

– you may decide to clean \WSUS folder created for the old WSUS

2. If you will use PowerShell for WSUS installation and wsusutill won’t be able to configure WSUSContent folder for you you may have an error saying Content folder cannot be accessed. In this case you may decide to add the content folder location to XML configuration script, the process is described here: https://gyorgybalassy.wordpress.com/2013/08/10/installing-wsus-on-windows-server-2012/

Unfortunately in my case postinstall failed regardless giving me weird: “System.InvalidOperationException — Client found response content type of ‘text/html; charset=utf-8’, but expected ‘text/xml’”. I tried to unistall MMC cache for WSUS, uninstall WID and WSUS, nothing helped.

Finally I uninstalled WSUS, WID, IIS, cleaned abovementioned directories, reboot the server and installed the WSUS back (enabled HTTP Activation under WCF for .Net 4.5 and  patched the server with the latest WSUS Updates). This time it successfully started.

SCCM: Windows 10 changes Default Application set for Adobe .pdf files

I am helping to create/deploy a Windows 10 image in one of my Customers environment. There is a requirement to have Adobe Reader DC in a Gold Windows 10 image.

I am preparing the Gold Image with MDT 2013 Upd 2 and deploy it with SCCM (build 1606).

One of issues we faced is a Software Association for Adobe Reader .pdf files: Even though Adobe Reader setup was customized with Customization Kit and Adobe Reader was set as default Application for PDF files after imaging we observe Microsoft Edge set itself as a default app for PDFs . Sad smile

I googled the issue and found I am not alone… Unfortunately the most common advice is to start Reader and configure it as default app in GUI (for example here is Adobe guide: https://helpx.adobe.com/acrobat/kb/not-default-pdf-owner-windows10.html). Work fine I guess for non-enterprise environment, but not suitable for my case. In addition it will set association for the current user only (http://www.winhelponline.com/blog/edge-hijack-pdf-htm-associations/)

Assoc command described here: https://support.microsoft.com/en-us/kb/184082 does not seem to be working in Windows 10. I mean even though assc .pdf  shows correct association Edge is still the default app Smile

I finally found a way to manipulate association with DISM command (https://technet.microsoft.com/en-us/library/hh824855.aspx)

So, here is the solution I am using:

1. On a reference machine with Adobe Reader installed (but not set as a default App for PDF) export default application configuration to a .XML file using dism command: “DISM.exe /Online /Export-DefaultAppAssociations >your.xml

2. Open the XML file in Notepad and delete unnecessary lines before XML header

3. Browse the XML to see association for .pdf

4. Here is a trick. You need aplicationID of Adobe Reader to be able to replace ApplicationID of EDGE you have in the XML. I right-clicked a PDF document and selected Open With. I see the prefered App is Edge, but the Reader is just after that. So in the XML file I copied the first ID from “OverwriteOfProgIdIs” parameter to ProgId parameter. Hopefully the explication is clear. Anyway, my line for .pdf association looks like:

<Association Identifier=”.pdf” ProgId=”AppX86746z2101ayy2ygv3g96e4eqdf8r99j” ApplicationName=”Adobe Reader” ApplyOnUpgrade=”true” OverwriteIfProgIdIs=”AppXk660crfh0gw7gd9swc1nws708mn7qjr1″ />

After that I I import the XML file back to Windows using:

Dism.exe /Online /Import-DefaultAppAssociations:your.xml

Please note, even that won’t change association for the current user. But, all new users will get it set properly.

So I created an additional application in my MDT to import the pre-created XML and inserted the Application Deployment step in my TS and re-generated the image. As soon as the image is deployed all domain users should have Adobe Reader as a default app for PDFs.

Note: I guess I could use offline servicing to inject XML into the image during the image creation and it would help with association for “Administrator”, but I guess online approach  is easier and cleaner.

 

You can also try a per-user GPO as described here: https://www.adobe.com/devnet-docs/acrobatetk/tools/AdminGuide/pdfviewer.html

SCCM: OSD to a KNOWN computer using media – There are no task sequences available for this computer.

 

At one of my Customer sites I migrated SCCM 2012 to SCCM CB and tried to deploy an OSD TS to a collection containing test machines.  I added a test machine manually using its MAC address and add it to a collection where the TS was deployed.

As soon as I boot the machine using generated SCCM Boot Media i got a message:

“There are no task sequences available for this computer.”

SMSTS.Log file showed the machine as “KNOWN”, but TS was not available for it. ^%&^%%

Resolution: I removed the machine from SCCM database and re-added it manually again. I think the migrated account contained a GUID from the old SCCM and probably that was an issue. Not sure for 100%, but it works now.

SCCM: Windows 10 Service Plan. How to remove unnecessary languages and editions

I am in North America and only need en-us version of Windows 10 Enterprise Edition.

By default SCCM will put a multitude of languages and Editions in your Service Plan causing enormous size of Service Plan package.

Here is way how to limit it to Windows 10 Enterprise en-us only.

1. Limit Sync on WSUS used by your SCCM (Ideally before you even enable Upgrade option in your SCCM SUP properties):

image

2. Enable Upgrade option in properties of your SCCM SUP and sync updates if it is not done yet

3. Go to Windows 10 Servicing- Service Plans and start New Service Plan Wizard

4. Add English as Language filter and the following four lines in Title filter

image

5. Press ok in Search test page and click preview to see how it will be filtered. You should be able to see the version you need. In my case I see two

image

6. finish the Wizard. You should have a service plan ready for upgrade your Win10 machines to build 1607 (in my case)

Ideas are from comments to Kent Agerlund’s post here: http://blog.coretech.dk/kea/windows-10-servicing-in-configmgr-1511/

SCCM: SCCM needs update to use servicing feature for Windows 10 1607

Microsoft published a note: Update your ConfigMgr 1606 SUP servers to deploy the Windows 10 Anniversary Update.

It looks like SCCM servicing feature won’t work with KB and manual steps when use it for upgrade to W10 1607 (Anniversary Ed and following builds).

 

Workaround – use OSD.

SCCM: Proper SQL Installation prior SCCM Setup

SCCM: Replace Collection ID with Collection Name in report

 

One of my Customers asked me to create a customized report for his environment. A standard SCCM report for Software registered in Add or Removed Programs for a specific collection fit perfectly as a base, but I wanted to replace Collection information in the report (originally it is Collection ID, but I guessed the Customer would prefer a Collection Name).

My knowledge of SQL reporting is limited, but with help of Sherry Kissinger I ended up with the following result:

SELECT arp.DisplayName0, Count(Distinct arp.ResourceID) AS ‘Count’, arp.Publisher0, arp.Version0, col.collectionid, COL.Name as CollectionName
FROM fn_rbac_Add_Remove_Programs(@UserSIDs)  arp
JOIN fn_rbac_FullCollectionMembership(@UserSIDs)  fcm on arp.ResourceID=fcm.ResourceID
JOIN v_Collection COL ON fcm.CollectionID = COL.CollectionID
WHERE fcm.CollectionID = @CollID
GROUP BY DisplayName0, Publisher0, Version0, col.collectionid, col.name
ORDER BY Publisher0, Version0

That gave me the report I looked for (of course Collection ID column can ber removed now and some other will be added):

 image

Top 10 Free tools

 

here is a snip from Redmond Mag, just for memory.

image