@manhng

Welcome to my blog!

Powershell & IIS

March 26, 2021 23:20

Powershell & IIS (edit)

1) Tìm đường dẫn của MSBuild.exe

Tìm đường dẫn của MSBuild.exe? Vào Powershell, gõ lệnh sau:

&"${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -prerelease -products * -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe

Tìm đường dẫn của devenv.exe hoặc Installer\setup.exe? Vào Powershell, gõ lệnh sau:

&"${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -prerelease -products *

2) Dùng MSBuild để BUILD & DEPLOY ứng dụng ASP.NET hoặc ASP.NET Core

Using command-line MSBuild tool to build .Net Project/Solution | Sparekh (HAY)

Build and Deploy using MSBuild command-line tool | Sparekh (HAY)

Use MSBuild.exe to build specific targets in solutions - Visual Studio | Microsoft Docs

MSBuild publish dotnet core application - Stack Overflow (HAY)

Build a solution:

msbuild  NameOfYourSoution.sln

Build a specific project

msbuild NameOfYourProject.csproj

The project could be c# or vb or any other .Net compatible project.

Both of the above commands will build a debug version of your solution/project. What if you want to specify  Release Configuration or other Configuration you created?

This can be easily handled with MSBuild properties arguments.

Specifying MSBuild Configuration parameter:

msbuild NameOfYourProject.csproj /p:Configuration=Release

Rebuilding your project with MSBuild command-line

This can be achieved with /t: argument where t stands for Targets

msbuild NameOfYourProject.csproj /t:rebuild

Cleaning your Solution/Project with MSBuild command-line

msbuild NameOfYourSolution.sln /t:clean

Build & Deploy 

Here is the all-in one Build and Deploy msbuild command. You can extend it to your liking by adding more parameters.

msbuild YourProject.csproj /P:Configuration=Release /P:DeployOnBuild=True /P:DeployTarget=MsDeployPublish /P:MsDeployServiceUrl=https://yourserver-address/msdeploy.axd /P:AllowUntrustedCertificate=True /P:MSDeployPublishMethod=WMSvc /P:CreatePackageOnPublish=True /P:UserName=username /P:Password=password /P:DeployIISAppPath="yoursite.com" 

 

3) Deploy using public profiles

Visual Studio publish profiles (.pubxml) for ASP.NET Core app deployment | Microsoft Docs

Visual Studio publish profiles for ASP.NET Core app deployment

VS_Publish_Profiles_1.1.pdf (windows.net)

Guide to use the dotnet publish

docs/dotnet-publish.md at main · dotnet/docs · GitHub

Publish on Azure DevOps

Publish a self-contained .NET Core 3.1 app on Azure DevOps | elmah.io

4) Dùng PowerShell để tạo Website trong IIS (Web Server)

https://octopus.com/blog/iis-powershell (HAY HAY HAY)

https://docs.microsoft.com/en-us/powershell/module/iisadministration/new-iissite?view=windowsserver2019-ps

https://docs.microsoft.com/en-us/powershell/module/webadminstration/new-webapppool?view=winserver2012-ps

https://stackoverflow.com/questions/4629749/how-can-you-change-an-iis-sites-app-pool-with-the-powershell-web-admin-commandl

https://petri.com/enable-iis-remote-management-powershell-create-new-sites

Import-Module WebAdministration
Set-Location IIS:\AppPools\
Get-ChildItem

DefaultAppPool

$Folder = New-Item C:\inetpub\wwwroot\test –ItemType directory
$Website = New-Website -Name "test" -Port 80 -PhysicalPath $Folder -ApplicationPool DefaultAppPool
Set-ItemProperty 'IIS:\Sites\test' applicationPool DefaultAppPool

PowerShell Script (Remember)

October 16, 2019 16:30

PowerShell Script (edit)

https://docs.microsoft.com/en-us/powershell/scripting/getting-started/starting-windows-powershell?view=powershell-6

https://www.windowscentral.com/how-create-and-run-your-first-powershell-script-file-windows-10

PowerShell là một shell tương tác và ngôn ngữ kịch bản từ Microsoft làm thay đổi suy nghĩ về một shell dòng lệnh. Nó có các tính năng rất thú vị hơn và vượt trội hơn so với những shell Unix quen thuộc, và có một hệ sinh thái mạnh mẽ và cộng đồng đông đảo.

Trong hai phần hướng dẫn này, bạn sẽ tìm hiểu về một số thứ tuyệt vời mà bạn có thể làm với PowerShell, lịch sử và kiến trúc của nó, khái niệm của nó và so sánh nó với shell Unix chẳng hạn như Bash. Hãy sẵn sàng cho một cuộc hành trình thú vị!

Nếu bạn đang ở trên Windows 10, thì bạn đã có sẵn nó. Nếu không, tải nó từ trang web của Microsoft.

Khi PowerShell được cài đặt, điều đầu tiên bạn muốn làm là cho phép thực thi script. Khởi chạy PowerShell với quyền quản trị và gõ: Set-ExecutionPolicy RemoteSigned. Bạn chỉ cần làm điều đó một lần. Bây giờ, cập nhật các tập tin trợ giúp: Update-Help -Force.

https://code.tutsplus.com/vi/tutorials/the-power-of-powershell-part-1--cms-27419

Là một Quản trị viên, bạn có thể đặt chính sách thực thi bằng cách nhập chính sách này vào cửa sổ PowerShell của mình:

CMD > Set-ExecutionPolicy RemoteSigned

CMD > & .\test.ps1

PowerShell.exe -ExecutionPolicy RemoteSigned -File "C:\Users\xxx\Desktop\test.ps1"

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-6

Set-ExecutionPolicy

https://quantrimang.com/10-lenh-powershell-co-ban-huu-ich-danh-cho-windows-74813

Nếu bạn muốn thay đổi chính sách thành RemoteSign chỉ cho Người dùng hiện tại, bạn sẽ chạy lệnh sau:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Nếu bạn ở trong môi trường mà bạn không phải là quản trị viên, bạn có thể đặt Chính sách thực thi chỉ dành cho bạn và nó sẽ không yêu cầu quản trị viên.

Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "RemoteSigned"

hoặc là

Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "Unrestricted"

Mặc dù bạn có thể tạo và thực thi các đoạn mã PowerShell khác nhau, nhưng ở chế độ mặc định Microsoft đã tắt bỏ tính năng này để phòng tránh các loại mã độc khác nhau khi xâm nhập vào hệ thống có thể tự kích hoạt và khởi động trong môi trường PowerShell. Người sử dụng có thể áp dụng lệnh Set-ExecutionPolicy để thiết lập các mức bảo mật khác nhau, cụ thể có 4 lựa chọn phù hợp:

 - Restricted: đây là chính sách mặc định của hệ thống, các câu lệnh PowerShell đều bị khóa, người sử dụng chỉ có thể nhập lệnh nhưng không thực thi được.

 - All Signed: nếu bạn hoặc người quản trị thiết lập mức All Signed thì các đoạn mã sẽ được thực thi, nhưng chỉ áp dụng với những thành phần được chỉ định rõ ràng.

 - Remote Signed: chính sách bảo mật khi ở mức này, bất cứ đoạn mã PowerShell được tạo bên trong hệ thống local sẽ được phép hoạt động. Còn những mã tạo qua remote thì chỉ được phép chạy khi gán thuộc tính đầy đủ.

 - Unrestricted: không áp dụng bất cứ hình thức ngăn cấm nào trong hệ thống.

Cú pháp chung của lệnh này bao gồm tên của lệnh Set-ExecutionPolicy đứng sau chính sách. Ví dụ như sau:

Set-ExecutionPolicy Unrestricted

Windows PowerShell Integrated Scripting Environment (ISE)

June 17, 2019 11:24

Windows PowerShell Integrated Scripting Environment (ISE) (edit)

Mở Windows PowerShell ISE

Start > Run > PowerShell_ISE "D:\Sample.ps1"

hoặc

Start > Run > PowerShell_ISE

Enter: psEdit "D:\Sample.ps1"

Enter to edit the Sample.ps1

Debug PowerShell Script

F9 to set Breakpoint

F5 to Debug

Một số dường dẫn sử dụng để build tự động

Wix Tools: "C:\Program Files (x86)\WiX Toolset v4.0\bin\WixToolset.Dtf.WindowsInstaller.dll"

MSBuild.exe: "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\msbuild.exe"

DevEnv.exe: "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe”

NETFX 4.6.1 Tools: "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools"

Hosts file: "C:\Windows\System32\drivers\etc\hosts"

PowerShell

May 8, 2019 17:32

PowerShell (edit)

Ứng dụng ví dụ: Xem thời gian khởi động máy

Tệp Get-ServerUptimeReport.ps1

+ Vào Start > tìm kiếm Power Shell bằng cách gõ "Windows PowerShell", rồi chạy chương trình đó bằng quyền Administrator

+ Chạy lệnh sau với chú ý có ký tự space (dấu cách) ở đầu dòng lệnh:

Set-ExecutionPolicy RemoteSigned > bấm 'Y' để đồng ý

 & .\Get-ServerUptimeReport.ps1 -ComputerName MANHNV

Tìm đường dẫn của MSBuild.exe

Vào PowerShell bằng quyền Administrator, gõ lệnh sau:

&"${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -prerelease -products * -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe

Tìm đường dẫn của devenv.exe hoặc Installer\setup.exe? Vào Powershell, gõ lệnh sau

&"${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -prerelease -products *

https://docs.microsoft.com/en-us/powershell/scripting/getting-started/starting-windows-powershell?view=powershell-6

https://www.windowscentral.com/how-create-and-run-your-first-powershell-script-file-windows-10

Windows PowerShell Integrated Scripting Environment (ISE)

Create PowerShell Script

https://www.windowscentral.com/how-create-and-run-your-first-powershell-script-file-windows-10#create_powershell_script_windows10

Run PowerShell Script

Set-ExecutionPolicy RemoteSigned

CMD > Set-ExecutionPolicy RemoteSigned

CMD > & .\test.ps1

https://www.windowscentral.com/how-create-and-run-your-first-powershell-script-file-windows-10#run_powershell_script_windows10

Auto Deploy with PowerShell

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\devenv.exe

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe

Bài viết hay

https://dotnet-helpers.com/powershell/getting-computer-uptime-using-powershell/

https://4sysops.com/wiki/how-to-install-the-powershell-active-directory-module/

https://theitbros.com/install-and-import-powershell-active-directory-module/

https://thesysadminchannel.com/get-uptime-last-reboot-status-multiple-computers-powershell/

Tham khảo

https://stackoverflow.com/questions/2035193/how-to-run-a-powershell-script/2035209

https://www.addictivetips.com/windows-tips/auto-run-powershell-scripts-windows-10/

https://www.windowscentral.com/how-create-and-run-your-first-powershell-script-file-windows-10

Categories

Recent posts