Wednesday, July 15, 2020

Elasticsearch error "All shards failed for phase: [query]"

Issue: Elasticsearch prints error message similar to the following (usually after an upgrade)


[2020-07-13T09:03:10,384][DEBUG][o.e.a.s.TransportSearchAction] [hostname] All shards failed for phase: [query]
org.elasticsearch.action.NoShardAvailableActionException: null
    at org.elasticsearch.action.search.AbstractSearchAsyncAction.start(AbstractSearchAsyncAction.java:115) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.action.search.TransportSearchAction.doExecute(TransportSearchAction.java:154) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.action.search.TransportSearchAction.doExecute(TransportSearchAction.java:53) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:173) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:145) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:87) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.client.node.NodeClient.executeLocally(NodeClient.java:75) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.client.node.NodeClient.doExecute(NodeClient.java:64) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:403) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.client.FilterClient.doExecute(FilterClient.java:67) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.client.ParentTaskAssigningClient.doExecute(ParentTaskAssigningClient.java:66) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:403) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.client.support.AbstractClient.search(AbstractClient.java:530) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.index.reindex.ClientScrollableHitSource.lambda$doStart$0(ClientScrollableHitSource.java:79) ~[?:?]
    at org.elasticsearch.index.reindex.ClientScrollableHitSource$1RetryHelper.doRun(ClientScrollableHitSource.java:144) ~[?:?]
    at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.index.reindex.ClientScrollableHitSource.searchWithRetry(ClientScrollableHitSource.java:176) ~[?:?]
    at org.elasticsearch.index.reindex.ClientScrollableHitSource.doStart(ClientScrollableHitSource.java:79) ~[?:?]
    at org.elasticsearch.index.reindex.ScrollableHitSource.start(ScrollableHitSource.java:69) ~[?:?]
    at org.elasticsearch.index.reindex.AbstractAsyncBulkByScrollAction.start(AbstractAsyncBulkByScrollAction.java:137) ~[?:?]
    at org.elasticsearch.index.reindex.TransportDeleteByQueryAction.doExecute(TransportDeleteByQueryAction.java:63) ~[?:?]
    at org.elasticsearch.index.reindex.TransportDeleteByQueryAction.doExecute(TransportDeleteByQueryAction.java:39) ~[?:?]
    at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:173) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:145) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:87) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.client.node.NodeClient.executeLocally(NodeClient.java:75) ~[elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.index.reindex.AbstractBaseReindexRestHandler.lambda$doPrepareRequest$0(AbstractBaseReindexRestHandler.java:69) ~[?:?]
    at org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:82) [elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:162) [elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.http.HttpServer.dispatchRequest(HttpServer.java:115) [elasticsearch-5.2.2.jar:5.2.2]
    at org.elasticsearch.http.netty4.Netty4HttpServerTransport.dispatchRequest(Netty4HttpServerTransport.java:515) [transport-netty4-5.2.2.jar:5.2.2]
    at org.elasticsearch.http.netty4.Netty4HttpRequestHandler.channelRead0(Netty4HttpRequestHandler.java:70) [transport-netty4-5.2.2.jar:5.2.2]
    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at org.elasticsearch.http.netty4.pipelining.HttpPipeliningHandler.channelRead(HttpPipeliningHandler.java:65) [transport-netty4-5.2.2.jar:5.2.2]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) [netty-codec-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) [netty-codec-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) [netty-codec-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) [netty-codec-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293) [netty-codec-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267) [netty-codec-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:129) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:642) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:527) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:481) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:441) [netty-transport-4.1.7.Final.jar:4.1.7.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [netty-common-4.1.7.Final.jar:4.1.7.Final]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]

If you check cluster settings using following command:

# curl -XGET 'http://localhost:9200/_cluster/settings?pretty'

Following settings are reported:
{
  "persistent" : {
    "cluster" : {
      "routing" : {
        "allocation" : {
          "enable" : "none"
        }
      }
    }
  },
  "transient" : { }
}

Cause: Within Elasticsearch cluster,  cluster.routing.allocation.enable it is set to "none".  As a result no shard allocations of any kind are allowed for any indices.

More details about these settings can be found at the following URL:
 https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-cluster.html#cluster-shard-allocation-settings

Solution: If upgrade has been completed and you are ready to resume shard allocation 

# curl -XPUT localhost:9200/_cluster/settings -d '{
    "persistent" : {
        "cluster.routing.allocation.enable" : null
    }
}'



I hope you find it helpful - Rajan Katwal

Friday, April 13, 2018

Windows 10 - Random freeze while saving files or opening folders

Issue: While saving files on Windows 10 based systems it may take long time after save button is selected or while trying to navigate through folders.

Cause: "Show frequently use folders in Quick access" and "Show recently used folders in Quick access" are interfering with operations

Solution:

  1. Open File Explorer
  2. Select View
  3. Select Options
  4. Select "Change folder and search options"
  5. Uncheck "Show frequently use folders in Quick access" and "Show recently used folders in Quick access"  options
  6. Select Clear button
  7. Done
  8. Test

Monday, January 9, 2017

Windows 8.1 or Windows Server 2012 R2 - The update is not applicable to your computer

Issue: While installing updates for Windows 8.1 or Windows Server 2012 R2 error message may appear "The update is not applicable to your computer"

This issue occurs especially if you do not have KB2919355 installed and you want to install it to make sure you can install rest of the future updates.

Cause: March 2014 servicing stack update (KB2919442)  is missing.

Resolution: Download and install KB2919442 before installing rest of the updates.

Following is the link to download it



Monday, December 5, 2016

Microsoft Outlook 2010, 2013 and 2016 crashes after installing Microsoft Dynamics CRM 2016 SP1 Client for outlook- KB3154952

Issue: Microsoft Outlook 2010, 2013 and 2016 crashes after installing Microsoft Dynamics CRM 2016 SP1 - KB3154952  (on-premises)

Crashes becomes a lot  more aggressive when other add-ins (especially from 3rd party) are installed for outlook. If 3rd party addin gets disabled in outlook then number of Outlook crash will reduce. While working with one such add-in we were seen Outlook crash as soon as outlook would start.

Following are the example of events that will be recorded in application event logs:

Log Name:      Application
Source:        Application Error
Date:          5/12/2016 2:20:15 PM
Event ID:      1000
Task Category: Application Crashing Events
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      HOSTNAME
Description:
Faulting application name: OUTLOOK.EXE, version: 15.0.4875.1000, time stamp: 0x57fc97a0
Faulting module name: clr.dll, version: 4.6.1085.0, time stamp: 0x57a4fc7a
Exception code: 0x80131506
Fault offset: 0x002b5abd
Faulting process id: 0x224c
Faulting application start time: 0x01d24ea6752d3cbc
Faulting application path: C:\Program Files (x86)\Microsoft Office\Office15\OUTLOOK.EXE
Faulting module path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Report Id: bd2e0287-ba99-11e6-8ab6-e4a471647f11


Log Name:      Application
Source:        .NET Runtime
Date:          5/12/2016 2:17:32 PM
Event ID:      1023
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      HOSTNAME
Description:
Application: OUTLOOK.EXE

Framework Version: v4.0.30319

Description: The process was terminated due to an internal error in the .NET Runtime at IP 72BE5ABD (72930000) with exit code 80131506.



Cause: KB3154952 release version 08.01.0000.0359  that released in mid 2016 (close to July) had issue where Outlook will crash a lot more after Outlook Client for Microsoft Dynamics CRM 2016 would get upgraded to this release.

Solution: Microsoft seems to have re-published service pack for KB3154952 on 21st September 2016 under same version 08.01.0000.0359. However new set of downloads have newer version of Microsoft Dynamics CRM Outlook client 2016 version 08.1.0000.0371.


https://www.microsoft.com/en-us/download/details.aspx?id=52662



Basically when new setup files will be used, following that you should see version of Microsoft Dynamics CRM 2016 Outlook Client to be reported as 08.01.0000.0371 in program manager. 


Reference: Came across this page while looking for Microsoft articles that could explain why we say that difference in versions which seems to explain what others have also encountered/ 

https://community.dynamics.com/crm/f/117/t/207322

Monday, February 9, 2015

Microsoft Natural Ergonomic 4000 Keyboard does not work on Windows 7

Problem description: I bought this keyboard to give some rest to my wrists. To my surprise when I connected keyboard to USB port it didn't work. I tried following:

1. Uninstalled keyboard from device manager and scanned again. It finds the keyboard and even the model of keyboard but it is unable to install drivers. 
2. Installed Mouse and Keyboard Center 2.3 64bit and it didn't help.
3. Installed IntelliType 8.2 64bit for Windows 7 which didn't work either,
4. Connected KB to another desktop and it worked which had Ubuntu on it.
5. Connected to another windows desktop and it worked.
6. Checked Microsoft forums for this keyboard that was not of much help.
7. On same machine where it does not work in Windows, it works in bios and while selecting booting options.

By this time, it was established that issue is with the drivers on my particular desktop. Then started to look for forums that were  unrelated to this keyboard but in general keyboard drivers issue, found somewhere mentioned that MS update KB2529073.

CAUSE: Windows update KB2529073 may cause this issue.

Solution:

1. Connect another keyboard and log on to machine in question.
2. Remove Windows update KB2529073.
3. Shutdown PC.
4. Swap keyboard again with Microsoft Keyboard.
5. Start PS and wait for MS Windows to start, you will realise that green light above [1] button is on this time which wasn't turned on when issue existed. Your keyboard should be good to go. 


Thursday, November 27, 2014

Exchange 2013 and Exchange 2010 mixed environment throws error message "The arbitration mailbox 'SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}' for the organization '' is located on a server that doesn't have Exchange 2013 installed. The arbitration mailbox must be moved to an Exchange 2013 server before you can enable auditing."

Issue: While enabling auditing or trying to access audit info following warning message would appear:

The arbitration mailbox 'SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}' for the organization '' is
located on a server that doesn't have Exchange 2013  installed. The arbitration mailbox must be moved to an Exchange
2013 server before you can enable auditing.

Cause: As per Microsoft article http://technet.microsoft.com/en-us/library/dn249849(v=exchg.150).aspx , SystemMailbox mentioned above should be moved to  Exchange 2013 database once Exchange 2013 is introduced into the environment.

Resolution: Move 'SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}' mailbox from Exchange 2010 based mailbox DB to Exchange 2013 DB.

Steps:

1. Find out location of arbitration databases using following exchange powershell cmdlet:

Get-Mailbox -Arbitration | fl Name, Displayname, ServerName, Database, AdminDisplayVersion

It would print information similar to the following

Name                : SystemMailbox{1f05a927-c4a9-4cc7-80bd-a557eb562135}
DisplayName         : Microsoft Exchange Approval Assistant
ServerName          : exchange
Database            : Mailbox Database 0147642087
AdminDisplayVersion : Version 14.3 (Build 123.4)

Name                : SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}
DisplayName         : Microsoft Exchange
ServerName          : exchange
Database            : Mailbox Database 0147642087
AdminDisplayVersion : Version 14.3 (Build 123.4)

Name                : FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042
DisplayName         : Microsoft Exchange Approval Assistant
ServerName          : exchange
Database            : Mailbox Database 0147642087
AdminDisplayVersion : Version 14.3 (Build 123.4)

Name                : SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}
DisplayName         : Microsoft Exchange
ServerName          : exchange2013
Database            : Mailbox Database 0562670298
AdminDisplayVersion : Version 15.0 (Build 995.29)

Name                : Migration.8f3e7716-2011-43e4-96b1-aba62d229136
DisplayName         : Microsoft Exchange Migration
ServerName          : exchange2013
Database            : Mailbox Database 0562670298
AdminDisplayVersion : Version 15.0 (Build 995.29)

2. Either use information from above to get database names where version is 15.0 or above or use following exchange powershell cmdlet to print information about all databases in your environment:

Get-MailboxDatabase -IncludePreExchange2013 | fl Name, Server, AdminDisplayVersion

It would print information similar to the following:

Name                : Mailbox Database 0147642087
Server              : EXCHANGE
AdminDisplayVersion : Version 14.3 (Build 123.4)

Name                : Mailbox Database 0562670298
Server              : EXCHANGE2013
AdminDisplayVersion : Version 15.0 (Build 995.29)

3. Now move SystemMailbox in question using EAC  (under migration) or using following shell cmdlet (modify  with DB name identified above for exchange 2013)

Get-Mailbox -Arbitration -Identity "SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}" | New-MoveRequest -TargetDatabase

Reference: http://technet.microsoft.com/en-us/library/dn249849(v=exchg.150).aspx



Wednesday, November 26, 2014

Microsoft Exchange Server 2013 upgrade to SP1 or RU5 or RU6 will fail with error message " The Windows component RSAT-Clustering-CmdInterface isn't installed on this computer and needs to be installed before Exchange Setup can begin."

Issue: While trying to upgrade Microsoft Exchange Server 2013 RTM or releases below SP1/RU5/RU6 that is installed on Windows 2012 Server to either SP1 or RU5 or RU6   error message "The Windows component RSAT-Clustering-CmdInterface isn't installed on this computer and needs to be installed before Exchange Setup can begin." may appear on the screen.

Following is the screenshot while performing silent upgrade


If you will check ExchangeSetup.log file located usually under C:\ExchangeSetupLogs\ folder you will find entries similar to the following:

[11/25/2014 05:04:26.0209] [1] Failed [Rule:RsatClusteringCmdInterfaceInstalled] [Message:The Windows component RSAT-Clustering-CmdInterface isn't installed on this computer and needs to be installed before Exchange Setup can begin.]


[11/25/2014 05:04:26.0490] [1] [REQUIRED] The Windows component RSAT-Clustering-CmdInterface isn't installed on this computer and needs to be installed before Exchange Setup can begin.

[11/25/2014 05:04:26.0490] [1] Help URL: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.RsatClusteringCmdInterfaceInstalled.aspx

The link mentioned above as of today while I am writing this note is not working.

Following is the screenshot from the log file in question:




Solution: Install the required module using the following Windows PowerShell command whiand restart setup.exe program to upgrade.

Install-WindowsFeature RSAT-Clustering-CmdInterface

Following is the screenshot (ignore warning about automatic updates since I like to control updates on my servers)



Note: For more information about this module please refer Microsoft documentation on "Failover Clustering module"







Monday, November 24, 2014

How to find list of attributes in PAS (partial attribute set)

Purpose: Sometimes we need to find out what attributes are there in the PAS list used by the Active Directory environment. Sometimes just to make sure there isn't an attribute that you need to exist on all Global Catalog servers for a product or query to work. 


Steps: Following PowerShell command can be run on Domain Controller in your environment to get Display Name of attributes in PAS.

Get-ADObject -SearchBase "cn=Schema,cn=Configuration,dc=YourDomain,dc=com" -LDAPFilter "(isMemberOfPartialAttributeSet=TRUE)" -Properties lDAPDisplayName | Select lDAPDisplayName

Example : 

Get-ADObject -SearchBase "cn=Schema,cn=Configuration,dc=katwal,dc=local" -LDAPFilter "(isMemberOfPartialAttributeSet=TRUE)" -Properties lDAPDisplayName | Select lDAPDisplayName
Following PowerShell can be executed on the Domain Controller to get list of attributes 




Friday, August 15, 2014

USB Hard Disk or storage drive cannot be recognised by WINDOWS ?

Issue: At times Windows 7 may not be able to recognize a hard disk or a USB stick e.g. Sandisk Cruzer Slice and same device would work just fine on another Windows 7 machine ? 

In such case following is a solution that worked for me every time.

Cause: System may be missing some entries in usbstor.inf or file could be missing all together.

Resolution: To resolve this issue perform the following steps:

1. Get copy of USBstore.inf located under %windir%\inf\ folder from machine where the same device worked (make sure operating system is same e.g. Windows 7). You can email the same as well by renaming it to .txt file and then changing it to .inf on time of adding it to your machine.

2. On your machine where you have issue go to %windir%\inf\  folder (usually %windir% c:\Windows) and copy the file that you got from another machine where things worked as expected.

3. Launch device manager, you can do this by selecting  Start,   Run, in Open box type devmgmt.msc and select OK button. 

4. In Windows Device Manager look for Other Devices or Unknown Devices section, you will find your device marked with a yellow sign. Right click on your device and select Uninstall.

5. Stay within Device Manager, select Action menu on the top and select Scan for hardware changes.

6. Once scan finished you should see your device appearing properly.

How to allow certain types of file attachments (HTML/XML) through OWA (2010/2013)

GOAL: At times there may be sites that have business case to allow file attachments e.g. .HTML or .XML to be opened/accessed through OWA. Though these are be default not allowed to be opened due to security concerns but there may be sites where it is business requirement. 

STEPS:

From early days of Exchange 2003/2007 there were means available to allow such attachments through OWA. I am only adding here for very recent versions of the exchange only. Especially because they have Microsoft Exchange powrshell cmdlets which can do it very quickly. 

1. Open Microsoft Exchange Management Shell in case of Exchange 2010/2013 

2. Once shell is connected up and running use the following cmdlet to add extension to the AllowedFileTypes 

Set-OwaVirtualDirectory -identity "owa (default web site)" -AllowedFileTypes @{Add='.html'}

This would add .html to AllowedFileList for both "Plublic Computer File Access" and "Private Computer File Access".

In case you are working with an attachment time that is in the BlockedFileTypes or ForceSaveFileTypes list you need to remove those from there first.

After this change now will be up to the internet browser you are using.

For IE 8 it will work like a charm. Users will be able to OPEN and SAVE .HTML attachments as they they like.

With IE 9 and onward there is an issue, it would not allow HTML files to open and same is currently applicable to FireFox (on the time when I am writing it). Another issue is that if you click on SAVE button that will change any URLs within HTML with something like redir.aspx?........

Workaround for this issue is to add .HTML to ForceSaveFileTypes list and then use "Save Target As..." option within IE 9, 10 and 11.

Chrome appears to have no issue at this stage.

To me it appears this is combination of filtering within exchange and the way headers are passed on to browsers. IE 8 and Chrome can handle it but IE 9, 10, 11 and FireFox is having issue.