The output of the command is being output to a file in a location where the current user does not have access to write a file. Try outputting the file to a location where the user has access. For example:
cmd /c %windir%\system32\inetsrv\appcmd list site > %temp%\sites.xls
Alternatively, if the file MUST be output to c:\
, then try running the Powershell process as a user with permissions to that folder (e.g. start -> type 'powershell' -> right-click 'Windows Powershell', and choose 'Run as Administrator'. Then try with the original command line:
cmd /c %windir%\system32\inetsrv\appcmd list site > c:\sites.xls