我有两个脚本,如下所示,可以获取IIS的网站。
IIS 6 -
$website = Get-WmiObject -Class IIsWebServerSetting -Namespace "root\microsoftiisv2" | Select ServerComment | Format-Table -HideTableHeaders | out-file c:\website.txt
$b = Get-Content -Path C:\website.txt
$b | ForEach {$_.TrimEnd()} | ? {$_.trim() -ne '' } > C:\website.txt
$b = Get-Content -Path C:\website.txt
@(ForEach ($a in $b) {$a.Replace(' ', '')}) > C:\website.txt
Get-Content C:\website.txt
IIS 7 +
Import-Module webadministration
$a = Get-Website | Select-Object Name
$a | ForEach-Object {
$_.name = $_.name.replace(" ","")
}
$a | Format-Table -HideTableHeaders | Out-File $DeviceDrive\Apps\NetprobeNT\Auto-monitor\Website.txt
$b = Get-Content -Path $DeviceDrive\Apps\NetprobeNT\Auto-monitor\Website.txt
$b | ForEach {$_.TrimEnd()} | ? {$_.trim() -ne '' } > $DeviceDrive\Apps\NetprobeNT\Auto-monitor\Website.txt
$b = Get-Content -Path $DeviceDrive\Apps\NetprobeNT\Auto-monitor\Website.txt
@(ForEach ($a in $b) {$a.Replace(' ', '')}) > $DeviceDrive\Apps\NetprobeNT\Auto-monitor\Website.txt
我有一个不同的IIS 6脚本(Windows 2003主机),因为Web管理模块不适用于II6。
我需要添加一个if
语句,该语句将添加逻辑以运行依赖于主机操作系统的正确代码,以及W3SVC服务(万维网发布服务)是否存在(运行或停止)。一些事情
IF W3SVC is present Check host operating system IF operating system = Windows 2003 Run II6 code Else Run II7+ code
我不知道从这个脚本开始。 PowerShell和脚本对我来说是新的,这是我创建的第一个脚本的一部分。任何帮助将不胜感激。
我可以获得主机操作系统,但对如何将逻辑放入其中以获得我需要的结果感到困惑。
(Get-WmiObject Win32_OperatingSystem).Name
答案 0 :(得分:1)
使用Caption
而不是Name
。除此之外,您只需将例程插入您的伪代码:
if ((Get-WmiObject Win32_OperatingSystem).Caption -eq 'Windows 2003') {
# Run II6 code
} else {
# Run II7+ code
}
对于服务,您可以使用Get-Service
cmdlet:
if (Get-Service -Name w3svc -ErrorAction SilentlyContinue) {
...
}
如果Get-WmiObject
cmdlet在PowerShell v2中不可用(不确定),则Win32_Service
类上的或Get-Service
:
if (Get-WmiObject Win32_Service -Filter "Name='w3svc'") {
...
}