我有两个关于powershell和IIS的问题

我有两个关于powershell和IIS的问题,powershell,iis,Powershell,Iis,我正在尝试将用户帐户设置为网站身份验证的匿名身份,我已经查看了谷歌搜索的每个页面,但没有找到任何内容。关于将其设置为池标识,有几点需要注意,这是我在下面一行中看到的,但我不确定该行是如何设置池标识的,我尝试修改它以设置我想要的用户帐户,但它不起作用: set-webconfigurationproperty /system.webServer/security/authentication/anonymousAuthentication -name UserName -value "domain

我正在尝试将用户帐户设置为网站身份验证的匿名身份,我已经查看了谷歌搜索的每个页面,但没有找到任何内容。关于将其设置为池标识,有几点需要注意,这是我在下面一行中看到的,但我不确定该行是如何设置池标识的,我尝试修改它以设置我想要的用户帐户,但它不起作用:

set-webconfigurationproperty /system.webServer/security/authentication/anonymousAuthentication -name UserName -value "domain\user" -Location "iis:\Sites\$NewApp"
我还尝试在创建站点后设置绑定,但是绑定没有正确应用,我不明白为什么。我在网上看了很多例子,并试图模仿它们。我肯定我只是有一个格式化错误或类似的小错误。这是我的装订线:

New-Item IIS:\Sites\$NewApp -bindings @{protocol="http";bindingInformation=$NewIP+":80"} -physicalPath "E:\Physicalpath"
今晚我花了两个小时在这上面,这让我发疯。我只是对这两个项目进行了分解并手动配置了服务器,但我真的很想让它工作起来,这样我就可以将它用于其他站点创建脚本


提前感谢您的帮助。

我能够设置用户,需要添加
-PSPath
。您应该能够根据以下链接组合
-PSPath
-Location

此外,您的第二个疑问在此澄清:

从以上链接:

命令示例:当IIS powershell cmdlet使用-Value参数时,它通常使用单个字符串值进行设置(注意:如果 该值包含空格,应使用“或”引用)

如果用于设置集合项,则该值可以是哈希表对象 添加网络配置 '/system.applicationHost/sites/site[@name=“默认网站 站点“]/bindings'-value@{protocol=“http”;bindingInformation=“*:80:”} -pspath iis:\

您可以使用
addwebconfiguration
设置绑定,如下所示:

Add-WebConfiguration '/system.applicationHost/sites/site[@name="pwa"]/bindings' -Value @{protocol="ftp";bindingInformation="10.0.0.100:21:pwa.fabrikam.local"} -PSPath iis:\
或者,您可以使用Set-WebConfiguration来修改:

set-WebConfiguration '/system.applicationHost/sites/site[@name="pwa"]/bindings' -Value @{protocol="https";bindingInformation="*:443:pwa.fabrikam.local";sslFlags=0} -PSPath iis:\
通过变量添加所有内容。您可以管理您的变量。它满足您的需要,我已将绑定的每个组件分离为各种变量。将变量放在括号内有助于计算表达式

$siteName = "pwa"
$appFilter = "//system.applicationHost/sites/site[@name='$($sitename)']/bindings"
$newIP = "*"
$port = 80
$hostName = "pwa.fabrikam.local"
$bindings = @{
    protocol = "http"
    bindingInformation="$($newIP):$($port):$($hostName)"
}

set-WebConfiguration  -Filter $appFilter -Value $bindings -PSPath iis:\

如果您现在只更改变量,则命令应继续运行。我尝试通过变量
$newIP
$port
更改IP和端口。让我们知道它是如何运行的。

您是否选中了“是”,这没有显示如何添加用户,只是显示如何启用/禁用它。该链接是为了告诉您必须使用-PSPath。是吗你在寻找你问题的确切答案吗?你必须得到你问题解决方案的一部分或提示,并根据你的需要进行构建。下面提供了你问题的答案,实际上,这里回答了多个问题。因此,对于第一项,我必须测试它是否有效,但看起来-pspath是什么我遗漏了谢谢。对于第二项,我需要使用一个变量作为站点名称,所以我不能对第一部分使用单引号,我可以对该部分使用双引号吗?或者这会导致问题吗?另外,我需要对IP地址使用一个变量,当我用变量$NewIP替换*时,它也会变成:80:红色,使它看起来像t整件事都是变量$NewIP:80:。这就是为什么我试图拆分它,但拆分时它似乎添加不正确。@squirreJester:更新了我的答案,以使用变量运行命令。这样将所有内容分离出来有点难看和麻烦。对于appfilter,你确定它以double//becau开头吗se我在任何地方都见过它,它只是以一个/开头。为什么你在bindinginformation行的每一块前面都放上美元符号?我会试试看它是否有效,但我希望它至少是绑定的一行。你不必对所有事情都使用变量,一定要根据需要使用变量。根据你的需要测试/修改代码适合你自己使用。我只是想展示一下它是如何工作的。
$siteName = "pwa"
$appFilter = "//system.applicationHost/sites/site[@name='$($sitename)']/bindings"
$newIP = "*"
$port = 80
$hostName = "pwa.fabrikam.local"
$bindings = @{
    protocol = "http"
    bindingInformation="$($newIP):$($port):$($hostName)"
}

set-WebConfiguration  -Filter $appFilter -Value $bindings -PSPath iis:\