我正在构建一个ps1文件,通过appcmd创建我的所有IIS站点,虚拟目录和应用程序池。我已经使用appcmd list / xml从主机获取设置并将它们保存到配置文件中。我想让powershell执行appcmd命令
appcmd add apppool /IN < pathtoFile.xml
我的问题是在powershell内是我不能使用小于符号:
PS C:\temp\deployments> .\createIISSetup.ps1
The '<' operator is reserved for future use.
At C:\temp\deployments\createIISSetup.ps1:36 char:28
+ .$appcmd add apppool /IN < <<<< $pathToAppPoolSettings;
+ CategoryInfo : ParserError: (<:OperatorToken) [], ParseException
+ FullyQualifiedErrorId : RedirectionNotSupported
如果我使用烟斗:
appcmd add apppool /IN | pathtoFile.xml
我明白了:
PS C:\temp\deployments> .\createIISSetup.ps1
Expressions are only allowed as the first element of a pipeline.
At C:\temp\deployments\createIISSetup.ps1:36 char:51
+ .$appcmd add apppool /IN | $pathToAppPoolSettings <<<< ;
+ CategoryInfo : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : ExpressionsMustBeFirstInPipeline
答案 0 :(得分:5)
一位同事给了我答案。只是旋转它的头:
type $pathToapppoolSettings | .$appcmd add apppool/IN;
这很有效。
答案 1 :(得分:3)
Get-Content appppols.xml | .\appcmd.exe add apppool /in