Killing and reinstalling the Intune Client without user interaction

So, recently a customer installed the Intune client in an image, as my previous post details, causing the client to enter a bricked state.

Reinstallation of the client can fix this, but we wanted minimum user interaction as a large number of machines was already distributed.

For those who remember Winrar, it is a fantastic ZIP tool that can create a self-extracting archive (.EXE) which auto-self elevates (admin rights) and can automatically start a file from the archive after extraction.

Include the Intune setup file and the certificate Microsoft includes, and this script (as .bat), and your Intune installation will be ‘cleaned up’. Note that you may see some file protection dialogs.

Source code: Continue reading Killing and reinstalling the Intune Client without user interaction

Intune Client does not appear in console and displays error 0x80070005 when updating

If you want to deploy the Intune Client using a (golden/generalized) image with System Center Configuration Manager or any other tool, make sure you haven’t already installed the Intune Client on that machine and follow the correct procedure.

The Intune Client generates a machine specific certificate in the Personal Store of the machine. This certificate is only valid for that machine. If you then base your image on this machine, all installations using that image will fail, Intune will report error 0x80070005 when trying to update. The full log of Updates.log in c:\Program Files\Microsoft\OnlineManagement\Logs will look like this below log.

EDIT: if you want to ‘reset’ / ‘fix’ the Intune Client with a script / automatically, read here

Continue reading Intune Client does not appear in console and displays error 0x80070005 when updating

Finding unused accepted domains in Exchange 2013

If, for some reason, you want to see which domains in your exchange organisation are not being used (not registered in the ProxyAddresses fields of your users), use below snippet in the Exchange Powershell Module.

Note: this does NOT (yet) check for domains used in Public Folders or Mail Contacts.


$mailboxes = get-mailbox -Resultsize Unlimited
$groups = get-distributiongroup -Resultsize Unlimited
$domains = Get-AcceptedDomain
$output = @()

foreach ($domain in $domains){

 $obj = New-Object PSObject
 $obj | Add-Member NoteProperty domainName($domain.DomainName)
 $obj | Add-Member NoteProperty domainType($domain.DomainType)
 $res = $mailboxes | where-object {$_.EmailAddresses -Match $domain.DomainName}
 if(-not $res){
 $res = $groups | where-object {$_.EmailAddresses -Match $domain.DomainName}
 }
 if($res){
 $obj | Add-Member NoteProperty inUse("YES")
 }else{
 $obj | Add-Member NoteProperty inUse("NO")
 }
 $output += $obj
}

Write-Output $output