string cmd = " $srv = new-object Microsoft.SqlServer.Management.Smo.Server('" + svr + "')" + Environment.NewLine;
cmd += " $srv.Logins | where-object {$_.Name -eq 'DOMAIN\server55' } | select-object 'State'" + Environment.NewLine;
Этот код добавляется между кодом PSSnapin и PSSession, затем вызывается:
util>string prep = "$hasSnapin = get-pssnapin | Select { $_.Name.toLower().Trim() = 'sqlservercmdletsnapin100' }" + Environment.NewLine;
util>prep += "if ($hasSnapin -eq $null) { Add-Pssnapin SqlServerCmdletSnapin100 }" + Environment.NewLine;
util>cmd = prep;
util>cmd = "$pssessSql = New-PSSession -ComputerName " + svr + Environment.NewLine;
util>cmd += " Invoke-Command -session $pssessSql -ScriptBlock {" + Environment.NewLine;
util>cmd += " " + " sqlps -nologo -noprofile -command {" + Environment.NewLine;
util>cmd += " " + command + " }" + Environment.NewLine;
util>cmd += " }" + Environment.NewLine;
util>cmd += " Remove-PSSession -Session $pssessSql" + Environment.NewLine;
util>cmd += " exit";
util>try {
util>IList<System.Management.Automation.PSObject> results = pipeline.Invoke();
util>runspace.Close();
util>return results;
util>}
Если я перехватываю скрипт, идущий в Invoke, он работает, заменяя «\ r \ n» на новую строкупочему это не работает в C #, у меня есть другие скрипты, работающие из C #, поэтому, возможно, отсутствует что-то очевидное, вот захваченный код, который запускается из приглашения ps:
$hasSnapin = get-pssnapin | Select { $_.Name.toLower().Trim() = 'sqlservercmdletsnapin100' }
if ($hasSnapin -eq $null) { Add-Pssnapin SqlServerCmdletSnapin100 }
$pssessSql = New-PSSession -ComputerName Server54
Invoke-Command -session $pssessSql -ScriptBlock {
sqlps -nologo -noprofile -command {
$srv = new-object Microsoft.SqlServer.Management.Smo.Server('Server54')
$srv.Logins | where-object {$_.Name -like 'DOMAIN\Server55$' } | select-object 'State' }
}
Remove-PSSession -Session $pssessSql
exit
Спасибо за любые подсказкиУ меня были проблемы с вложенными кавычками, но я смог получить большинство из них, так что я думаю это из \ r \ n в коде, но не уверен, как это выяснить, я не могу получить результаты, возвращаемые изприложение, но весь сценарий работает нормально через приглашение ps.