Ich versuche, eine Funktion zu schreiben, die alle meine Server von der SQL-Datenbank bezieht. Es funktioniert korrekt. Ich muss Filter für jede Spalte implementieren, so kann ich die Funktion mit einem oder mehreren Filter aufrufen.Powershell Funktion Parameter zum Filtern
zum Beispiel, wenn ich alle UAT-Server ziehen muss, sollte ich in der Lage sein, etwas wie diese zu schreiben und es sollte alle UAT ziehen -
Get-SHservers -Enviornment "uat"
oder
Get-Shservers -Enviornment "uat" -Anwendung "App1"
oder eine beliebige Kombination dieser
function Get-SHServers
{
$connectionstring = (Get-SHJson "D:\config\configdb.json").value
$server = Get-SHSQLData $connectionstring -Query @"
select
b.Name as ApplicationName,
a.Name as ServerName,
a.FQDN,
c.Name ServerRole,
e.Name as Enviornment,
d.Name Domain,
f.Name ServerRegion
from
server a inner join Application b on a.ApplicationID = b.ID
left join ServerRole c on a.ServerRoleId = c.Id
left join Domain d on a.DomainID = d.id
left join Enviornment e on a.EnviornmentId = e.Id
left join ServerRegion f on a.ServerRegionID = f.Id
WHERE 1=1
order by 1
"@
foreach($item in $server) {
$output = [ordered] @{
ServerName = $item.ServerName
FQDN = $item.FQDN
ApplicationName = $item.ApplicationName
ServerRole = $item.ServerRole
Domain = $item.Domain
Enviornment = $item.Enviornment
ServerRegion = $item.ServerRegion
}
$obj = new-object -TypeName PSObject -property $output
$obj.psobject.TypeNames.Insert(0, "sh.config.server")
write-output $obj
}
}
ziehe ich den Filter in SQL für Performance Grund jede Hilfe ziehen lassen, dieses Verhalten zu implementieren? * Sollte ich 7 verschiedene Parameter an die Funktion übergeben und in einem [if else] validieren, wenn ein oder mehrere Parameter übergeben werden und SQL erstellen oder es einen einfacheren Weg in Powershell gibt, um dies zu tun *
Auch hier ist die Implementierung von Get-SHSQLData
Was ist Ihre Frage? Haben Sie versucht, einen Parameter zu implementieren und ist fehlgeschlagen? – briantist
Dies liest sich eher wie eine Frage zur T-SQL-Syntax für die WHERE-Klausel als eine PowerShell-Frage –
Was ist die 'Get-SHSQLData'-Funktion Implementierung? Sie könnten Parameterwerte für eine parametrisierte Abfrage an diese Funktion übergeben. –