Каждая история должна иметь продолжение. И эта не исключение.
Благополучно победив одну проблему, задали мне другую. Это хорошо что мы выставили с запасом на восемь часов, но обязательно утром будет первый пользователь, который будет долго пялиться в белый экран. Для этого был создан скрипт который будет вставлен в планировщик и, допустим, в семь утра обращаться ко всем серверам имеющим Reporting Services и будить их. Будить решил банально, получить содержимое страницы.
Само собой, у каждого скрипта просто обязан быть недостаток и этот скрипт не исключение. Его минус в том, что опрашиваю я четыре сервера по очереди и процесс этот очень длительный. В идеале нужно чтобы он только будил службу и сразу переключался на другой сервер. Но мои познания в этой области совсем минимальные. Так же минус в учётных данных. Не придумал я, как запускать от имени другого пользователя. Хотя ни чего нет хорошего в том чтобы в скрипте для планировщика писать открыто имя и пароль. Подозреваю что ему хватит данных от имени какого пользователя было запущено задание.
Если кто найдёт решение лучше, буду очень благодарен.
$WebClient = New-Object net.WebClient
$webclient.UseDefaultCredentials = «true»
$webclient.DownloadString(«http://server1/reports»)
$webclient.DownloadString(«http://server2/reports»)
$webclient.DownloadString(«http://server3/reports»)
$webclient.DownloadString(«http://server4/reports«)

Как всегда с авторизацией подсказал Василий Гусев
$WebClient = New-Object net.WebClient
$webclient.Credentials = (Get-Credential).getnetworkcredential()
$webclient.DownloadString(«http://server1/reports»)
$webclient.DownloadString(«http://server2/reports»)
$webclient.DownloadString(«http://server3/reports»)
$webclient.DownloadString(«http://server4/reports»)
Это если запуск не из планировщика. Но в принципе можно доработать и даже зашифровать пароль.
http://xaegr.wordpress.com/2007/11/30/encryptdecryptps1/
Комментарий от zorion — 2008 Май 29, @ 13:38