0

该脚本非常适合接受一些读取主机提示并创建一个与应用程序池相关联的网站。密码提示有效,但我们最常用的密码是 !$Pass!123!! 它不允许我接收它作为输入。您如何允许使用这些字符?

Import-Module WebAdministration
# 获取网站变量
$WebSite = Read-Host - 提示“网站的 DNS 名称”
$AppPoolName = Read-Host -Prompt "应用程序池名称"
[string]$AppPoolUser = Read-Host -Prompt "应用程序池用户名域不需要,例如 PXML.Proxy$"
$Password = Read-Host -Prompt "Application Pool Account Password, try ` before $ in password"
$HostHeader = Read-Host -Prompt "Host Header Name"
# cmd /c C:\scripts\BaseIIS.cmd $WebServer $AppPool $AppPoolUser $Password $HostName
New-Item -path d:\Websites -itemtype 目录
New-Item -path d:\Logs -itemtype 目录
New-Item -path d:\Logs\$WebSite -itemtype 目录
New-Item -path d:\websites\$WebSite -itemtype 目录
4

2 回答 2

4

输入中的问题不是,dollar sign($)而是开始exclamation mark(!) 你需要用另一个来逃避它。

您的密码需要输入为:!!$Pass!123!!

阅读此处了解更多信息

为什么不使用get-credentialcmdlet:

$cred = Get-Credential -Message "Insert Username and Passsword"    
$cred.GetNetworkCredential().UserName
Jacob    
$cred.GetNetworkCredential().Password
!$Pass!123!!

或者您可以使用:

$Password = Read-Host -Prompt "Application Pool Account Password" -assecurestring
[String]$Password = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($Password))
于 2012-12-08T12:25:27.150 回答
0

这似乎不是 V3 的问题:

PS>$t=Read-Host
!$Pass!123!!
PS>$t
!$Pass!123!!
于 2012-12-08T13:00:18.160 回答