Ich interating durch eine Liste von Microsoft.SqlServer.Management.Smo.Server
Objekten und das Hinzufügen von ihnen zu einer Hash-Tabelle etwa so:Wie hängt man den Hashtable-Wert der Powershell an?
$instances = Get-Content -Path .\Instances.txt
$scripts = @{}
foreach ($i in $instances)
{
$instance = New-Object Microsoft.SqlServer.Management.Smo.Server $i
foreach($login in $instance.Logins)
{
$scripts.Add($instance.Name, $login.Script())
}
}
So weit so gut. Ich möchte jetzt eine Zeichenfolge an das Ende des Hashtable-Werts anhängen. Daher möchte ich für eine $ Instanz eine Zeichenfolge an den Hashtable-Wert für diese $ Instanz anhängen. Wie würde ich das tun? Ich habe mit diesem begonnen, aber ich bin nicht sicher, ob ich auf dem richtigen Weg bin:
foreach ($db in $instance.Databases)
{
foreach ($luser in $db.Users)
{
if(!$luser.IsSystemObject)
{
$scripts.Set_Item ($instance, <what do I add in here?>)
}
}
}
Prost
Übrigens muss es keine HashTable sein - vielleicht wäre ein 'System.Collections.Generic.Dictionary [string, string]' besser? –
Mark: Generics in PowerShell sind ein bisschen eklig, obwohl. Die meiste Zeit würde ich sagen, wenn du sie nicht dringend benötigst, benutze sie nicht, da der Code eigentlich weniger klar ist. – Joey