Задать вопрос
  • Как скачать файл с помощью Powershell с сайта с авторизацией?

    @strelkov_av Автор вопроса
    Ммм правильно ли я понимаю, на примере сайта: sbfactory.ru/cdfiles
    1) Я открываю браузер, в девтулзе запись по умолчанию включена
    2) В адресную вставляю sbfactory.ru/cdfiles
    3) Всплывает окно авторизации где я ввожу (cdcustomer/allowmetodownload)
    4) Авторизация проходит успешно
    5) Далее кликаю по скачиваемому файлу sbfactory.ru/cdfiles/cd_install.exe

    И на выходе имею грубо говоря 3 запроса в девтулзе (4ый с favicon игнорю)
    Кликаю по любому в контексте выбираю Copy all Powershell

    На выходе получаю:

    Invoke-WebRequest -Uri "http://sbfactory.ru/cdfiles" session -Headers @{
    "Pragma"="no-cache"
      "Cache-Control"="no-cache"
      "Authorization"="Basic Y2RjdXN0b21lcjphbGxvd21ldG9kb3dubG9hZA=="
      "Upgrade-Insecure-Requests"="1"
      "User-Agent"="Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36"
      "Accept"="text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
      "Accept-Encoding"="gzip, deflate"
      "Accept-Language"="ru"
    }
    
    Invoke-WebRequest -Uri "http://sbfactory.ru/cdfiles/" -Headers @{
    "Pragma"="no-cache"
      "Cache-Control"="no-cache"
      "Authorization"="Basic Y2RjdXN0b21lcjphbGxvd21ldG9kb3dubG9hZA=="
      "Upgrade-Insecure-Requests"="1"
      "User-Agent"="Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36"
      "Accept"="text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
      "Accept-Encoding"="gzip, deflate"
      "Accept-Language"="ru"
    }
    
    Invoke-WebRequest -Uri "http://sbfactory.ru/cdfiles/cd_install.exe" -Headers @{
    "Pragma"="no-cache"
      "Cache-Control"="no-cache"
      "Authorization"="Basic Y2RjdXN0b21lcjphbGxvd21ldG9kb3dubG9hZA=="
      "Upgrade-Insecure-Requests"="1"
      "User-Agent"="Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36"
      "Accept"="text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
      "Referer"="http://sbfactory.ru/cdfiles/"
      "Accept-Encoding"="gzip, deflate"
      "Accept-Language"="ru"
    }


    И где то тут между строк я должен воспользоваться чем то подобным

    https://stackoverflow.com/a/51774034/13428313

    т.е. типа этого

    $Global:loginResponse = Invoke-WebRequest -uri ("https://dealer.md-bmc.rpdss.com/" + $form.Action) -SessionVariable login -Method post -Body $form.Fields
    
    $fileUploadPage = Invoke-WebRequest -Uri $fileUploadurl -WebSession $login
    Ответ написан
  • Как можно в одном запросе преобразовать строку c датой различных форматов в одно поле даты?

    @strelkov_av Автор вопроса
    Сделал по совету выше через CASE, не знал что внутри него можно регулярки оказывается использовать

    TO_DATE(field,
             CASE
               WHEN regexp_like(field, '^\d{4}-\d{1,2}-\d{1,2}$') THEN 'yyyy-mm-dd'
               WHEN regexp_like(field, '^\d{1,2}\/\d{1,2}\/\d{4}$') THEN 'mm/dd/yyyy'
               WHEN regexp_like(field, '^\d{1,2}.\d{1,2}.\d{4}$') THEN 'dd.mm.yyyy'
               ELSE NULL
             END
             ) AS field
    Ответ написан
    Комментировать