有人能帮我吗?或者如果有人能建议一种更好的方法从 IIS7 服务器获取 csv 或某种输出,我很乐意接受。
服务器:W2k8 R2,IIS 7.5
C:\Users\Administrator>%windir%\system32\inetsrv\AppCmd LIST SITES
SITE "Default Web Site" (id:1,bindings:http/*:80:,net.tcp/808:*,net.pipe/*,net.msmq/localhost,msmq.formatname/localhost,state:Started)
SITE "test3" (id:2,bindings:http/*:8088:,state:Stopped)
SITE "test4" (id:3,bindings:http/*:8099:,state:Stopped)
SITE "test5" (id:4,bindings:http/*:8055:,state:Stopped)
ERROR ( hresult:8007007a, message:Failed to generate item output.
The data area passed to a system call is too small.
)
似乎如果我有很多绑定(在这种情况下超过 100 个)appcmd 就会失败,圣诞节我想要的只是我的网站及其绑定的列表。
我使用 vbs 脚本从 IIS 6 获取此信息,但它不适用于 IIS7
非常感谢
PS:我并不是你们所说的优秀开发人员,所以打字慢点给我吧:)
答案1
http://forums.iis.net/p/1164443/1932481.aspx
摘要:事实证明 appcmd 存在缓冲区限制。当有大量数据时会发生错误。appcmd 似乎没有针对该特定命令的解决方法。在这种情况下,我建议使用其他管理工具,例如 inetmgr。功能团队将解决此问题。
圣诞节来得有点晚了,抱歉。
编辑:我刚想到的解决方案是一个简单的 PowerShell 脚本:
import-module WebAdministration
get-website | select name,id,state, physicalpath,
@{n="Bindings"; e= { ($_.bindings | select -expa collection) -join ';' }} |
Export-Csv -NoTypeInformation -Path C:\my_list.csv
摘自这里: https://stackoverflow.com/questions/13126811/powershell-list-of-websites-using-get-website