J'ai besoin d'installer l'agent Zabbix sur certains serveurs, environ un millier. Dans chaque serveur (Windows 2008 et 2012) je voudrais vérifier si le port 10050 est utilisé, et si c'est le cas, alors j'ai besoin de savoir qui l'utilise quel processus, et si c'est Zabbix je l'arrête. Comme ceci:Insertion d'une sortie dans une variable
$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()
Mon défi est sur les serveurs Windows 2008 qui utilisent PowerShell v2 (je suppose). Je voulais faire un script PowerShell universel qui fonctionne dans n'importe quelle version de Windows Server. Pouvez-vous m'aider avec ça?
Quelle partie de ceci n'est pas compatible avec Powershell v2? –
Vous pouvez exécuter "Invoke-Command -Computername -Scriptblock {$ PSVersionTable.psversion}" pour obtenir la version de Powershell. –
@MaximeFranchot 'Get-NetTCPConnection' n'est pas POSH2. Vous pouvez ouvrir powershell en mode version 2.0: 'powershell.exe -Version 2.0' et faire des tests si vous voulez ... – VertigoRay