用于在IIS 10上设置日志记录的PowerShell命令

用于在IIS 10上设置日志记录的PowerShell命令,powershell,windows-server-2016,iis-10,Powershell,Windows Server 2016,Iis 10,在Windows Server 2016/IIS 10上,我可以在IIS管理器GUI中执行以下操作,并将日志文件格式设置为W3C: [网络服务器名称]→ 登录中→ 选择字段→ W3C日志记录字段(标准字段)→ 选中或取消选中“用户名(cs用户名)”等标准字段旁边的框 我真的希望能够从PowerShell脚本中选中或取消选中诸如cs用户名之类的字段。为此,我试图找到这些标准字段的路径,以便设置它们: Import-Module IISAdministration $prop = Get-WebC

在Windows Server 2016/IIS 10上,我可以在IIS管理器GUI中执行以下操作,并将日志文件格式设置为W3C:

[网络服务器名称]→ 登录中→ 选择字段→ W3C日志记录字段(标准字段)→ 选中或取消选中“用户名(cs用户名)”等标准字段旁边的框

我真的希望能够从PowerShell脚本中选中或取消选中诸如cs用户名之类的字段。为此,我试图找到这些标准字段的路径,以便设置它们:

Import-Module IISAdministration

$prop = Get-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST" -Filter /system.applicationHost/sites/sitedefaults" -Recurse
运行此PowerShell脚本时,它要求我“为以下参数提供值:名称[0]

我觉得有点可笑,当我试图发现下一个路径元素或名称时,它会问我一个名称。如果我键入类似于cs username的内容,它返回时什么也没有,这表明我在错误的目录中(假设recurse正在四处查看)


有什么想法吗?

这看起来更像是一个基础架构管理问题,而不是一个编程问题,因此可能是一个更好的地方。如果我运行以下PowerShell脚本,我可以设置要设置的值,但设置为默认网站级别:导入模块IISAdministration$siteName=“默认网站“设置WebConfiguration属性-PSPath'MACHINE/WEBROOT/APPHOST'-Filter”system.applicationHost/sites/site[@name='$siteName']”-name logFile.logExtFileFlags-Value“日期、时间、客户端、用户名、计算机名、服务器IP、服务器端口、方法、URI项、耗时、用户代理”Start-site-name“$siteName”如果尝试将siteName更改为localhost或计算机名,则会出现一个错误,即在路径“machine/WEBROOT/APPHOST”处找不到localhost。这对我来说是有意义的,因为对于整个站点,路径是应用程序级别的:同样,我的问题是如何通过编程发现如何为整个服务器(而不仅仅是默认网站)设置这些值。我确实查看了“服务器故障”下的内容,但没有找到任何接近于回答我问题的内容。另一个问题是,web上的许多示例都基于PowerShell中的WebAdministration模块。我在Windows Server 2016上,非常想使用新的IISA管理模块来取代WebAdministration。