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