Как мы можем оптимизировать приведенный ниже скрипт PowerShell? - PullRequest
0 голосов
/ 04 сентября 2011

Мое намерение - обновить пароль службы агента sql и поместить его в файл html.

$server = "LocalHost";$OldPass = "xyz";$NewPass = "abc"
[System.Reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement") | out-null
$wmi = new-object ("Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer") $server
$wmi.services | where {($_.ServiceAccount -eq '.\Ramu' -and $_.Type -eq 'SQLAgent')} | foreach {$_.ChangePassword($OldPass,$NewPass)}
$wmi.services | where {($_.ServiceAccount -eq '.\Ramu' -and $_.Type -eq 'SQLAgent')} | Select-object @{label="Server";expression={$wmi.name}},Name,Type,ServiceAccount,DisplayName,@{label="Status";expression={"Passwword update completed successfully on " + (get-date).ToString()}} | ConvertTo-HTML -head $a -body "<H2>$server SQL Service Account Password Update Status</H2>" | Out-File D:\RP-TEST\Test.htm

1 Ответ

0 голосов
/ 05 сентября 2011

Никто не ответил, возможно потому, что не ясно, что означает "оптимизировать" в вашем контексте. Единственный совет, который я могу вам дать, это то, что:

  • вы можете исключить часть Where, потому что вы вызываете ее дважды
  • длинные строки, такие как последняя, ​​очень трудно читать. Разрежь их.

Отредактированный код:

$server = "LocalHost";$OldPass = "xyz";$NewPass = "abc"

Add-type "Microsoft.SqlServer.SqlWmiManagement" | out-null

$wmi = new-object ("Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer") $server
$wmi.services | 
    Where {($_.ServiceAccount -eq '.\Ramu' -and $_.Type -eq 'SQLAgent')} | 
    Foreach {$_.ChangePassword($OldPass,$NewPass); $_} |   # note the added $_
    Select-object @{label="Server";expression={$wmi.name}},Name,Type,ServiceAccount,DisplayName,@{label="Status";expression={"Passwword update completed successfully on " + (get-date).ToString()}} | 
    ConvertTo-HTML -head $a -body "<H2>$server SQL Service Account Password Update Status</H2>" | 
    Out-File D:\RP-TEST\Test.htm
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...