如何附加到powershell哈希表值?
我正在通过 Microsoft.SqlServer.Management.Smo.Server
对象列表进行交互,并将它们添加到哈希表中,如下所示:
$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())
}
}
到目前为止一切顺利。我现在想做的是将一个字符串附加到哈希表值的末尾。因此,对于 $instance,我想将一个字符串附加到该 $instance 的哈希表值中。我该怎么做呢?我已经开始这样做,但我不确定我是否走在正确的轨道上:
foreach ($db in $instance.Databases)
{
foreach ($luser in $db.Users)
{
if(!$luser.IsSystemObject)
{
$scripts.Set_Item ($instance, <what do I add in here?>)
}
}
}
干杯
I am interating through a list of Microsoft.SqlServer.Management.Smo.Server
objects and adding them to a hashtable like so:
$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 far so good. What I want to do now is append a string to the end of the hashtable value. So for an $instance I want to append a string to the hashtable value for that $instance. How would I do that? I have started with this, but I'm not sure if I'm on the right track:
foreach ($db in $instance.Databases)
{
foreach ($luser in $db.Users)
{
if(!$luser.IsSystemObject)
{
$scripts.Set_Item ($instance, <what do I add in here?>)
}
}
}
Cheers
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我会使用这段代码。
。
结果将是一个哈希表,其中每个实例作为键,以及一个字符串数组,其中每个字符串都是用户的 T-SQL 脚本。
I would go with this code.
.
The result will be a hash table with each instance as a key, and an array of strings where each string is the T-SQL script for a user.
.Script()
方法返回一个字符串集合。可能有一种更优雅的方法,但替换为
应该可行。
The
.Script()
method returns a string collection. There's probably a more elegant way of doing it, but replacingwith
should work.