Domanda

Sto usando System.Management.Automation di costruire un programma che funge da firewall, in sostanza, e mi chiedevo se esiste un cmdlet specifico PowerShell 2 per gestire le modifiche IPSec per un server? (Vale a dire, che duplica netsh funzionalità IPSec)?

O avrei dovuto scriverne uno? : P

spero in una soluzione più pulita di chiamare un [diagnostics.process] all'interno del PowerShell codice per gestire le query netsh, e pensato un cmdlet sarebbe meglio.

Qualcuno ha qualche consiglio o trucchi? O devo solo iniziare a scavare attraverso la 'Scrivi Windows PowerShell cmdlet' documentazione all'indirizzo:

http://msdn.microsoft.com /en-us/library/dd878294%28VS.85%29.aspx

Grazie per tutte le idee!

È stato utile?

Soluzione

Purtroppo in questo momento, non ci sono i cmdlet di PowerShell nativi che forniscono funzionalità simili a netsh.

Detto questo, non avrebbe dovuto accendere un nuovo processo per eseguire comandi netsh in una funzione PowerShell. È possibile eseguire qualsiasi exe normalmente si corre in CMD in una funzione PS o script inline proprio come si farebbe con un cmdlet. È possibile salvare l'output in una variabile ed elaborare il testo con select-stringa o l'operatore -match.

A titolo di esempio

Function Get-NetShIPInterface {
netsh int ip show int
}
$interface = Get-NetshIPinterface
$interface | select-string "Local Area Connection"

Alla fine avremo networking cmdlet, ma per ora, netsh può ottenere il lavoro fatto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top