Khái niệm: Các câu hỏi thường gặp về Powershell.
Bạn có thể sử dụng danh sách này theo những cách khác nhau:
- Để sao chép / dán các lệnh thành một kịch bản
- Để xem một cách nhanh chóng các cú pháp của một lệnh cụ thể
- Để nâng cao kiến thức kỹ thuật của bạn
- Để khám phá các lệnh mới
- Để chuẩn bị cho một cuộc phỏng vấn việc làm
Cập nhật |
16 Tháng Bảy 2015
|
Tác giả | powershell-guru.com |
Nguồn | vietnamese.powershell-guru.com |
Danh mục |
75
|
Các câu hỏi |
610
|
System
Làm thế nào để xác định phiên bản PowerShell của tôi?
1 2 3 4 5 6 7 8 9 |
# via Powershell $PSVersionTable.PSVersion.Major # via Registry (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine').PowerShellVersion # Versions 1 and 2 (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine').PowerShellVersion # Versions 3 and 4 # via Remote Invoke-Command -ComputerName $computer -ScriptBlock { $PSVersionTable.PSVersion.Major } |
Làm thế nào để chạy Powershell trong một phiên bản tương thích ngược?
powershell.exe -Version 2.0
Làm thế nào để yêu cầu phiên bản Powershell tối thiểu (3,0 và cao hơn) trong một kịch bản với PowerShell?
#Requires -Version 3.0
Làm thế nào để yêu cầu quyền quản trị cho một kịch bản với Powershell?
1 2 3 4 5 |
# Solution 1 #Requires -RunAsAdministrator # Solution 2 [bool]((whoami.exe /all) -match 'S-1-16-12288') |
Làm thế nào để kiểm tra các thông số của một kịch bản với Powershell?
help -Name .\Get-ExchangeEnvironmentReport.ps1 -Full
Làm thế nào để lấy thông tin người sử dụng hiện tại với Powershell?
[Security.Principal.WindowsIdentity]::GetCurrent()
Làm thế nào để tạo, chỉnh sửa và tải lại một hồ sơ cá nhân với Powershell?
1 2 3 4 5 6 7 8 9 10 |
# Create New-Item -Type file -Force $profile # Edit psEdit $profile ise $profile # Reload (without restarting Powershell) & $profile .$profile |
Làm thế nào để ltạm ngừng 5 giây / phút trong một kịch bản với Powershell?
Start-Sleep -Seconds 5
Start-Sleep -Seconds 300 # 5 minutes
Làm thế nào để lấy thời gian khởi động cuối cùng với Powershell?
(Get-CimInstance -ClassName win32_operatingsystem).LastBootUpTime
Làm thế nào để có được loại máy gia tốc với Powershell?
1 |
[PSObject].Assembly.GetType('System.Management.Automation.TypeAccelerators')::Get.GetEnumerator() | Select-Object -Property @{Name='Key'; Expression={$_.Key}},@{name='Value'; Expression={$_.Value}} | Sort-Object -Property Key | Format-Table -AutoSize |
Làm thế nào để liệt kê các chương trình khởi động với Powershell?
1 |
Get-WmiObject -Class Win32_StartupCommand | Sort-Object -Property Caption | Format-Table -Property Caption, Command, User -AutoSize |
Làm thế nào để gỡ bỏ cài đặt một ứng dụng với Powershell?
1 2 |
$application = Get-WmiObject -Query "SELECT * FROM Win32_Product WHERE Name LIKE 'HP Recovery Manager'" $application.Uninstall() |
Làm thế nào để chụp ảnh màn hình desktop hoặc một cửa sổ đang hoạt động với Powershell?
Take-ScreenShot -Screen -File 'C:\scripts\screenshot.png' -Imagetype JPEG
Repository : Take-ScreenShot
Làm thế nào để có được số lượng tin nhắn cho hàng đợi MSMQ với Powershell?
1 |
Get-WmiObject -Class Win32_PerfRawData_MSMQ_MSMQQueue -ComputerName $computer | Format-Table -Property Name, MessagesInQueue -AutoSize |
Làm thế nào để thiết lập các chính sách thực thi với Powershell?
1 2 3 4 5 6 7 8 9 10 11 |
# Restricted - No scripts can be run. Windows PowerShell can be used only in interactive mode. Set-ExecutionPolicy -ExecutionPolicy Restricted # AllSigned - Only scripts signed by a trusted publisher can be run. Set-ExecutionPolicy -ExecutionPolicy AllSigned # RemoteSigned - Downloaded scripts must be signed by a trusted publisher before they can be run. Set-ExecutionPolicy -ExecutionPolicy RemoteSigned # Unrestricted - No restrictions - All Windows PowerShell scripts can be run. Set-ExecutionPolicy -ExecutionPolicy Unrestricted |
Làm thế nào để tạo ra một shortcut với Powershell?
1 2 3 4 |
$shell = New-Object -ComObject WScript.Shell $shortcut = $shell.Createshortcut("$HOME\Desktop\Procexp.lnk") $shortcut.TargetPath = 'C:\SysinternalsSuite\procexp.exe' $shortcut.Save() |
Làm thế nào để gắn hoặc gỡ bỏ một chương trình khỏi thanh tác vụ với Powershell?
1 2 3 4 |
$shell = New-Object -ComObject shell.application $program = $shell.Namespace($env:windir).Parsename('notepad.exe') $program.Invokeverb('TaskbarPin') $program.Invokeverb('TaskbarUnpin') |
Làm thế nào để mở một cửa sổ Explorer với Powershell?
[Diagnostics.Process]::Start('explorer.exe')
Invoke-Item -Path C:\Windows\explorer.exe
Làm thế nào để liệt kê các trình điều khiển thiết bị với Powershell?
Get-WmiObject -Class Win32_PnPSignedDriver
Get-WindowsDriver -Online -All
driverquery.exe
Làm thế nào để tạo ra một GUID với Powershell?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# Empty GUID [GUID]::Empty 00000000-0000-0000-0000-000000000000 # New GUID (lower case by default) [GUID]::NewGuid() 7049b4a9-e4bc-4008-a683-067934bd39cf # New GUID (upper case) $guid = ([GUID]::NewGuid()).ToString().ToUpper() DD7F5A7B-F46B-49D0-B8A1-D8D1360D2E27 # New GUID with a specific value [GUID]('bc4ad3d3-d704-4bd0-843f-d607fbbc4cd7') bc4ad3d3-d704-4bd0-843f-d607fbbc4cd7 # New GUID (Powershell v5) New-Guid cdcaa4d9-c85f-40d7-afd9-32f003afa130 |
Làm thế nào để có được vị trí của thư mục tạm thời cho người sử dụng hiện tại với Powershell?
[System.IO.Path]::GetTempPath()
Làm thế nào để nhập một đường dẫn và đường dẫn vào một đường dẫn duy nhất với PowerShell?
Join-Path -Path C:\ -ChildPath \windows
Làm thế nào để liệt kê tất cả các lệnh “Get-*” với Powershell?
Get-Command -Verb Get
Làm thế nào để liệt kê các thư mục hệ thống đặc biệt với Powershell?
1 |
[System.Enum]::GetNames([System.Environment+SpecialFolder]) | ForEach-Object -Process { $_ + " [System.Environment]::GetFolderPath($_)" } |
Làm thế nào để mount tập tin định dạng ISO / VHD với Powershell?
Mount-DiskImage 'D:\ISO\file.iso' # ISO
Mount-DiskImage 'D:\VHD\file.vhd' # VHD
Làm thế nào để kiểm tra phiên bản .NET Framework đã được cài đặt với Powershell?
1 |
Get-ChildItem -Path 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse | Get-ItemProperty -Name Version -EA 0 | Where-Object -FilterScript { $_.PSChildName -match '^(?!S)\p{L}' } | Select-Object -Property PSChildName, Version |
Làm thế nào để kiểm tra xem nếu phiên bản .NET Framework 4.5 được cài đặt với Powershell?
(Get-ItemProperty -Path 'HKLM:\Software\Microsoft\NET Framework Setup\NDP\v4\Full' -EA 0).Version -like '4.5*'
Làm thế nào để bắt đầu và dừng lại một bảng điểm (để tạo ra một kỷ lục của phiên Windows PowerShell) với Powershell?
Start-Transcript -Path 'C:\scripts\transcript.txt
Stop-Transcript
Làm thế nào để thay đổi thư mục hiện tại tới một địa điểm cụ thể với Powershell?
Set-Location -Path 'C:\scripts'
Làm thế nào để xóa màn hình với Powershell?
Clear-Host
cls # Alias
Làm thế nào để thay đổi độ phân giải màn hình hiển thị với Powershell?
Set-DisplayResolution -Width 1280 -Height 1024 -Force # Windows 2012
Làm thế nào để thiết lập toàn màn hình với Powershell?
mode.com 300
Làm thế nào để có được kích thước (chiều rộng và chiều cao) của một bức tranh với Powershell?
1 2 3 4 5 6 7 |
$picture = New-Object -ComObject Wia.ImageFile $picture.LoadFile('C:\screenshot.jpg') [PSCustomObject] @{ Width = $picture.Width Height = $picture.Height } |
Làm thế nào để có được khóa sản phẩm Windows với Powershell?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
function Get-WindowsKey { ## function to retrieve the Windows Product Key from any PC ## by Jakob Bindslet (jakob@bindslet.dk) param ($targets = '.') $hklm = 2147483650 $regPath = 'Software\Microsoft\Windows NT\CurrentVersion' $regValue = 'DigitalProductId' Foreach ($target in $targets) { $productKey = $null $win32os = $null $wmi = [WMIClass]"\\$target\root\default:stdRegProv" $data = $wmi.GetBinaryValue($hklm,$regPath,$regValue) $binArray = ($data.uValue)[52..66] $charsArray = 'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'M', 'P', 'Q', 'R', 'T', 'V', 'W', 'X', 'Y', '2', '3', '4', '6', '7', '8', '9' ## decrypt base24 encoded binary data For ($i = 24; $i -ge 0; $i--) { $k = 0 For ($j = 14; $j -ge 0; $j--) { $k = $k * 256 -bxor $binArray[$j] $binArray[$j] = [math]::truncate($k / 24) $k = $k % 24 } $productKey = $charsArray[$k] + $productKey If (($i % 5 -eq 0) -and ($i -ne 0)) { $productKey = '-' + $productKey } } $win32os = Get-WmiObject -Class Win32_OperatingSystem -ComputerName $target $obj = New-Object -TypeName Object $obj | Add-Member -MemberType Noteproperty -Name Computer -Value $target $obj | Add-Member -MemberType Noteproperty -Name Caption -Value $win32os.Caption $obj | Add-Member -MemberType Noteproperty -Name CSDVersion -Value $win32os.CSDVersion $obj | Add-Member -MemberType Noteproperty -Name OSArch -Value $win32os.OSArchitecture $obj | Add-Member -MemberType Noteproperty -Name BuildNumber -Value $win32os.BuildNumber $obj | Add-Member -MemberType Noteproperty -Name RegisteredTo -Value $win32os.RegisteredUser $obj | Add-Member -MemberType Noteproperty -Name ProductID -Value $win32os.SerialNumber $obj | Add-Member -MemberType Noteproperty -Name ProductKey -Value $productKey $obj } } |
Perfmon
Làm thế nào để có được hiện tại “% Processor Time” (trung bình) trong 5 giây cuối cùng (10 lần) với Powershell?
(Get-Counter '\Processor(_total)\% Processor Time' -SampleInterval 5 -MaxSamples 10).CounterSamples.CookedValue
Assemblies
Làm thế nào để nạp những thành phần với Powershell?
1 2 3 4 5 6 |
Add-Type -AssemblyName 'System.Windows.Forms' Add-Type -Path 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll' # Deprecated [System.Reflection.Assembly]::LoadFrom('C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll') |
Làm thế nào để kiểm tra các phần của .NET hiện đang nạp với Powershell?
1 2 3 4 5 |
# Check All [System.AppDomain]::CurrentDomain.GetAssemblies() # Check specific one [System.AppDomain]::CurrentDomain.GetAssemblies() | Where-Object -FilterScript { $_.FullName -like '*forms*' } |
Làm thế nào để tìm ra đường dẫn tới GAC (Global Assembly Cache) với Powershell?
1 |
(New-Object -TypeName Regex -ArgumentList '(?<=file:///)(.*)(?=\/GAC)', 'IgnoreCase').Match(([PSObject].Assembly.Evidence | Where-Object -FilterScript { $_.Value -ne $null }).Value).Value -replace '/', '\' |
Clipboard
Làm thế nào để sao chép kết quả vào clipboard với Powershell?
1 |
Get-Process | clip.exe |
Làm thế nào để có được nội dung của clipboard với Powershell?
Add-Type -AssemblyName PresentationCore
[Windows.Clipboard]::GetText()
Hotfixes
Làm thế nào để có được các hotfix đã được cài đặt với Powershell?
Get-HotFix -ComputerName $computer
Làm thế nào để có được các hotfix đã được cài đặt trước / sau một ngày cụ thể với Powershell?
Get-HotFix | Where-Object -FilterScript { $_.InstalledOn -lt ([DateTime]'01/01/2015') } # Before 01/01/2015
Get-HotFix | Where-Object -FilterScript {$_.InstalledOn -gt ([DateTime]'01/01/2015')} # After 01/01/2015
Làm thế nào để kiểm tra xem một hotfix được cài đặt với Powershell?
Get-HotFix -Id KB2965142
Làm thế nào để lấy được các hotfix được cài đặt trên một máy tính từ xa với Powershell?
Get-HotFix -ComputerName $computer
Pagefile
Làm thế nào để nhận được thông tin Pagefile với Powershell?
Get-WmiObject -Class Win32_PageFileusage | Select-Object -Property Name, CurrentUsage, AllocatedBaseSize, PeakUsage, InstallDate
Làm thế nào để có được kích thước đề nghị (MB) cho Pagefile với Powershell?
[Math]::Truncate(((Get-WmiObject -Class Win32_ComputerSystem).TotalPhysicalMemory) / 1MB) * 1.5
Làm thế nào để tạo ra một Pagefile (4096 MB) trên ổ đĩa D với Powershell?
1 2 3 4 5 |
Set-WmiInstance -Class Win32_PageFileSetting -Arguments @{ Name = 'D:\pagefile.sys' InitialSize = 4096 MaximumSize = 4096 } |
Làm thế nào để xóa một Pagefile trên ổ C: với Powershell?
1 2 3 4 5 |
$privileges = Get-WmiObject -Class Win32_computersystem -EnableAllPrivileges $privileges.AutomaticManagedPagefile = $false $privileges.Put() $pagefile = Get-WmiObject -Query "select * from Win32_PageFileSetting where name='c:\\pagefile.sys'" $pagefile.Delete() # Reboot required |
Maintenance
Làm thế nào để kiểm tra các phân mảnh của một ổ đĩa bằng Powershell?
1 |
$drive = Get-WmiObject -Class Win32_Volume -Filter "DriveLetter = 'c:'" $defragReport = $drive.DefragAnalysis() $defragReport.DefragAnalysis |
Làm thế nào để kiểm tra không gian đĩa của ổ đĩa với Powershell?
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Get-WmiObject -Class Win32_logicaldisk | Format-Table -Property @{ Name = 'Drive' Expression = {$_.DeviceID} }, @{ Name = 'Total size (GB)' Expression = {[decimal]('{0:N0}' -f($_.Size/1gb))} }, @{ Name = 'Free space(GB)' Expression = {[decimal]('{0:N0}'-f($_.Freespace/1gb))} }, @{ Name = 'Free (%)' Expression = {'{0,6:P0}' -f(($_.Freespace/1gb) / ($_.size/1gb))} } -AutoSize |
Files
Làm thế nào để mở một tập tin với Powershell?
Invoke-Item -Path 'C:\scripts\file.txt'
.'C:\scripts\file.txt'
Làm thế nào để đọc một tập tin với Powershell?
Get-Content -Path 'C:\scripts\file.txt'
gc "C:\scripts\file.txt" # Alias
Làm thế nào để xuất ra một file với Powershell?
1 2 3 |
'Line1', 'Line2', 'Line3' | Out-File -FilePath 'C:\scripts\file.txt' -Encoding ascii 'Line1', 'Line2', 'Line3' | Add-Content -Path file.txt 'Line1', 'Line2', 'Line3' > file.txt |
Làm thế nào để có được tên đầy đủ của tập tin kịch bản hiện tại với Powershell?
$MyInvocation.MyCommand.Path
Làm thế nào để nén (compress / zip) tập tin với Powershell?
1 2 3 4 5 6 7 8 9 10 11 12 13 |
### COMPRESS ONE FILE ### # Powershell v5 Compress-Archive -Path $fileSource -DestinationPath $fileDestination ### COMPRESS ONE FOLDER ### # Compress the folder 'R:\temp\zip\FolderToCompress' and created the file compressedFile.zip Add-Type -AssemblyName 'System.IO.Compression.Filesystem' [System.IO.Compression.ZipFile]::CreateFromDirectory($folderSource,$fileDestination) # Powershell v5 Compress-Archive -Path $folderSource -DestinationPath $fileDestination |
Làm thế nào để giải nén (uncompress / unzip) các tập tin với Powershell?
1 2 3 4 5 6 7 8 9 10 |
### UNCOMPRESS ONE FILE ### # Powershell v5 Expand-Archive -Path $fileSource -DestinationPath $folderDestination ### UNCOMPRESS ONE FOLDER ### # Compress the folder 'R:\temp\zip\FolderToCompress' and created the file compressedFile.zip Add-Type -AssemblyName 'System.IO.Compression.Filesystem' [System.IO.Compression.ZipFile]::ExtractToDirectory($fileSource, $folderDestination) |
Làm thế nào để xem các tập tin trong một tập tin ZIP với Powershell?
Add-Type -AssemblyName 'System.IO.Compression.Filesystem'
[System.IO.Compression.ZipFile]::OpenRead($fileZIP)
Làm thế nào để hiển thị kích thước của một tập tin trong KB với Powershell?
(Get-ChildItem -Path .\winsrv.dll).Length /1KB
(Get-ChildItem -Path .\winsrv.dll).Length /1MB
(Get-ChildItem -Path .\winsrv.dll).Length /1GB
Làm thế nào để tìm các tập tin lớn hơn hoặc ít hơn 1 GB với Powershell?
1 2 3 4 5 |
# Larger than 1 GB Get-ChildItem -Path C:\ -Recurse -ErrorVariable $errorsSearch | Where-Object -FilterScript {$_.Length -gt 1GB} # Less than 1 GB Get-ChildItem -Path C:\ -Recurse -ErrorVariable $errorsSearch | Where-Object -FilterScript {$_.Length -lt 1GB} |
Làm thế nào để hiển thị tên của một tập tin mà không có phần mở rộng với Powershell?
[System.IO.Path]::GetFileNameWithoutExtension('C:\Windows\system32\calc.exe') # Return calc
Làm thế nào để hiển thị phần mở rộng của một tập tin với Powershell?
[System.IO.Path]::GetExtension('C:\scripts\file.txt') # Return .txt
Làm thế nào để có được các phiên bản của một tập tin với Powershell?
1 2 |
(Get-Item -Path C:\Windows\System32\calc.exe).VersionInfo.FileVersion [System.Diagnostics.FileVersionInfo]::GetVersionInfo('C:\Windows\system32\calc.exe').FileVersion |
Làm thế nào để có được hash của một tập tin Powershell?
(Get-FileHash $file).Hash
Làm thế nào để có được các checksum MD5 / SHA1 của một tập tin với Powershell?
Get-FileHash $file -Algorithm MD5
Get-FileHash $file -Algorithm SHA1
Làm thế nào để hiển thị các tập tin ẩn với Powershell?
1 2 3 4 5 |
# Display only hidden files Get-ChildItem -Hidden -File # Display all files (including hidden files) Get-ChildItem -Force -File |
Làm thế nào để kiểm tra xem nếu một tập tin có phần mở rộng với Powershell?
1 |
[System.IO.Path]::HasExtension('C:\hiberfil.sys') |
Làm thế nào để thiết lập một tập tin là Read Only với Powershell?
Set-ItemProperty -Path .\file.txt -Name IsReadOnly -Value $true
Làm thế nào để thay đổi các thuộc tính LastWriteTime với tuần trước cho một tập tin với Powershell?
Set-ItemProperty -Path .\file.txt -Name LastWriteTime -Value ((Get-Date).AddDays(-7))
If not working, use Nirsoft tool: BulkFileChanger.
Làm thế nào để tạo ra một tập tin mới với Powershell?
New-Item -ItemType File -Path 'C:\scripts\file.txt' -Value 'FirstLine'
Làm thế nào để đổi tên một tập tin với Powershell?
Rename-Item -Path 'C:\scripts\file.txt' -NewName 'C:\scripts\powershellguru2.txt'
Làm thế nào để đổi tên hàng loạt nhiều tập tin với Powershell?
Get-ChildItem -Path C:\scripts\txt | Rename-Item -NewName { $_.Name -replace ' ', '_' }
Làm thế nào để xóa một tập tin với Powershell?
Remove-Item -Path 'C:\scripts\file.txt'
Làm thế nào để hiển thị 10 dòng mới nhất của một tập tin với Powershell?
Get-Content -Path 'C:\scripts\log.txt' -Tail 10
Làm thế nào để mở khóa một số tập tin của một thư mục với Powershell?
Get-ChildItem -Path 'C:\scripts\Modules' | Unblock-File
Làm thế nào để loại bỏ các dòng trống từ một tập tin với Powershell?
(Get-Content -Path file.txt) | Where-Object -FilterScript {$_.Trim() -ne '' } | Set-Content -Path file.txt
Làm thế nào để kiểm tra xem một tập tin có tồn tại với Powershell?
1 |
Test-Path -Path 'C:\Windows\notepad.exe' # Return True |
Làm thế nào để lấy ra tập tin mới nhất/cũ nhất được tạo ra trong một thư mục với Powershell?
1 2 |
Get-ChildItem | Sort-Object -Property CreationTime | Select-Object -Last 1 # Newest Get-ChildItem | Sort-Object -Property CreationTime | Select-Object -First 1 # Oldest |
Làm thế nào để loại bỏ các dòng trùng lặp từ một tập tin với Powershell?
1 2 |
Get-Content -Path .\file.txt | Select-Object -Unique # Display Get-Content -Path .\file.txt | Select-Object -Unique | Set-Content -Path .\testing.txt # Save |
1 2 3 |
$1MonthAgo = (Get-Date).AddMonths(-1) Get-ChildItem | ?{$_.LastWriteTime -lt $1MonthAgo} | Select-Object LastWriteTime,Name,DirectoryName # More Get-ChildItem | ?{$_.LastWriteTime -gt $1MonthAgo} | Select-Object LastWriteTime,Name,DirectoryName # Less |
1 2 3 |
$1YearAgo = (Get-Date).AddYears(-1) Get-ChildItem | ?{$_.LastWriteTime -lt $1YearAgo} | Select-Object LastWriteTime,Name,DirectoryName # More Get-ChildItem | ?{$_.LastWriteTime -gt $1YearAgo} | Select-Object LastWriteTime,Name,DirectoryName # Less |
Làm thế nào để xuất ra giá trị của một biến cho một tập tin với Powershell?
Set-Content -Path file.txt -Value $variable
Làm thế nào để đếm số lượng các tập tin (* .txt) trong một thư mục với Powershell?
1 2 3 |
[System.IO.Directory]::GetFiles('C:\scripts', '*.txt').Count (Get-ChildItem -Path 'C:\scripts' -Filter *.txt).Count (Get-ChildItem -Path 'C:\scripts' -Filter *.txt -Recurse).Count # Recursive |
Làm thế nào để tìm kiếm một chuỗi trong nhiều tập tin với PowerShell?
Select-String -Path 'C:\*.txt' -Pattern 'Test'
Làm thế nào để hiển thị dòng đầu tiên / dòng cuối cùng của một tập tin với PowerShell?
1 2 3 4 5 6 7 8 9 |
'Line1', 'Line2', 'Line3' | Out-File -FilePath file.txt # First Line Get-Content -Path .\file.txt | Select-Object -First 1 # Returns Line1 (Get-Content -Path .\file.txt)[0] # Returns Line1 # Last Line Get-Content -Path .\file.txt | Select-Object -Last 1 # Returns Line3 (Get-Content -Path .\file.txt)[-1] # Returns Line3 |
Làm thế nào để hiển thị một số dòng cụ thể của một tập tin với PowerShell?
1 2 3 |
'Line1', 'Line2', 'Line3' | Out-File -FilePath file.txt Get-Content -Path .\file.txt | Select-Object -Index 0 # Returns Line1 Get-Content -Path .\file.txt | Select-Object -Index 2 # Returns Line3 |
Làm thế nào để đếm số dòng của một tập tin với PowerShell?
1 2 |
'Line1', 'Line2', 'Line3' | Out-File -FilePath file.txt (Get-Content -Path .\file.txt | Measure-Object -Line).Lines # Returns 3 |
Làm thế nào để đếm số ký tự và lời nói của một tập tin với PowerShell?
1 2 3 4 5 6 7 8 9 10 |
'Test', 'Powershell', 'Test Powershell' | Out-File -FilePath file.txt # Words (Return 4) (Get-Content -Path .\file.txt | Measure-Object -Word).Words # Characters (Return 23) (Get-Content -Path .\file.txt | Measure-Object -Character).Characters # Characters and ignore whitespaces (Return 22) (Get-Content -Path .\file.txt | Measure-Object -Character -IgnoreWhiteSpace).Characters |
Làm thế nào để tải về một tập tin với Powershell?
Invoke-WebRequest -Uri 'http://www.nirsoft.net/utils/searchmyfiles.zip' -OutFile 'C:\tools\searchmyfiles.zip'
Làm thế nào để hiển thị đường dẫn đầy đủ của tập tin với Powershell?
Resolve-Path -Path .\script.ps1 # Return C:\Scripts\script.ps1
Copy
Làm thế nào để sao chép một tập tin vào một thư mục với Powershell?
Copy-Item -Path 'C:\source\file.txt' -Destination 'C:\destination'
Làm thế nào để sao chép một tập tin vào nhiều thư mục trong PowerShell?
1 2 |
$destination = 'C:\destination\Folder1', 'C:\destination\Folder2' $destination | Copy-Item -Path 'C:\source\file.txt' -Recurse -Destination {$_} |
Làm thế nào để sao chép nhiều tập tin vào một thư mục trong PowerShell?
Get-ChildItem -Path 'C:\source' -Filter *.txt | Copy-Item -Destination 'C:\destination'
Active Directory
Domain & Forest
Làm thế nào để tìm thấy máy chủ Global Catalog trong Active Directory với Powershell?
[System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().GlobalCatalogs
Làm thế nào để tìm các site trong Active Directory với Powershell?
[System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().Sites
Làm thế nào để tìm ra máy chủ hiện tại điều khiển miền với Powershell?
1 2 3 4 5 6 7 8 9 10 |
(Get-ADDomainController).HostName # Solution 1 $env:LOGONSERVER # Solution 2 [System.Environment]::GetEnvironmentVariable('logonserver') # Solution 3 nltest.exe /dsgetdc:domain.com |
Làm thế nào để tìm thấy tất cả các máy chủ điều khiển miền trong một miền với Powershell?
1 2 3 4 5 6 7 8 9 10 11 |
# Solution 1 Get-ADDomainController -Filter * | ForEach-Object -Process {$_.Name} # Solution 2 Get-ADGroupMember 'Domain Controllers' | ForEach-Object -Process {$_.Name} # Solution 3 Get-ADComputer -LDAPFilter '(&(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=8192))' | ForEach-Object -Process {$_.Name} # Solution 4 [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain() | ForEach-Object -Process {$_.DomainControllers} | ForEach-Object -Process {$_.Name} |
Làm thế nào để tìm thấy những thất bại nhân rộng AD với Powershell?
Get-ADReplicationFailure dc02.domain.com # Windows 8 and 2012
1 |
(Get-ADObject -Identity "cn=Directory Service,cn=Windows NT,cn=Services,$(([adsi]('LDAP://RootDSE')).configurationNamingContext)" -Properties tombstonelifetime).tombstonelifetime |
1 2 |
Get-ADDomain domain.com Get-ADForest domain.com |
Làm thế nào để lấy đường dẫn của “Deleted Objects” container trong Active Directory với Powershell?
(Get-ADDomain).DeletedObjectsContainer
Làm thế nào để kích hoạt tính năng AD Recycle Bin trong Active Directory với Powershell?
1 |
Enable-ADOptionalFeature -Identity 'CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=domain,DC=com' -Scope ForestOrConfigurationSet -Target 'domain.com' |
Làm thế nào để khôi phục lại một tài khoản AD từ Recycle Bin trong Active Directory với Powershell?
Get-ADObject -Filter 'samaccountname -eq "powershellguru"' -IncludeDeletedObjects | Restore-ADObject
Làm thế nào để tìm ra vai trò FSMO với Powershell?
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# Solution 1 Get-ADForest | Format-List -Property SchemaMaster, DomainNamingMaster Get-ADDomain | Format-List -Property PDCEmulator, RIDMaster, InfrastructureMaster # Solution 2 netdom query fsmo # Solution 3 [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().SchemaRoleOwner [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().NamingRoleOwner [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain().InfrastructureRoleOwner [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain().PdcRoleOwner [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain().RidRoleOwner |
Làm thế nào để kết nối với một bộ điều khiển tên miền cụ thể với Powershell?
Get-ADUser -Identity $user -Server 'serverDC01'
Làm thế nào để biết được máy chủ đăng nhập hiện tại với Powershell?
1 2 |
($env:LOGONSERVER).Substring(2) ([System.Environment]::GetEnvironmentVariable('logonserver')).Substring(2) |
Làm thế nào để thực hiện “gpupdate” trên một máy tính với Powershell?
Invoke-GPUpdate -Computer $computer -Force -RandomDelayInMinutes 0 # Windows 2012
Groups
Làm thế nào để tạo ra một nhóm mới trong Active Directory với Powershell?
1 |
New-ADGroup -Name 'Powershell Guru' -SamAccountName powershellguru -GroupCategory Security -GroupScope Global -DisplayName 'Powershell Guru' -Path 'OU=MyOU,DC=domain,DC=com' -Description 'My account' |
Làm thế nào để xóa một nhóm trong Active Directory với Powershell?
Remove-ADGroup -Identity 'PowershellGuru'
Làm thế nào để thêm một người dùng vào nhóm trong Active Directory với Powershell?
Add-ADGroupMember "Powershell Guru" -Members powershellguru
Làm thế nào để loại bỏ một người dùng từ một nhóm trong Active Directory với Powershell?
Remove-ADGroupMember 'Powershell Guru' -Members powershellguru
Làm thế nào để tìm thấy các nhóm rỗng (không có thành viên) trong Active Directory với Powershell?
Get-ADGroup -Filter * -Properties Members | Where-Object -FilterScript {-not $_.Members}
Làm thế nào để đếm các nhóm rỗng (không có thành viên) trong Active Directory với Powershell?
(Get-ADGroup -Filter * -Properties Members | Where-Object -FilterScript {-not $_.Members}).Count
Làm thế nào để có được các thành viên của một nhóm trong Active Directory với Powershell?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# Solution 1 Get-ADGroupMember 'Powershell Guru' | ForEach-Object -Process {$_.DistinguishedName} Get-ADGroupMember 'Powershell Guru' | ForEach-Object -Process {$_.Samaccountname} # Solution 2 Get-ADGroup 'Powershell Guru' -Properties Members | Select-Object -Property Members -ExpandProperty Members | Sort-Object # Solution 3 function Get-ADGroupMemberFast { [CmdletBinding()] Param ( [Parameter(Mandatory = $true)] [string]$GroupName ) $de = New-Object -TypeName System.DirectoryServices.DirectoryEntry $ds = New-Object -TypeName System.DirectoryServices.DirectorySearcher $ds.SearchRoot = $de $ds.Filter = "(cn=$group)" $null = $ds.PropertiesToLoad.Add('member') $result = $ds.FindOne() if($result) { $account = $result.GetDirectoryEntry() $account.Properties['member'] | ForEach-Object -Process {$_} } } Get-ADGroupMemberFast -GroupName 'Powershell Guru' |
1 2 |
Get-ADGroupMember 'Powershell Guru' -Recursive | ForEach-Object -Process {$_.DistinguishedName} Get-ADGroupMember 'Powershell Guru' -Recursive | ForEach-Object -Process {$_.SamAccountName} |
1 2 |
(Get-ADGroupMember 'Powershell Guru' | ForEach-Object -Process {$_.Samaccountname}).Count (Get-ADGroupMember 'Powershell Guru' -Recursive | ForEach-Object -Process {$_.Samaccountname}).Count |
Users
1 2 3 4 5 6 7 8 9 |
# Filter (Get-ADUser -SearchBase 'OU=myOU,DC=domain,DC=com' -Filter {name -like '*vip*'} -Properties Name).Name # LDAPFilter (Get-ADUser -SearchBase 'OU=myOU,DC=domain,DC=com' -LDAPFilter '(name=*vip*)' -Properties Name).Name # With a variable $user = '*vip*' (Get-ADUser -SearchBase 'OU=myOU,DC=domain,DC=com' -Filter {name -like $user} -Properties Name).Name |
Làm thế nào để di chuyển người dùng đến một OU khác trong Active Directory với Powershell?
Move-ADObject -Identity $dn -TargetPath 'OU=myOU,DC=domain,DC=com'
Làm thế nào để tìm thấy tất cả các thành viên đã được (Nested) cho một người dùng với Powershell?
Get-ADGroup -LDAPFilter "(member:1.2.840.113556.1.4.1941:=$($dn))"
Làm thế nào để có được các thành viên (tên ngắn / cắt ngắn) cho một người dùng với Powershell?
(Get-ADUser $user -Properties MemberOf).MemberOf | ForEach-Object -Process {($_ -split ',')[0].Substring(3)} | Sort-Object
1 2 |
Set-ADUser $samAccountName -DisplayName 'DisplayName' -GivenName 'Test' -Surname 'Powershell' -DisplayName 'Test Powershell' Rename-ADObject $dn -NewName 'Test Powershell' #FullName |
Làm thế nào để thay đổi các mô tả, văn phòng và (Tele) số điện thoại cho một tài khoản người dùng trong Active Directory với Powershell?
Set-ADUser $samAccountName -Description 'IT Consultant' -Office 'Building B' -OfficePhone '12345'
1 2 3 4 5 |
# 31/12/2015 Set-ADAccountExpiration $samAccountName -DateTime '01/01/2016' # Never Clear-ADAccountExpiration $samAccountName |
Làm thế nào để mở khóa một tài khoản người dùng trong Active Directory với Powershell?
Unlock-ADAccount $samAccountName
Làm thế nào để kích hoạt / vô hiệu hóa tài khoản người dùng trong Active Directory với Powershell?
1 2 |
Disable-ADAccount $samAccountName Enable-ADAccount $samAccountName |
Làm thế nào để loại bỏ một tài khoản người dùng trong Active Directory với Powershell?
Remove-ADUser $samAccountName
1 2 3 4 5 6 7 |
# Solution 1 : ask password $password = Read-Host -Prompt 'New Password' -AsSecureString # Solution 2 : specify password $password = ConvertTo-SecureString -String 'Q>9xYMw<3?' -AsPlainText -Force Get-ADUser -Filter "samaccountname -like 'helpdeskagent*'" | Set-ADAccountPassword -NewPassword $newpwd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $true |
1 2 3 4 5 6 7 |
# Solution 1 : ask password $password = Read-Host -Prompt 'New Password' -AsSecureString # Solution 2 : specify password $password = ConvertTo-SecureString -String 'Q>9xYMw<3?' -AsPlainText -Force Get-ADUser -Filter "samaccountname -like 'helpdeskagent*'" | Set-ADAccountPassword -NewPassword $newpwd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $true |
Làm thế nào để tìm chủ sở hữu của một tập tin trong Active Directory với Powershell?
1 2 3 |
$user = New-Object -TypeName System.Security.Principal.NTAccount -ArgumentList (Get-Acl -Path 'userFile.txt').Owner $sid = $user.Translate([System.Security.Principal.SecurityIdentifier]).Value Get-ADUser $sid |
Làm thế nào để tìm các OU (Organizational Unit) cho một người dùng trong Active Directory với Powershell?
[regex]::match("$((Get-ADUser $user -Properties DistinguishedName).DistinguishedName)",'(?=OU=)(.*\n?)').value
1 2 |
Search-ADAccount -AccountDisabled Get-ADUser -Filter {Enabled -ne $true} |
Làm thế nào để tìm thấy các tài khoản người dùng đã hết hạn trong Active Directory với Powershell?
Search-ADAccount -AccountExpired
Làm thế nào để tìm thấy các tài khoản người dùng bị khóa trong Active Directory với Powershell?
Search-ADAccount -LockedOut
Làm thế nào để tìm các SID của tài khoản người dùng trong Active Directory với Powershell?
(Get-ADUser $user -Properties SID).SID.Value
Làm thế nào để chuyển đổi tên người dùng thành SID trong Active Directory với Powershell?
1 2 |
$user = New-Object -TypeName System.Security.Principal.NTAccount -ArgumentList ('DOMAIN', 'user') $SID = ($user.Translate([System.Security.Principal.SecurityIdentifier])).Value |
Làm thế nào để chuyển đổi một SID thành tên người dùng trong Active Directory với Powershell?
1 2 |
$SID = New-Object -TypeName System.Security.Principal.SecurityIdentifier -ArgumentList ('SID') $user = ($SID.Translate( [System.Security.Principal.NTAccount])).Value |
1 2 3 |
$dn = 'CN=Powershell Test,OU=TEST,DC=domain,DC=com' $dn.Split(',')[0] # Returns "CN=Powershell Test" $dn.Split(',')[0].Split('=')[1] # Returns "Powershell Test" |
Làm thế nào để tìm thấy những ngày tạo / sửa đổi của một tài khoản người dùng với Active Directory với Powershell?
Get-ADUser -Identity $user -Properties whenChanged, whenCreated | Format-List -Property whenChanged, whenCreated
1 2 3 |
$schema = [DirectoryServices.ActiveDirectory.ActiveDirectorySchema]::GetCurrentSchema() $schema.FindClass('user').mandatoryproperties | Format-Table $schema.FindClass('user').optionalproperties | Format-Table |
Làm thế nào để có được đường dẫn LDAP cho một người sử dụng với Active Directory với Powershell?
1 2 3 4 |
$searcher = New-Object -TypeName DirectoryServices.DirectorySearcher -ArgumentList ([ADSI]'') $searcher.Filter = "(&(objectClass=user)(sAMAccountName= $user))" $searcher = $searcher.FindOne() $pathLDAP = $searcher.Path |
Làm thế nào để thay đổi các CN (Canonical Name) cho một người sử dụng với Active Directory với Powershell?
Rename-ADObject $((Get-ADUser $user -Properties DistinguishedName).DistinguishedName) -NewName 'Test Powershell'
1 2 |
$dn = (Get-ADUser $user -Properties DistinguishedName).DistinguishedName $parent = $dn.Split(',',2)[1] |
1 2 |
$dn = (Get-ADUser $user -Properties DistinguishedName).DistinguishedName $owner = (Get-Acl -Path "AD:$dn").Owner |
1 2 3 4 5 |
# Solution 1 [DateTime]::FromFileTime((Get-ADUser $user -Properties pwdLastSet).pwdLastSet) # Solution 2 w32tm /ntte 130787549514737594 |
Computers
Làm thế nào để kiểm tra các kênh an toàn giữa các máy tính cục bộ và miền với Powershell?
Test-ComputerSecureChannel
Làm thế nào để sửa chữa các kênh an toàn giữa các máy tính cục bộ và miền với Powershell?
Test-ComputerSecureChannel -Repair
Làm thế nào để vô hiệu hóa tài khoản máy tính trong Active Directory với Powershell?
Disable-ADAccount $computer
Làm thế nào để tìm các máy tính với hệ điều hành cụ thể trong Active Directory với Powershell?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
Get-ADComputer -Filter 'OperatingSystem -eq "CentOS"' Get-ADComputer -Filter 'OperatingSystem -eq "GNU/Linux"' Get-ADComputer -Filter 'OperatingSystem -eq "Linux"' Get-ADComputer -Filter 'OperatingSystem -eq "Mac OS X"' Get-ADComputer -Filter 'OperatingSystem -eq "OnTap"' Get-ADComputer -Filter 'OperatingSystem -eq "Red Hat Enterprise Linux Server"' Get-ADComputer -Filter 'OperatingSystem -eq "redhat-linux-gnu"' Get-ADComputer -Filter 'OperatingSystem -eq "Samba"' Get-ADComputer -Filter 'OperatingSystem -eq "Ubuntu"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows NT"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows 2000 Professional"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows 2000 Server"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows XP Professional"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows Server 2003"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows Vista™ Business"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows Vista™ Enterprise"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows Vista™ Entreprise"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows 7 Enterprise"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows 7 Professional"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows 7 Ultimate"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows Server 2008 R2 Enterprise"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows Server 2008 R2 Standard"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows Server® 2008 Enterprise"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows 8 Enterprise"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows 8.1 Enterprise"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows Server 2012 R2 Standard"' Get-ADComputer -Filter 'OperatingSystem -eq "Windows Server 2012 Standard"' |
Organizational Unit (OU)
Làm thế nào để tạo ra một Organizational Unit (OU) trong Active Directory với Powershell?
New-ADOrganizationalUnit -Name 'TEST' -Path 'DC=domain,DC=com'
Làm thế nào để có được chi tiết về Organizational Unit (OU) trong Active Directory với Powershell?
Get-ADOrganizationalUnit 'OU=TEST,DC=domain,DC=com' -Properties *
Làm thế nào để thay đổi mô tả của một Organizational Unit (OU) trong Active Directory với Powershell?
Set-ADOrganizationalUnit 'OU=TEST,DC=domain,DC=com' -Description 'My description'
1 2 3 4 5 |
# Protection ON Set-ADOrganizationalUnit 'OU=TEST,DC=domain,DC=com' -ProtectedFromAccidentalDeletion $true # Protection OFF Set-ADOrganizationalUnit 'OU=TEST,DC=domain,DC=com' -ProtectedFromAccidentalDeletion $false |
1 |
Get-ADOrganizationalUnit -Filter * -Property ProtectedFromAccidentalDeletion | Where-Object -FilterScript { $_.ProtectedFromAccidentalDeletion -eq $false } | Set-ADOrganizationalUnit -ProtectedFromAccidentalDeletion $true |
1 2 |
Set-ADOrganizationalUnit 'OU=TEST,DC=domain,DC=com' -ProtectedFromAccidentalDeletion $false Remove-ADOrganizationalUnit 'OU=TEST,DC=domain,DC=com' |
1 2 |
$parent = $dn.Split(',',2)[1] $parent = (Get-ADOrganizationalUnit $parent -Properties CanonicalName).CanonicalName |
Làm thế nào để liệt kê các Organizational Unit (OU) rỗng với Powershell?
1 2 3 4 5 |
# Solution 1 Get-ADOrganizationalUnit -Filter * -Property 'msDS-Approx-Immed-Subordinates' | Where-Object -FilterScript {$_.'msDS-Approx-Immed-Subordinates' -eq 0} # Solution 2 ([adsisearcher]'(objectclass=organizationalunit)').FindAll() | Where-Object -FilterScript { (([adsi]$_.Path).PSbase.Children | Measure-Object).Count -eq 0 } |
Làm thế nào để có được người quản lý của một nhóm với Powershell?
(Get-ADGroup $dn -Properties Managedby).Managedby
Regex (Regular Expression)
Làm thế nào để trích xuất một địa chỉ IP v4 (80.80.228.8) với Regex với Powershell?
$example = 'The IP address is 80.80.228.8'
$ip = [regex]::match($example,'\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b').value
Làm thế nào để trích xuất một địa chỉ MAC (C0-D9-62-39-61-2D) với dấu phân cách “-” với Regex với Powershell?
$example = 'The MAC address is C0-D9-62-39-61-2D'
$mac = [regex]::match($example,'([0-9A-F]{2}[-]){5}([0-9A-F]{2})').value
Làm thế nào để trích xuất một địa chỉ MAC (C0: D9: 62: 39: 61: 2D) với dấu phân cách “:” với Regex với Powershell?
$example = 'The MAC address is C0:D9:62:39:61:2D'
$mac = [regex]::match($example,'((\d|([a-f]|[A-F])){2}:){5}(\d|([a-f]|[A-F])){2}').value
Làm thế nào để trích xuất một ngày (2015/10/02) với Regex với Powershell?
$example = 'The date is 10/02/2015'
$date = [regex]::match($example,'(\d{2}\/\d{2}\/\d{4})').value
Làm thế nào để trích xuất một URL (www.powershell-guru.com) với Regex với Powershell?
$example = 'The URL is www.powershell-guru.com'
$url = [regex]::match($example,'[a-z]+[:.].*?(?=\s)').value
Làm thế nào để trích xuất một email (user@domain.com) với Regex với Powershell?
$example = 'The email is user@domain.com'
$email = [regex]::match($example,'(?i)\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b').value
Làm thế nào để trích xuất “guru” từ chuỗi ví dụ với Regex với Powershell?
$example = 'www.powershell-guru.com'
[regex]::match($example,'(?<=-)(.*\n?)(?=.com)').value
Làm thế nào để trích xuất “guru.com” từ chuỗi ví dụ với Regex với Powershell?
$example = 'www.powershell-guru.com'
[regex]::match($example,'(?<=-)(.*\n?)(?<=.)').value
Làm thế nào để trích xuất “powershell-guru.com” từ chuỗi ví dụ với Regex với Powershell?
$example = 'www.powershell-guru.com'
[regex]::match($example,'(?<=www.)(.*\n?)').value
Làm thế nào để trích xuất “123” từ chuỗi ví dụ với Regex với Powershell?
$example = 'Powershell123'
[regex]::match($example,'(\d+)').value
Làm thế nào để trích xuất “$” (ký hiệu đô la) từ chuỗi ví dụ với Regex với Powershell?
$example = 'Powershell`$123'
[regex]::match($example,'(\$)').value
Làm thế nào để thay thế một ký tự (* .com) với nhau (* .fr) trong một chuỗi với Regex với Powershell?
$example = 'www.powershell-guru.com'
[regex]::Replace($example, '.com','.fr')
Làm thế nào để thoát khỏi một chuỗi với Regex với Powershell?
[regex]::Escape('\\server\share')
Memory
Làm thế nào để lấy một tập hợp của bộ nhớ bằng “garbage collector “với Powershell?
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
Làm thế nào để có được kích thước bộ nhớ RAM của máy tính với Powershell?
1 2 3 4 5 6 7 8 |
# Solution 1 Get-CimInstance -ClassName 'cim_physicalmemory' | ForEach-Object -Process {$_.Capacity /1GB} # Solution 2 (Get-WmiObject -Class Win32_ComputerSystem).TotalPhysicalMemory /1GB # Solution 3 (systeminfo.exe | Select-String -Pattern 'Total Physical Memory:').ToString().Split(':')[1].Trim() |
Date
Làm thế nào để có được ngày hiện tại với Powershell?
Get-Date
[Datetime]::Now
Làm thế nào để hiển thị ngày trong các định dạng khác nhau với Powershell?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
### DATETIME ### Get-Date -Format D : Tuesday, June 30, 2015 Get-Date -Format f : Tuesday, June 30, 2015 3:22 PM Get-Date -Format F : Tuesday, June 30, 2015 3:22:58 PM Get-Date -Format g : 6/30/2015 3:23 PM Get-Date -Format G : 6/30/2015 3:23:30 PM Get-Date -DisplayHint Date : Tuesday, June 30, 2015 Get-Date -DisplayHint DateTime : Tuesday, June 30, 2015 3:31:21 PM ### DATE ### Get-Date -Format d : 6/30/2015 Get-Date -Format yyyyMMdd : 20150630 Get-Date -UFormat '%d%m%Y' : 30062015 Get-Date -UFormat '%m%d%Y' : 06302015 Get-Date -UFormat '%Y%m%d' : 20150630 Get-Date -UFormat '%d.%m.%Y' : 30.06.2015 Get-Date -UFormat '%m.%d.%Y' : 06.30.2015 Get-Date -UFormat '%Y.%m.%d' : 2015.06.30 Get-Date -UFormat '%d-%m-%Y' : 30-06-2015 Get-Date -UFormat '%m-%d-%Y' : 06-30-2015 Get-Date -UFormat '%Y-%m-%d' : 2015-06-30 Get-Date -UFormat '%d/%m/%Y' : 30/06/2015 Get-Date -UFormat '%m/%d/%Y' : 06/30/2015 Get-Date -UFormat '%Y/%m/%d' : 2015/06/30 ### HOUR ### Get-Date -Format t : 3:23 PM Get-Date -Format T : 3:23:30 PM Get-Date -Format HH : 15 (Hour) Get-Date -Format mm : 28 (Minute) Get-Date -Format ss : 30 (Seconds) Get-Date -DisplayHint Time : 3:23:30 PM ### DAY ### Get-Date -Format dddd : Tuesday Get-Date -Format ddd : Tue Get-Date -Format dd : 30 ### MONTH ### Get-Date -Format MMMM : June Get-Date -Format MMM : Jun Get-Date -Format MM : 06 ### YEAR ### Get-Date -Format yyyy : 2015 |
Làm thế nào để chuyển đổi một ngày (định dạng ngày giờ) sang định dạng (String) với Powershell?
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# Solution 1 $datetimeToString = '{0:MM/dd/yy}' -f (Get-Date '07/15/2015') # Solution 2 $datetimeToString = (Get-Date '07/15/2015').ToShortDateString() # Check $datetimeToString 07/15/15 $datetimeToString.GetType().Name String |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# Solution 1 $stringToDatetime = '07/15/2015' | Get-Date $stringToDatetime = '07-15-2015' | Get-Date # Solution 2 [Datetime]::ParseExact('07/15/2015', 'MM/dd/yyyy', $null) # Solution 3 $stringToDatetime = [Datetime]'7/15/2015' # Check $stringToDatetime Wednesday, July 15, 2015 12:00:00 AM $stringToDatetime.GetType().Name Datetime |
Làm thế nào để tính toán sự khác biệt (số ngày, giờ, phút hoặc giây) giữa hai ngày với Powershell?
(New-TimeSpan -Start $dateStart -End $dateEnd).Days
(New-TimeSpan -Start $dateStart -End $dateEnd).Hours
(New-TimeSpan -Start $dateStart -End $dateEnd).Minutes
(New-TimeSpan -Start $dateStart -End $dateEnd).Seconds
Làm thế nào để so sánh hai ngày với Powershell?
(Get-Date 2015-01-01) -lt (Get-Date 2015-01-30) # True
(Get-Date 2015-01-01) -gt (Get-Date 2015-01-30) # False
Làm thế nào để sắp xếp một hàng của ngày với định dạng kiểu ngày giờ với Powershell?
$arrayDate | Sort-Object -Property {$_ -as [Datetime]}
Làm thế nào để bắt đầu và dừng lại một đồng hồ bấm giờ với Powershell?
$chrono = [Diagnostics.Stopwatch]::StartNew()
$chrono.Stop()
$chrono
Làm thế nào để có được ngày hiện tại trong tuần với Powershell?
(Get-Date).DayOfWeek #Sunday
Làm thế nào để có được ngày hôm qua với Powershell?
(Get-Date).AddDays(-1)
Làm thế nào để có được số ngày trong một tháng (vào tháng Hai năm 2015) với Powershell?
[DateTime]::DaysInMonth(2015, 2)
Làm thế nào để biết nếu năm nhuận với Powershell?
[DateTime]::IsLeapYear(2015)
Làm thế nào để liệt kê các múi giờ với Powershell?
[System.TimeZoneInfo]::GetSystemTimeZones()
Networking
Làm thế nào để mã hóa (định dạng ASCII) và giải mã một URL với Powershell?
1 2 3 4 5 6 7 8 9 |
# Encode $url = 'http://www.powershell-guru.com' $encoded = [System.Web.HttpUtility]::UrlEncode($url) # Decode $decoded = [System.Web.HttpUtility]::UrlDecode($encoded) # Encoded : http%3a%2f%2fwww.powershell-guru.com # Decoded : http://www.powershell-guru.com |
Tương đương với các lệnh mạng bản địa với Powershell là gì?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# ipconfig Get-NetIPConfiguration Get-NetIPAddress # ping Test-NetConnection # tracert Test-NetConnection -TraceRoute # route Get-NetRoute # nslookup Resolve-DnsName # Windows 8.1 & Windows 2012 ([System.Net.Dns]::GetHostEntry($IP)).Hostname # IP > PC ([System.Net.Dns]::GetHostAddresses($computer)).IPAddressToString # PC > IP |
Làm thế nào để có được địa chỉ IP với Powershell?
Get-NetIPAddress # Windows 8.1 & Windows 2012
Get-NetIPConfiguration # Windows 8.1 & Windows 2012
Làm thế nào để vô hiệu hóa địa chỉ IP v6 (IPv6) với Powershell?
1 |
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters' -Name 'DisabledComponents' -Value '0xFFFFFFFF' -PropertyType"DWORD" # Reboot required |
Làm thế nào để xác nhận một địa chỉ IP v4 (IPv4) với Powershell?
if([ipaddress]'10.0.0.1'){'validated'}
Làm thế nào để tìm địa chỉ IP bên ngoài với Powershell?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Solution 1 (Invoke-WebRequest -Uri 'myexternalip.com/raw').Content (iwr -Uri 'myexternalip.com/raw').Content # Alias # Solution 2 $webClient = New-Object -TypeName System.Net.WebClient $webClient.DownloadString('http://myexternalip.com/raw') # Solution 3 while ($true) { Write-Output -InputObject "$(Get-Date) - $((Invoke-WebRequest -Uri 'http://myexternalip.com/raw' -Method Get).Content)" Start-Sleep -Seconds 300 } |
Làm thế nào để tìm ra tên máy từ một địa chỉ IP với Powershell?
([System.Net.Dns]::GetHostEntry($IP)).Hostname
Làm thế nào để tìm địa chỉ IP từ một Hostname với Powershell?
([System.Net.Dns]::GetHostAddresses($computer)).IPAddressToString
Làm thế nào để tìm các FQDN từ một Hostname với Powershell?
[System.Net.Dns]::GetHostByName($computer).HostName
Làm thế nào để tìm thấy những cấu hình mạng (IP, Subnet, Gateway và DNS) với Powershell?
1 |
Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Format-Table -Property Description, IpAddress, IPSubnet, DefaultIPGateway, DNSServerSearchOrder |
Làm thế nào để tìm địa chỉ MAC với Powershell?
Get-CimInstance win32_networkadapterconfiguration | Select-Object -Property Description, Macaddress
Get-WmiObject -Class win32_networkadapterconfiguration | Select-Object -Property Description, Macaddress
Làm thế nào để ping một máy tính với Powershell?
1 2 3 4 5 6 |
# Solution 1 Test-Connection -ComputerName $computer -Quiet # Returns True / False # Solution 2 $ping = New-Object -TypeName System.Net.Networkinformation.Ping $ping.Send($computer) |
Làm thế nào để kiểm tra xem một máy tính được kết nối với Internet với Powershell?
1 |
[Activator]::CreateInstance([Type]::GetTypeFromCLSID([Guid]'{DCB00C01-570F-4A9B-8D69-199FDBA5723B}')).IsConnectedToInternet |
Làm thế nào để thực hiện một tra cứu whois cho một trang web với PowerShell?
$whois = New-WebServiceProxy 'http://www.webservicex.net/whois.asmx?WSDL'
$whois.GetWhoIs('powershell-guru.com')
Làm thế nào để có được thông tin chi tiết của IP công cộng (Geolocation) với Powershell?
1 2 |
$externalIP = (Invoke-WebRequest -Uri 'myexternalip.com/raw').Content $detailsIP = ([xml](Invoke-WebRequest -Uri "http://freegeoip.net/xml/$externalIP" -UseBasicParsing).Content).Response |
Làm thế nào để kiểm tra xem một port được mở / đóng với Powershell?
New-Object -TypeName Net.Sockets.TcpClient -ArgumentList $computer, 135
Làm thế nào để thực hiện tracert với Powershell?
Test-NetConnection www.google.com -TraceRoute
Làm thế nào để sửa chữa một home network đã kết nối với Powershell?
Get-NetAdapter | Format-Table -Property Name, InterfaceDescription, ifIndex -AutoSize # Windows 8.1
Set-NetConnectionProfile -InterfaceIndex 6 -NetworkCategory Private
Làm thế nào để hiển thị các kết nối cổng TCP với Powershell?
netstat.exe -ano
Get-NetTCPConnection #Windows 8 and 2012
Làm thế nào để rút ngắn một URL dài thành một URL nhỏ với Powershell?
$url = 'www.powershell-guru.com'
$tiny = Invoke-RestMethod -Uri "http://tinyurl.com/api-create.php?url=$url"
Làm thế nào để có được các thiết lập proxy với Powershell?
Get-ItemProperty -Path HKCU:"Software\Microsoft\Windows\CurrentVersion\Internet Settings"
DNS
Làm thế nào để kiểm tra bộ nhớ cache DNS trên máy tính cục bộ với Powershell?
ipconfig.exe /displaydns
Get-DnsClientCache #Windows 8 and 2012
Làm thế nào để xóa bộ nhớ cache DNS trên máy tính cục bộ với Powershell?
ipconfig.exe /flushdns
Start-Process -FilePath ipconfig -ArgumentList /flushdns -WindowStyle Hidden
Clear-DnsClientCache #Windows 8 and 2012
Làm thế nào để xóa bộ nhớ cache DNS trên máy tính từ xa với Powershell?
Invoke-Command -ScriptBlock {Clear-DnsClientCache} -ComputerName computer01, computer02
Làm thế nào để đọc file Hosts với Powershell?
Get-Content -Path 'C:\Windows\system32\drivers\etc\hosts'
Password
Làm thế nào để tạo ra một mật khẩu ngẫu nhiên với Powershell?
[Reflection.Assembly]::LoadWithPartialName('System.Web')
[System.Web.Security.Membership]::GeneratePassword(30,2)
Làm thế nào để thay đổi mật khẩu cục bộ cho một quản trị viên trên máy chủ từ xa với Powershell?
$admin = [ADSI]('WinNT://server01/administrator,user')
$admin.SetPassword($password)
$admin.SetInfo()
Làm thế nào để tìm ra ngày hết hạn mật khẩu của một tài khoản trong Active Directory với Powershell?
1 2 3 4 5 6 7 8 |
# Solution 1 [DateTime]::FromFileTime((Get-ADUser -Identity $user -Properties 'msDS-UserPasswordExpiryTimeComputed').'msDS-UserPasswordExpiryTimeComputed') # Solution 2 Get-Date -Date ((Get-ADUser $user -Properties 'msDS-UserPasswordExpiryTimeComputed' | Select-Object -Property @{ Name = 'ExpiryDate' Expression = {[DateTime]::FromFileTime($_.'msDS-UserPasswordExpiryTimeComputed')} }).ExpiryDate)-Format 'F' |
Printers
Làm thế nào để liệt kê tất cả các máy in cho một máy chủ cụ thể với Powershell?
Get-WmiObject -Query 'Select * From Win32_Printer' -ComputerName $computer
Làm thế nào để liệt kê tất cả các cổng cho một máy chủ cụ thể với Powershell?
Get-WmiObject -Class Win32_TCPIPPrinterPort -Namespace 'root\CIMV2' -ComputerName $computer
Làm thế nào để thay đổi những bình luận / vị trí cho một máy in với Powershell?
1 2 3 4 |
$printer = Get-WmiObject -Class win32_printer -Filter "Name='HP Deskjet 2540 series'" $printer.Location = 'Germany' $printer.Comment = 'Printer - Test' $printer.Put() |
Làm thế nào để tẩy (hủy bỏ tất cả các công việc) cho một máy in với Powershell?
$printer = Get-WmiObject -Class win32_printer -Filter "Name='HP Deskjet 2540 series'"
$printer.CancelAllJobs()
Làm thế nào để in một trang thử nghiệm cho một máy in với Powershell?
$printer = Get-WmiObject -Class win32_printer -Filter "Name='HP Deskjet 2540 series'"
$printer.PrintTestPage()
Làm thế nào để có được hàng đợi in cho các máy in với Powershell?
1 2 3 4 |
Get-WmiObject -Class Win32_PerfFormattedData_Spooler_PrintQueue | Select-Object -Property Name, @{ Expression = {$_.jobs} Label = 'Current Jobs' } | Format-Table -AutoSize |
Regedit
Read
Làm thế nào để liệt kê các registry hives với Powershell?
Get-ChildItem -Path Registry::
Làm thế nào để có được các giá trị registry và loại giá trị với Powershell?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
function Get-RegistryValue { Param ( [Parameter(Mandatory = $true)] [string]$RegistryKey ) $key = Get-Item -Path "Registry::$RegistryKey" $key.GetValueNames() | Sort-Object | ForEach-Object -Process { $name = $_ $type = $key.GetValueKind($name) switch ($type) { 'String' {'REG_SZ'} 'Binary' {'REG_BINARY'} 'Dword' {'REG_DWORD'} 'Qword' {'REG_QWORD'} 'MultiString' {'REG_MULTI_SZ'} 'ExpandString'{'REG_EXPAND_SZ'} Default {$null} } [PSCustomObject]@{ Name = $name Type = $type Data = $key.GetValue($name) } } } |
Làm thế nào để liệt kê các khóa con registry key với Powershell?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#HKEY_CLASSES_ROOT New-PSDrive -PSProvider Registry -Root HKEY_CLASSES_ROOT -Name HKCR Get-ChildItem -Path 'HKCR:\' #HKEY_CURRENT_USER Get-ChildItem -Path 'HKCU:\Software' Get-ChildItem -Path Registry::HKEY_CURRENT_USER #HKEY_LOCAL_MACHINE Get-ChildItem -Path 'HKLM:\SYSTEM' Get-ChildItem -Path Registry::HKEY_LOCAL_MACHINE #HKEY_USERS New-PSDrive -PSProvider Registry -Root HKEY_USERS -Name HKU Get-ChildItem -Path 'HKU:\' #HKEY_CURRENT_CONFIG New-PSDrive -PSProvider Registry -Root HKEY_CURRENT_CONFIG -Name HKCC Get-ChildItem -Path 'HKCC:\' |
Làm thế nào để liệt kê các khóa con registry key theo cách đệ quy với Powershell?
Get-ChildItem -Path 'HKLM:\SYSTEM' -Recurse -ErrorAction SilentlyContinue
Làm thế nào để tìm các khóa con với một tên cụ thể với Powershell?
Get-ChildItem -Path 'HKLM:\SOFTWARE' -Include *Plugin* -Recurse -ErrorAction SilentlyContinue
Làm thế nào để trả về chỉ có tên của những khóa con của registry với Powershell?
(Get-ChildItem -Path 'HKLM:\SYSTEM').Name # Return HKEY_LOCAL_MACHINE\SYSTEM\ControlSet
Get-ChildItem -Path 'HKLM:\SYSTEM' -Name # Return ControlSet
Làm thế nào để liệt kê các giá trị registry với Powershell?
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
Làm thế nào để đọc một giá trị registry cụ thể vớiPowershell?
(Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').ProductName
Làm thế nào để đọc một giá trị registry cụ thể trên máy tính từ xa với Powershell?
1 2 3 4 5 |
$hostname = $computer $openRegedit = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $hostname) $openKey = $openRegedit.OpenSubKey('SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion') $keyValue = $openKey.GetValue('ProductName') $keyValue |
Write
Làm thế nào để tạo ra một khóa registry mới với Powershell?
New-Item -Path 'HKCU:\Software\MyApplication'
Làm thế nào để tạo ra một giá trị registry với Powershell?
New-ItemProperty -Path 'HKCU:\Software\MyApplication' -Name 'Version' -Value '1.0'
Làm thế nào để sửa đổi một giá trị registry đã tồn tại với Powershell?
Set-ItemProperty -Path 'HKCU:\Software\MyApplication' -Name 'Version' -Value '2.0'
Delete
Làm thế nào để xóa một giá trị registry với Powershell?
Remove-ItemProperty -Path 'HKCU:\Software\MyApplication' -Name 'Version'
Làm thế nào để xóa một khóa registry với Powershell?
Remove-Item -Path 'HKCU:\Software\MyApplication' -Force
Test
Làm thế nào để kiểm tra nếu một khóa registry tồn tại với Powershell?
Test-Path -Path 'HKCU:\Software\MyApplication'
Làm thế nào để kiểm tra xem một giá trị registry tồn tại với Powershell?
(Get-Item -Path 'HKCU:\Software\MyApplication').GetValueNames() -contains 'Version'
Strings
Làm thế nào để loại bỏ các ký tự khoảng trắng từ khởi đầu của một chuỗi với Powershell?
$string = ' PowershellGuru'
$string = $string.TrimStart()
Làm thế nào để loại bỏ các ký tự khoảng trắng từ cuối của một chuỗi với Powershell?
$string = 'PowershellGuru '
$string = $string.TrimEnd()
Làm thế nào để loại bỏ các ký tự khoảng trắng (bắt đầu và kết thúc) của một chuỗi với Powershell?
$string = ' PowershellGuru '
$string = $string.Trim()
Làm thế nào để chuyển đổi một chuỗi sang chữ hoa với Powershell?
$string = 'powershellguru'
$string = $string.ToUpper()
Làm thế nào để chuyển đổi một chuỗi sang chữ thường với Powershell?
$string = 'POWERSHELLGURU'
$string = $string.ToLower()
Làm thế nào để chọn ra chuỗi “Powershell” của chuỗi “PowershellGuru” với Powershell?
$string.Substring(0,10)
Làm thế nào để chọn ra chuỗi con “Guru” của chuỗi “PowershellGuru” với Powershell?
$string.Substring(10)
Làm thế nào để chọn số “123” của “Powershell123Guru” với Powershell?
$string = 'Powershell123Guru'
[regex]::match($string,'(\d+)').value
Làm thế nào để có được các chỉ số không dựa trên các “Guru” của chuỗi “PowershellGuru” với Powershell?
$string.IndexOf('Guru') # 10
Làm thế nào để kiểm tra xem một chuỗi là null hoặc trống rỗng, với Powershell?
$string = $null
$string = ''
[string]::IsNullOrEmpty($string)
Làm thế nào để kiểm tra xem một chuỗi là null, trống rỗng, hoặc chỉ bao gồm các ký tự khoảng trắng với Powershell?
$string = $null
$string = ''
$string = ' '
[string]::IsNullOrWhiteSpace($string)
Làm thế nào để kiểm tra xem một chuỗi có chứa một kỳ tự cụ thể với Powershell?
$string = 'PowershellGuru'
$string.Contains('s')
[regex]::match($string,'s').Success
Làm thế nào để trả về độ dài của một chuỗi với Powershell?
$string.Length
Làm thế nào để nối hai chuỗi với Powershell?
1 2 3 4 5 6 7 |
# Solution 1 $string1 + $string2 # Solution 2 $string1 = 'Powershell' $string2 = 'Guru' [string]::Concat($string1,$string2) |
Làm thế nào để kết hợp một hoặc nhiều dấu ngoặc “[]” trong một chuỗi với Powershell?
$string = '[PowershellGuru]'
$string -match '\[' # Only 1
$string -match '\[(.*)\]' # Several
Làm thế nào để kết hợp một hoặc nhiều dấu ngoặc đơn “()” trong một chuỗi với Powershell?
$string = '(PowershellGuru)'
$string -match '\(' # Only 1
$string -match '\((.*)\)' # Several
Làm thế nào để kết hợp cho một hoặc một số trong ngoặc “{}” trong một chuỗi với Powershell?
$string = '{PowershellGuru}'
$string -match '\{' # Only 1
$string -match '\{(.*)\}' # Several
Làm thế nào để kết hợp một hoặc nhiều dấu ngoặc nhọn “& lt; & gt;” trong một chuỗi với Powershell?
$string = ''
$string -match '\<' # Only 1
$string -match "\<(.*)\>" # Several
Làm thế nào để kết hợp bất kỳ chữ thường (abc) trong một chuỗi với Powershell?
$string = 'POWERSHELLGURU'
$string -cmatch "^[a-z]*$" #False
Làm thế nào để kết hợp bất kỳ upperletters (ABC) trong một chuỗi với Powershell?
$string = 'powershellguru'
$string -cmatch "^[A-Z]*$" #False
Làm thế nào để kết hợp “[p” (p chữ thường) trong một chuỗi với Powershell?
$string = '[powershellGuru]'
$string -cmatch '\[[a-z]\w+' #True
Làm thế nào để kết hợp “[P” (P trường hợp trên) trong một chuỗi với Powershell?
$string = '[PowershellGuru]'
$string -cmatch '\[[A-Z]\w+' #True
Làm thế nào để thay thế một dòng bằng một dòng khác với Powershell?
$a = 'Line A'
$b = 'Line B'
$a = $a -replace $a, $b
Làm thế nào để chuyển đổi một hoạt động phân chia thành một chuỗi (Tỷ lệ phần trăm) với Powershell?
(1/2).ToString('P')
Làm thế nào để sắp xếp chuỗi chứa số với Powershell?
1 |
'string-10', 'string-2', 'string-23', 'string-30' | Sort-Object -Property {$_ -replace '[\d]'}, {$_ -replace '[a-zA-Z\p{P}]'-as [int]} |
Làm thế nào để chọn từ cuối cùng của một câu với Powershell?
$sentence = 'My name is Test Powershell'
$sentence.Split(' ')[-1] # Returns Powershell
Làm thế nào để có được chữ lớn nhất của một câu với Powershell?
$sentence = 'My name is Test Powershell'
$sentence.Split(' ') | Sort-Object -Property Length | Select-Object -Last 1 # Returns Powershell
Làm thế nào để đếm số lần một chuỗi xuất hiện trong một câu với Powershell?
$sentence = 'test test test Powershell'
[regex]::Matches($sentence, 'test').Count # Returns 3
Làm thế nào để sao chép mỗi ký tự trong chuỗi thành một mảng ký tự với Powershell?
1 2 3 4 5 6 7 |
$name = 'test' $name.ToCharArray() s t e v e |
Làm thế nào để chuyển đổi các chữ cái đầu tiên của một chuỗi thành chữ hoa với Powershell?
1 2 |
$name = 'test' $name.Substring(0,1).ToUpper() + $name.Substring(1) |
Làm thế nào để thêm vào (trái hoặc phải) một chuỗi với Powershell?
1 2 3 4 5 6 7 |
# With whitespaces $padRight = 'test'.PadRight(25) $padLeft = 'test'.PadLeft(25) # With characters $padRight = 'test'.PadRight(25,'.') # Return test.................... $padLeft = 'test'.PadLeft(25,'.') # Return ....................test |
Làm thế nào để mã hóa và giải mã một chuỗi Base64 với Powershell?
1 2 3 4 5 6 7 8 9 10 |
# Encode $string = [System.Text.Encoding]::UTF8.GetBytes('test') $encoded = [System.Convert]::ToBase64String($string) # Decode $string = [System.Convert]::FromBase64String($encoded) $decoded = [System.Text.Encoding]::UTF8.GetString($string) # Encoded : c3RldmU= # Decoded : test |
Làm thế nào để chuyển đổi một thành nhị phân và ngược lại với Powershell?
1 2 3 4 5 |
# Base 10 to Base 2 [System.Convert]::ToString(255,2) # Base 2 to Base 10 [System.Convert]::ToInt32('11111111',2) |
Làm thế nào để chỉ trở về thư mục mẹ gần nhất trong một đường dẫn với Powershell?
1 2 |
$path = 'C:\Folder1\Folder2\Folder3\file.txt' Split-Path -Path (Split-Path -Path $path -Parent) -Leaf # Return Folder3 |
Làm thế nào để trở về chỉ mục gần nhất trong một đường dẫn với Powershell?
1 2 |
$path = 'C:\Folder1\Folder2\Folder3\file.txt' Split-Path -Path $path -Leaf # Return file.txt |
Math
Làm thế nào để liệt kê các phương thức của lớp System.Math với Powershell?
[System.Math] | Get-Member -Static -MemberType Method
Làm thế nào để trả lại giá trị tuyệt đối với Powershell?
[Math]::Abs(-12) #Returns 12
[Math]::Abs(-12.5) # Returns 12.5
Làm thế nào để trả lại các góc mà sin là một số xác định với Powershell?
[Math]::ASin(1) #Returns 1,5707963267949
Làm thế nào để trả lại giá trị cao nhất với Powershell?
[Math]::Ceiling(1.4) #Returns 2
[Math]::Ceiling(1.9) #Returns 2
Làm thế nào để trở lại sàn với Powershell?
[Math]::Floor(1.4) #Returns 1
[Math]::Floor(1.9) #Returns 1
Làm thế nào để trả lại đối số tự nhiên (bese e) của một số xác định với Powershell?
[Math]::Log(4) #Returns 1,38629436111989
Làm thế nào để trả lại logarit cơ số 10 của một số quy định với Powershell?
[Math]::Log10(4) #Returns 0,602059991327962
Làm thế nào để trả lại tối đa của hai giá trị với Powershell?
[Math]::Max(2,4) #Returns 4
[Math]::Max(-2,-4) #Returns -2
Làm thế nào để trả lại tối thiểu của hai giá trị với Powershell?
[Math]::Min(2,4) #Returns 2
[Math]::Max(-2,-4) #Returns -4
Làm thế nào để trả lại một số lũy thừa chỉ định với Powershell?
[Math]::Pow(2,4) #Returns 16
Làm thế nào để trả lại một giá trị thập phân với giá trị tích phân gần nhất Powershell?
[Math]::Round(3.111,2) #Returns 3,11
[Math]::Round(3.999,2) #Returns 4
Làm thế nào để trả lại giá trị tích phân của một số thập phân chỉ định với Powershell?
[Math]::Truncate(3.111) #Returns 3
[Math]::Truncate(3.999) #Returns 3
Làm thế nào để trở về căn bậc hai của một số quy định với Powershell?
[Math]::Sqrt(16) #Returns 4
Làm thế nào để trả lại số Pi với Powershell?
[Math]::Pi #Returns 3,14159265358979
Làm thế nào để trả lại các logarit tự nhiên (không đổi e) với Powershell?
[Math]::E #Returns 2,71828182845905
Làm thế nào để kiểm tra xem một số là số chẵn hoặc lẻ với Powershell?
[bool]($number%2)
Hashtables
Làm thế nào để tạo ra một hashtable trống với Powershell?
$hashtable = @{}
$hashtable = New-Object -TypeName System.Collections.Hashtable
Làm thế nào để tạo ra một hashtable với các kí tự với Powershell?
1 2 3 4 5 |
$hashtable = @{ 'Key1' = 'Value1' 'Key2' = 'Value2' 'Key3' = 'Value3' } |
1 2 3 4 5 6 7 |
$hashtable = [ordered]@{ 'Key1' = 'Value1' 'Key2' = 'Value2' 'Key3' = 'Value3' } $hashtable | Get-Member # System.Collections.Specialized.OrderedDictionary |
Làm thế nào để thêm các mục (cặp key-value) với một bảng băm với Powershell?
$hashtable.Add('Key4', 'Value4')
Làm thế nào để có được một giá trị cụ thể của một Hashtable với Powershell?
1 2 3 4 5 6 |
# Returns only Value $hashtable.Key1 $hashtable.Get_Item('Key1') # Returns Key and Value $hashtable.GetEnumerator() | Where-Object{$_.Name -eq 'Key1'} |
Làm thế nào để có được giá trị tối thiểu của một Hashtable với Powershell?
1 2 3 4 5 6 7 8 |
$hashtable = @{ 'Key1' = '1' 'Key2' = '2' 'Key3' = '3' } $hashtable.GetEnumerator() | Sort-Object -Property Value | Select-Object -First 1 $hashtable.GetEnumerator() | Sort-Object -Property Value -Descending | Select-Object -Last 1 |
Làm thế nào để có được giá trị tối đa của một Hashtable với Powershell?
1 2 3 4 5 6 7 8 |
$hashtable = @{ 'Key1' = '1' 'Key2' = '2' 'Key3' = '3' } $hashtable.GetEnumerator() | Sort-Object -Property Value -Descending | Select-Object -First 1 $hashtable.GetEnumerator() | Sort-Object -Property Value | Select-Object -Last 1 |
Làm thế nào để sửa đổi các mục trong một Hashtable với Powershell?
$hashtable.Set_Item('Key1', 'Value1Updated')
Làm thế nào để loại bỏ các mục trong một Hashtable với Powershell?
$hashtable.Remove('Key1')
Làm thế nào để xóa một hashtable với Powershell?
$hashtable.Clear()
Làm thế nào để kiểm tra sự hiện diện của một chìa khóa / giá trị cụ thể trong một Hashtable với Powershell?
$hashtable.ContainsKey('Key3')
$hashtable.ContainsValue('Value3')
Làm thế nào để sắp xếp theo chìa khóa / giá trị trong một Hashtable với Powershell?
$hashtable.GetEnumerator() | Sort-Object -Property Name
$hashtable.GetEnumerator() | Sort-Object -Property Value -Descending
Arrays
Làm thế nào để tạo ra một mảng trống rỗng, với Powershell?
$array = @()
$array = [System.Collections.ArrayList]@()
Làm thế nào để tạo ra một mảng với các vật phẩm với Powershell?
$array = @('A', 'B', 'C')
$array = 'A', 'B', 'C'
$array = 'a,b,c'.Split(',')
$array = .{$args} a b c
$array = echo a b c
Làm thế nào để thêm các mục vào một mảng với Powershell?
$array += 'D'
[void]$array.Add('D')
Làm thế nào để chỉnh sửa một mục trong một mảng với Powershell?
$array[0] = 'Z' # 1st item[0]
Làm thế nào để kiểm tra kích thước của một mảng với Powershell?
$array = 'A', 'B', 'C'
$array.Length # Returns 3
Làm thế nào để lấy một mục / một số / tất cả các mục trong một mảng với Powershell?
$array = @('A', 'B', 'C')
$array[0] # One item (A)
$array[0] + $array[2] # Several items (A,C)
$array # All items (A,B,C)
Làm thế nào để loại bỏ các mục trống trong một mảng với Powershell?
$array = @('A', 'B', 'C', '')
$array = $array.Split('',[System.StringSplitOptions]::RemoveEmptyEntries) | Sort-Object # A,B,C
Làm thế nào để kiểm tra xem một mục tồn tại trong một mảng với Powershell?
$array = @('A', 'B', 'C')
'A' | ForEach-Object -Process {$array.Contains($_)} # Returns True
'D' | ForEach-Object -Process {$array.Contains($_)} # Returns False
Làm thế nào để tìm số chỉ số của một mục trong một mảng với Powershell?
$array = @('A', 'B', 'C')
[array]::IndexOf($array,'A') # Returns 0
Làm thế nào để đảo ngược thứ tự của các mục trong một mảng với Powershell?
$array = @('A', 'B', 'C')
[array]::Reverse($array) # C,B,A