我是一个PowerShell新手,我遇到了脚本问题。基本上,我已经创建了一个脚本,它将向文本文件中列出的多个SQL服务器添加一个sysadmin。文本文件只是服务器名称的一列。剧本似乎很好。
我想有一个报告,说明如果它在列表中的任何服务器失败。这可以是CSV或文本。我只是不想假设脚本在100多台服务器上运行良好,然后才发现帐户或服务器有问题。
这是我使用的脚本:
Import-Module -Name SqlPs
$servers = Get-Content -Path C:\Temp\servers.txt
$servers |
foreach{ `
Invoke-Sqlcmd -ServerInstance $_ `
-Database 'Master' `
-Query "EXEC master..sp_addsrvrolemember @loginame = N'DOMAIN\USERNAME', @rolename = N'sysadmin';" `
-QueryTimeout 10 `
}
如有任何协助,将不胜感激。
1条答案
按热度按时间jvidinwx1#
我建议将你的命令 Package 在一个try/catch块中来聚合失败:
这里最重要的是
ErrorAction:Stop
,它会把你的命令变成一个 terminating 错误,并被try/catch块捕获。