我对PowerShell相对较新,可能没有正确说出问题。所以,请原谅我。
这是我遇到的问题
当我使用Get -...命令列出它们时,我想显示应用程序和/或虚拟目录数据的完整列表。 这是负责输出的脚本部分:
............................Rest of the script
Import-Csv "$CSV" | ForEach-Object {
if ($_.Type -eq "Application"){
invoke-command -ComputerName $_.Server -ScriptBlock { param($VirtualPath, $PhysicalPath) Import-Module WebAdministration; New-Item -Path $VirtualPath -physicalPath $PhysicalPath -type Application } -Args $vPath, $pPath
invoke-command -ComputerName $_.Server -ScriptBlock { param($VirtualPath, $ApplicationPool) Import-Module WebAdministration; Set-ItemProperty $VirtualPath -Name ApplicationPool -Value $ApplicationPool } -Args $vPath, $AppPool
}
ElseIf ($_.Type -eq "VirtualDirectory"){
invoke-command -ComputerName $_.Server -ScriptBlock { param($VirtualPath, $PhysicalPath) Import-Module WebAdministration; New-Item -Path $VirtualPath -physicalPath $PhysicalPath -type VirtualDirectory } -Args $vPath, $pPath
}
else {
Write-Host "Wrong type for" $_.Server"!
}
}
.......... rest of the script
输出
Name Application pool Protocols Physical Path PSComputerName
---- ---------------- --------- ------------- --------------
D:\sites\homedir Server1.domain.com
TestS DefaultAppPool http D:\sites\homedir Server2.domain.com
首先,这里输出第一行存在问题。其次,当涉及到应用程序时,它会在设置AppPool之前生成此输出,这对我来说完全没用,因为我的目标是获得完整输出并将其复制/粘贴到案例单中。 因此,我在脚本末尾添加了以下循环,以显示与指定别名相关的所有记录:
Import-Csv "$CSV" | ForEach-Object {
invoke-command -ComputerName $_.Server -ScriptBlock { param($IIS_Alias) Import-Module WebAdministration; Get-WebApplication -Site iDoxs -Name $IIS_Alias } -Args $Alias
invoke-command -ComputerName $_.Server -ScriptBlock { param($IIS_Alias) Import-Module WebAdministration; Get-WebVirtualDirectory -Site iDoxs -Name $IIS_Alias } -Args $Alias
}
应用程序输出:
Name Application pool Protocols Physical Path PSComputerName
---- ---------------- --------- ------------- --------------
TestS ASP.NET v4.0 http D:\sites\homedir server1.domain.com
TestS ASP.NET v4.0 http D:\sites\homedir server2.domain.com
虚拟目录的输出:
D:\sites\homedir server1.domain.com
D:\sites\homedir server2.domain.com
不像应用程序那样漂亮,但至少有些东西
最后一个问题:
如何在创建项目时禁用输出?
如何使虚拟目录显示为与应用程序一样好用? (包含虚拟文件夹的标签和别名,此显示中似乎缺少这些标签和别名,但如果它们单独显示则显示)