Forum Discussion
PowerShell ile Invoke-WebRequest işlemleri (tr-TR)
PowerShell ile Webde surf yapmaya hazır mısınız? PowerShell ile browser tadında bir surf keyfi için tanımanız gereken komut "Invoke-WebRequest" ta kendisidir.
Invoke-WebRequest öncesi size basit bir PowerShell script ile dosya nasıl download edebilirsiniz göstermek isterim.
$WebClient = New-Object System.Net.WebClient
$WebClient.DownloadFile("http://<download linkinizi yazınız>","C:\dosya isminiz.formatı")
Örneğin windows admin center indirmek istiyorsunuz. Link ve indirmek istediğiniz dizini belirterek download işlemini gerçekleştirebilirsiniz. Biz bu örneğimizde Windows Admin Center download linkini yazıyoruz ve C:\ dizininde oluşmasını istiyoruz.
$WebClient = New-Object System.Net.WebClient
$WebClient.DownloadFile("http://aka.ms/WACDownload","C:\wac.msi")
Scrtipmizi çalıştırdıktan sonra mevcut uygulama çıktısı aşağıdaki gibidir.
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\Users\Administrator> $WebClient = New-Object System.Net.WebClient
PS C:\Users\Administrator> $WebClient.DownloadFile("http://aka.ms/WACDownload","C:\wac.msi")
PS C:\Users\Administrator> cd..
PS C:\Users> cd..
PS C:\> dir
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 15.09.2018 10:19 PerfLogs
d-r--- 16.05.2020 22:10 Program Files
d----- 18.05.2020 15:32 Program Files (x86)
d-r--- 9.05.2020 14:57 Users
d----- 18.05.2020 11:30 Windows
-a---- 18.05.2020 15:49 62980096 wac.msi
PS C:\>
Aynı süreci Invoke-WebRequest komutu ile gerçekleştirelim. daha basit şekilde işlemi halledelim yine bir önceki örneğimizde olduğu gibi indirme linkini ve indireceğimiz yeri belirliyoruz.
Invoke-WebRequest -Uri "<download linkini giriniz>" -OutFile "C:\dosya adiniz.formati"
Örnek Komutumuz ile MS SQL 2017 downlaod edelim. İndirme linkini ve indirmek istediğim dizini belirtiryorum.
Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/?linkid=853017" -OutFile "C:\sql2017.exe"
Uygulama çıktısı aşağıdaki gibidir.
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\Users\Administrator> Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/?linkid=853017" -OutFile "C:\sql2017.
exe"
PS C:\Users\Administrator> cd..
PS C:\Users> cd..
PS C:\> dir
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 15.09.2018 10:19 PerfLogs
d-r--- 16.05.2020 22:10 Program Files
d----- 18.05.2020 15:32 Program Files (x86)
d-r--- 9.05.2020 14:57 Users
d----- 18.05.2020 11:30 Windows
-a---- 18.05.2020 15:52 5325976 sql2017.exe
-a---- 18.05.2020 15:49 62980096 wac.msi
PS C:\>
Invoke-WebRequest ile bir web sitenin içeriğini txt formatında dowload edebilirsiniz. Bu sefer biraz daha karmaşık bir komut hazırlıyoruz. Pipline kullanarak bir objenin içeriğini Invoke-WebRequest ile çağırıp daha sonra bu içeriği txt olarak çıktısını alıyoruz.
Invoke-WebRequest "web adresi" | Select-Object -ExpandProperty Content | Out-File "C:\dosya ismi.txt"
Örneğin emreozanmemis.com web sitesi için bu süreci uygulayalım.
Invoke-WebRequest "http://emreozanmemis.com" | Select-Object -ExpandProperty Content | Out-Fi
le "C:\emreozanmemis.txt"
Uygulama çıktısı aşağıdaki gibidir.
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\Users\Administrator> Invoke-WebRequest "http://emreozanmemis.com" | Select-Object -ExpandProperty Content | Out-Fi
le "C:\emreozanmemis.txt"
PS C:\Users\Administrator> cd..
PS C:\Users> cd..
PS C:\> dir
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 15.09.2018 10:19 PerfLogs
d-r--- 16.05.2020 22:10 Program Files
d----- 18.05.2020 15:32 Program Files (x86)
d-r--- 9.05.2020 14:57 Users
d----- 18.05.2020 11:30 Windows
-a---- 18.05.2020 15:56 101964 emreozanmemis.txt
-a---- 18.05.2020 15:52 5325976 sql2017.exe
-a---- 18.05.2020 15:49 62980096 wac.msi
PS C:\>
Bu içeriği hiç indirmeden görüntülemek isterseniz de aşağıdaki komut işinizi fazlasıyla görecektir.
Invoke-WebRequest "http://www.emreozanmemis.com" -OutFile "file" -PassThru | Select-Object -ExpandProperty Content
Uygulama çıktısı
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\Users\Administrator> Invoke-WebRequest "http://www.emreozanmemis.com" -OutFile "file" -PassThru | Select-Object -E
xpandProperty Content
<!DOCTYPE html>
<html lang="tr" prefix="og: http://ogp.me/ns#">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<link rel="profile" href="http://gmpg.org/xfn/11">
<title>Emre Ozan Memis - Cloud and Datacenter Management</title>
<style type="text/css">
body .primary-background,
body button:hover,
body button:focus,
body input[type="button"]:hover,
body input[type="reset"]:hover,
body input[type="reset"]:focus,
body input[type="submit"]:hover,
body input[type="submit"]:focus,
body .widget .social-widget-menu ul li,
body .comments-area .comment-list .reply,
body .slide-categories a:hover,
body .slide-categories a:focus,
body .widget .social-widget-menu ul li:hover a:before,
body .widget .social-widget-menu ul li:focus a:before,
body .ham,
body .ham:before,
body .ham:after,
body .btn-load-more {
background: #33363b;
}
body .secondary-background,
body .wp-block-quote,
body button,
body input[type="button"],
body input[type="reset"],
body input[type="submit"],
body .widget.widget_minimal_grid_tab_posts_widget ul.nav-tabs li.active a,
body .widget.widget_minimal_grid_tab_posts_widget ul.nav-tabs > li > a:focus,
body .widget.widget_minimal_grid_tab_posts_widget ul.nav-tabs > li > a:hover,
body .author-info .author-social > a:hover,
body .author-info .author-social > a:focus,
body .widget .social-widget-menu ul li a:before,
body .widget .social-widget-menu ul li:hover,
body .widget .social-widget-menu ul li:focus,
body .moretag,
body .moretag,