我需要在一些服務器上安裝Zabbix代理,大約有一千個。在每臺服務器(Windows 2008和2012)中,我想檢查是否使用了端口10050,如果是,那麼我需要知道誰正在使用它的哪個進程,如果是Zabbix,我會停止它。像這樣:將輸出插入變量
$id = Get-NetTCPConnection -LocalAddress 0.0.0.0 -LocalPort 10050 -ErrorAction SilentlyContinue |
Select-Object -ExpandProperty OwningProcess;
if (-not $id) {
Write-Host "$zabbix Port Opened"
if (Get-WmiObject -Class win32_service -Filter "Name='Zabbix Agent'") {
Write-host "Already exists. Deleting..."
$servZabbix = (Get-WmiObject -Class win32_service -Filter "Name='Zabbix Agent'")
$servZabbix.Delete()
我的挑戰是在Windows 2008服務器上使用PowerShell v2(我猜)。 我想做一個適用於任何Windows Server版本的通用PowerShell腳本。 你們可以幫我嗎?
哪部分與Powershell v2不兼容? –
您可以執行「Invoke-Command -Computername -Scriptblock {$ PSVersionTable.psversion}」以獲取Powershell版本。 –
@MaximeFranchot'Get-NetTCPConnection'不是POSH2。您可以在2.0版本模式下打開PowerShell:'powershell.exe -Version 2.0',並進行測試,如果你想... – VertigoRay