2014-03-03 26 views
2

我有一行PowerShell脚本,当它执行它时,会给我一个IIS服务器的总站点列表,但是当我保存到Excel电子表格时,我得到一个Access拒绝错误。在Powershell中拒绝的访问

代码:

cmd /c %windir%\system32\inetsrv\appcmd list site > c:\sites.xls 

日志1:

Access to the path 'C:\sites.xls' is denied. 
At line:1 char:53 
+ cmd /c %windir%\system32\inetsrv\appcmd list site > <<<< c:\sites.xls 
    + CategoryInfo   : OpenError: (:) [], UnauthorizedAccessException 
    + FullyQualifiedErrorId : FileOpenFailure 

日志2:

+ cmd /c %windir%\system32\inetsrv\appcmd list site > <<<< %temp%\sites.xls 
    + CategoryInfo   : OpenError: (:) [], DirectoryNotFoundException 
    + FullyQualifiedErrorId : FileOpenFailure 

我怎么能解决这个问题?

回答

3

命令的输出正被输出到当前用户无权写入文件的位置的文件。尝试将文件输出到用户有权访问的位置。例如:

cmd /c %windir%\system32\inetsrv\appcmd list site > %temp%\sites.xls 

可替代地,如果该文件必须被输出到c:\,然后尝试运行Powershell的过程与权限到该文件夹​​用户(例如启动 - >类型“的powershell” - >右击“ Windows PowerShell中”,并选择‘以管理员身份运行’,然后用原来的命令行尝试:

cmd /c %windir%\system32\inetsrv\appcmd list site > c:\sites.xls 
+0

请发现Log 2在我的岗位 – shekhar

+0

如果你键入'$ ENV:temp'在PowerShell中,你应该得到的当前用户临时目录的位置(假设定义了用户环境变量“TEMP”)确保当前用户(使用'$ e nv:username')可以访问你想要输出的目录和文件。以下是如何设置访问控制权限的概述:http://www.wikihow.com/Change-File-Permissions-on-Windows-7 – CJBS