Кажется, нет более легкого пути - пока. Я могу дать вам некоторые кусочки, которые вам нужны, чтобы проложить путь.
Данные об имени пользователя и пароле хранятся в формате XML в поле ExtensionSettings ReportServer.dbo.Subscription таблица.
К сожалению, имя пользователя и пароль хранятся как
<ParameterValues>
<ParameterValue>
<Name>PATH</Name>
<Value>\\SERVER_NAME\files\TEST\Automation\Dropoff</Value>
</ParameterValue>
<ParameterValue>
<Name>FILENAME</Name>
<Value>MEMBERS</Value>
</ParameterValue>
<ParameterValue>
<Name>FILEEXTN</Name>
<Value>True</Value>
</ParameterValue>
<ParameterValue>
<Name>USERNAME</Name>
<Value>AABBEItDo8/msevjegsUsAlJf5eo1fTFjFe16FNk94Z+7hQvqsSHgW93DHqSL3rF2iHOCiwkvV9kEFGeUMG0tW4VV6gdQghXup+2V3BZHwo=</Value>
</ParameterValue>
<ParameterValue>
<Name>PASSWORD</Name>
<Value>AABBpjdpbU2qN46RzMvYGfVPIW5B3cOlFtzXeIo8Sfn3uOSH5LiXbfptxYuFMNgR+5uYpHnh+6Y5oY4GDn6TXwOSYa5La+40</Value>
</ParameterValue>
<ParameterValue>
<Name>RENDER_FORMAT</Name>
<Value>PDF</Value>
</ParameterValue>
<ParameterValue>
<Name>WRITEMODE</Name>
<Value>Overwrite</Value>
</ParameterValue>
</ParameterValues>
Я не нашел способа выяснить, какими должны быть хэшированные значения, не меняя их сначала, а затем просматривая Настройки расширений, чтобы найти Пароль. Вы можете обновить один вручную, а затем просмотреть новое значение, чтобы обновить остальные.
Вам понадобится цикл для просмотра нужных подписок по одной за раз.
Вот код для обновления пароля:
DECLARE @PASSWORD AS VARCHAR(150) = 'AABBpjdpbU2qN46RzMvYGfVPIW5B3cOlFtzXeIo8Sfn3uOSH5LiXbfptxYuFMNgR+5uYpHnh+6Y5oY4GDn6TXwOSYa5La+40'
DECLARE @EXTENSION_SETTINGS XML
--Add loop to go through all subscriptions
SELECT @EXTENSION_SETTINGS = ExtensionSettings
FROM ReportServer.dbo.Subscriptions
WHERE SubscriptionID = @SUBSCRIPTION_ID;
SET @EXTENSION_SETTINGS.modify('replace value of (/ParameterValues/ParameterValue[Name="PASSWORD"]/Value/text())[1] with sql:variable("@PASSWORD")');
UPDATE dbo.Subscriptions
SET ExtensionSettings = CAST(@EXTENSION_SETTINGS AS VARCHAR(8000))
WHERE SubscriptionID = @SUBSCRIPTION_ID
--Next in Loop