Microsoft's documentation lists the following three differences between advanced functions and compiled cmdlets:
- Advanced function parameter binding does not throw an exception when an array of strings is bound to a boolean parameter.
- The ValidateSet attribute and the ValidatePattern attribute cannot pass named parameters.
- Advanced functions cannot be used in transactions.