我們可以把powershell當成一個計算器。和鍵入命令行那樣輸入數學表達式,回車,powershell會自動計算並把結果輸出。常用的加減乘除模(+,-,*,/,%)運算和小括號表達式都支持。
PowerShell也能自動識別計算機容量單位,包括KB,MB,GB,TB,PB
假如一個網站每個頁面大小為80kb,統計顯示每天的PV操作為800,1個月下來占用的帶寬:
假如一個網站的每天人均PV操作為5,頁面大小為80Kb,主機提供商限制的總流量為10G,那平均每天的最大訪客數為:
通過netstat查看網絡端口狀態
PS C:\PS> netstat Active Connections Proto Local Address Foreign Address State TCP 192.168.0.100:3049 192.168.0.88:7575 ESTABLISHED TCP 192.168.0.100:3052 192.168.0.88:7575 ESTABLISHED TCP 192.168.0.100:3061 192.168.0.88:7575 ESTABLISHED
使用ipconfig查看自己的網絡配置
PS C:\PS> ipconfig Windows IP Configuration Ethernet adapter Local Area Connection: Connection-specific DNS Suffix . : www.mossfly.com Link-local IPv6 Address . . . . . : fe80::b9dd:91e33:33f0:7885%10 IPv4 Address. . . . . . . . . . . : 192.168.140.100 Subnet Mask . . . . . . . . . . . : 255.255.252.0 Default Gateway . . . . . . . . . : 192.168.140.1 Tunnel adapter isatap.www.mossfly.com: Connection-specific DNS Suffix . : www.mossfly.com Link-local IPv6 Address . . . . . : fe80::5efe:192.168.140.100%11 Default Gateway . . . . . . . . . : Tunnel adapter Teredo Tunneling Pseudo-Interface: Media State . . . . . . . . . . . : Media disconnected Connection-specific DNS Suffix . :
查看路由信息
PS C:\PS> route print IPv4 Route Table =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.140.1 192.168.140.100 20 192.0.0.0 255.0.0.0 On-link 192.0.0.1 306 192.0.0.1 255.255.255.255 On-link 192.0.0.1 306 192.255.255.255 255.255.255.255 On-link 192.0.0.1 306 192.168.140.0 255.255.252.0 On-link 192.168.140.100 276 192.168.140.100 255.255.255.255 On-link 192.168.140.100 276 192.168.143.255 255.255.255.255 On-link 192.168.140.100 276 224.0.0.0 240.0.0.0 On-link 192.0.0.1 306 224.0.0.0 240.0.0.0 On-link 192.168.140.100 276 255.255.255.255 255.255.255.255 On-link 192.0.0.1 306 255.255.255.255 255.255.255.255 On-link 192.168.140.100 276 =========================================================================== Persistent Routes: None IPv6 Route Table =========================================================================== Active Routes: If Metric Network Destination Gateway 1 306 ::1/128 On-link 10 276 fe80::/64 On-link 11 281 fe80::5efe:192.168.140.100/128 On-link 10 276 fe80::b965:91f3:33a0:7285/128 On-link 1 306 ff00::/8 On-link 10 276 ff00::/8 On-link =========================================================================== Persistent Routes: None
啟動CMD控制台鍵入cmd或者cmd.exe,退出cmd可以通過命令exit。
PS C:\PS> cmd Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\PS>exit PS C:\PS>
查找可用的cmd控制台命令
cmd.exe 通過 /c 來接收命令參數,在cmd中help可以查看可用的命令,所以可以通過dmd /c help 查找可用的cmd控制台命令
PS C:\PS> cmd /c help 有關某個命令的詳細信息,請鍵入 HELP 命令名 ASSOC 顯示或修改文件擴展名關聯。 ATTRIB 顯示或更改文件屬性。 BREAK 設置或清除擴展式 CTRL+C 檢查。 BCDEDIT 設置啟動數據庫中的屬性以控制啟動加載。 CACLS 顯示或修改文件的訪問控制列表(ACL)。 CALL 從另一個批處理程序調用這一個。 CD 顯示當前目錄的名稱或將其更改。 CHCP 顯示或設置活動代碼頁數。 CHDIR 顯示當前目錄的名稱或將其更改。 CHKDSK 檢查磁盤並顯示狀態報告。 CHKNTFS 顯示或修改啟動時間磁盤檢查。 CLS 清除屏幕。 CMD 打開另一個 Windows 命令解釋程序窗口。 COLOR 設置默認控制台前景和背景顏色。 COMP 比較兩個或兩套文件的內容。 COMPACT 顯示或更改 NTFS 分區上文件的壓縮。 CONVERT 將 FAT 卷轉換成 NTFS。您不能轉換 當前驅動器。 COPY 將至少一個文件復制到另一個位置。 DATE 顯示或設置日期。 DEL 刪除至少一個文件。 DIR 顯示一個目錄中的文件和子目錄。 DISKCOMP 比較兩個軟盤的內容。 DISKCOPY 將一個軟盤的內容復制到另一個軟盤。 DISKPART 顯示或配置磁盤分區屬性。 DOSKEY 編輯命令行、調用 Windows 命令並創建宏。 DRIVERQUERY 顯示當前設備驅動程序狀態和屬性。 ECHO 顯示消息,或將命令回顯打開或關上。 ENDLOCAL 結束批文件中環境更改的本地化。 ERASE 刪除一個或多個文件。 EXIT 退出 CMD.EXE 程序(命令解釋程序)。 FC 比較兩個文件或兩個文件集並顯示它們之間的不同。 FIND 在一個或多個文件中搜索一個文本字符串。 FINDSTR 在多個文件中搜索字符串。 FOR 為一套文件中的每個文件運行一個指定的命令。 FORMAT 格式化磁盤,以便跟 Windows 使用。 FSUTIL 顯示或配置文件系統的屬性。 FTYPE 顯示或修改用在文件擴展名關聯的文件類型。 GOTO 將 Windows 命令解釋程序指向批處理程序 中某個帶標簽的行。 GPRESULT 顯示機器或用戶的組策略信息。 GRAFTABL 啟用 Windows 在圖形模式顯示擴展字符集。 HELP 提供 Windows 命令的幫助信息。 ICACLS 顯示、修改、備份或還原文件和 目錄的 ACL。 IF 在批處理程序中執行有條件的處理過程。 LABEL 創建、更改或刪除磁盤的卷標。 MD 創建一個目錄。 MKDIR 創建一個目錄。 MKLINK 創建符號鏈接和硬鏈接 MODE 配置系統設備。 MORE 逐屏顯示輸出。 MOVE 將一個或多個文件從一個目錄移動到另一個目錄。 OPENFILES 顯示遠程用戶為了文件共享而打開的文件。 PATH 為可執行文件顯示或設置搜索路徑。 PAUSE 停止批處理文件的處理並顯示信息。 POPD 還原由 PUSHD 保存的當前目錄上一次的值。 PRINT 打印一個文本文件。 PROMPT 改變 Windows 命令提示。 PUSHD 保存當前目錄,然后對其進行更改。 RD 刪除目錄。 RECOVER 從損壞的磁盤中恢復可讀取的信息。 REM 記錄批處理文件或 CONFIG.SYS 中的注釋。 REN 重新命名文件。 RENAME 重新命名文件。 REPLACE 替換文件。 RMDIR 刪除目錄。 ROBOCOPY 復制文件和目錄樹的高級實用程序 SET 顯示、設置或刪除 Windows 環境變量。 SETLOCAL 開始用批文件改變環境的本地化。 SC 顯示或配置服務(后台處理)。 SCHTASKS 安排命令和程序在一部計算機上按計划運行。 SHIFT 調整批處理文件中可替換參數的位置。 SHUTDOWN 讓機器在本地或遠程正確關閉。 SORT 將輸入排序。 START 打開單獨視窗運行指定程序或命令。 SUBST 將驅動器號與路徑關聯。 SYSTEMINFO 顯示機器的具體的屬性和配置。 TASKLIST 顯示包括服務的所有當前運行的任務。 TASKKILL 終止正在運行的進程或應用程序。 TIME 顯示或設置系統時間。 TITLE 設置 CMD.EXE 會話的窗口標題。 TREE 以圖形顯示啟動器或路徑的目錄結構。 TYPE 顯示文本文件的內容。 VER 顯示 Windows 的版本。 VERIFY 告訴 Windows 驗證文件是否正確寫入磁盤。 VOL 顯示磁盤卷標和序列號。 XCOPY 復制文件和目錄樹。 WMIC 在交互命令外殼里顯示 WMI 信息。
啟動外部程序
為什么可以通過notpad打開記事本,不能通過wordpad打開寫字板?
因為notepad.exe位於C:Windows\system32這個目錄,而這個目錄已經默認被包含在Powershell的環境變量$env:Path中。
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x 86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program File s (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft\Web Platform Installer\
而wordpad.exe 所在的“%ProgramFiles%\WindowsNT\Accessories\wordpad.exe“目錄卻沒有包含,可以先進入這個目錄,再運行wordpad,或者將wordpad所在的目錄加入到環境變量中,
$env:Path=$env:Path+”%ProgramFiles%\Windows NT\Accessories”。
默認鍵入一個字符串,powershell會將它原樣輸出,如果該字符串是一個命令或者啟動程序,在字符串前加‘&’可以執行命令,或者啟動程序。
PS C:\PS> "ls" ls PS C:\PS> &"ls" Directory: C:\PS Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 2011/11/23 17:25 ABC -a--- 2011/11/23 17:36 14 a.txt -a--- 2011/11/23 17:25 0 b.txt -a--- 2011/11/23 17:25 0 c.txt -a--- 2011/11/23 17:25 0 d.txt -a--- 2011/11/23 17:37 242 test.txt PS C:\PS> "cmd.exe" cmd.exe PS C:\PS> &"cmd.exe" Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved.
cmdlet 的名稱由一個動詞和一個名詞組成,其功能對用戶來講一目了然。但是對於一個經常使用powershell命令的人每天敲那么多命令也很麻煩啊。能不能把命令縮短一點呢?於是“別名”就應運而生了。Powershell內部也實現了很多常用命令的別名。例如Get-ChildItem,列出當前的子文件或目錄。它有兩個別名:ls 和 dir,這兩個別名來源於unix 的shell和windows的cmd。
因此別名有兩個作用:
繼承:繼承unix-shell和windows-cmd。
方便:方便用戶使用。
查詢別名所指的真實cmdlet命令。
PS C:\PS> Get-Alias -name ls CommandType Name Definition ----------- ---- ---------- Alias ls Get-ChildItem PS C:\PS> Get-Alias -name dir CommandType Name Definition ----------- ---- ---------- Alias dir Get-ChildItem PS C:\PS> Get-Alias -name fl CommandType Name Definition ----------- ---- ---------- Alias fl Format-List PS C:\PS> Get-Alias -name ft CommandType Name Definition ----------- ---- ---------- Alias ft Format-Table
查看可用的別名
查看可用的別名,可以通過” ls alias:” 或者 ”Get-Alias“
如何查看所有以Remove打頭的cmdlet的命令的別名呢?
PS C:\PS> dir alias: | where {$_.Definition.Startswith("Remove")} CommandType Name Definition ----------- ---- ---------- Alias del Remove-Item Alias erase Remove-Item Alias rbp Remove-PSBreakpoint Alias rd Remove-Item Alias rdr Remove-PSDrive Alias ri Remove-Item Alias rjb Remove-Job Alias rm Remove-Item Alias rmdir Remove-Item Alias rmo Remove-Module Alias rp Remove-ItemProperty Alias rsn Remove-PSSession Alias rsnp Remove-PSSnapin Alias rv Remove-Variable Alias rwmi Remove-WMIObject
說明:dir alias:獲取的是別名的數組,通過where對數組元素進行遍歷,$_代表當前元素,alias的Definition為String類型,因為powershell支持.net,.net中的string類有一個方法Startswith。通過where過濾集合在powershell中使用非常廣泛。
有的cmdlet命令可能有2-3個別名,我們可以通過下面的命令查看所有別名和指向cmdlet的別名的個數。
PS C:\PS> ls alias: | Group-Object definition | sort -Descending Count Count Name Group ----- ---- ----- 6 Remove-Item {del, erase, rd, ri...} 3 Set-Location {cd, chdir, sl} 3 Get-History {ghy, h, history} 3 Get-ChildItem {dir, gci, ls} 3 Get-Content {cat, gc, type} 3 Move-Item {mi, move, mv} 3 Copy-Item {copy, cp, cpi} 2 Start-Process {saps, start} 2 Set-Variable {set, sv} 2 Write-Output {echo, write} 2 Get-Process {gps, ps} 2 Invoke-History {ihy, r} 2 New-PSDrive {mount, ndr} 2 Stop-Process {kill, spps} 2 Rename-Item {ren, rni} 2 Get-Location {gl, pwd} 2 Compare-Object {compare, diff} 2 Where-Object {?, where} 2 ForEach-Object {%, foreach} 2 Clear-Host {clear, cls} 1 Out-Host {oh} 1 New-PSSession {nsn} 1 New-Variable {nv} 1 Out-GridView {ogv} 1 Pop-Location {popd} 1 Tee-Object {tee} 1 Remove-PSBreakpoint {rbp} 1 Receive-Job {rcjb} 1 Push-Location {pushd} 1 mkdir {md} 1 Measure-Object {measure} 1 help {man} 1 Remove-PSSnapin {rsnp} 1 Out-Printer {lp} 1 New-Item {ni} 1 New-Module {nmo} 1 New-Alias {nal} 1 Move-ItemProperty {mp} 1 Wait-Job {wjb} 1 Remove-PSDrive {rdr} 1 Start-Service {sasv} 1 Set-PSBreakpoint {sbp} 1 Set-ItemProperty {sp} 1 Start-Job {sajb} 1 Set-Alias {sal} 1 Start-Sleep {sleep} 1 Set-Item {si} 1 Select-Object {select} 1 Set-Content {sc} 1 Sort-Object {sort} 1 Remove-WMIObject {rwmi} 1 Remove-Module {rmo} 1 Rename-ItemProperty {rnp} 1 Stop-Service {spsv} 1 Set-WMIInstance {swmi} 1 Remove-Job {rjb} 1 Remove-Variable {rv} 1 Resolve-Path {rvpa} 1 Stop-Job {spjb} 1 Remove-ItemProperty {rp} 1 Remove-PSSession {rsn} 1 Exit-PSSession {exsn} 1 Format-Custom {fc} 1 Enter-PSSession {etsn} 1 Export-Csv {epcsv} 1 Export-PSSession {epsn} 1 Format-List {fl} 1 Get-PSBreakpoint {gbp} 1 Get-Command {gcm} 1 Get-Alias {gal} 1 Format-Table {ft} 1 Format-Wide {fw} 1 Export-Alias {epal} 1 Clear-History {clhy} 1 Clear-Item {cli} 1 Clear-Content {clc} 1 Add-Content {ac} 1 Add-PSSnapIn {asnp} 1 Clear-ItemProperty {clp} 1 Disable-PSBreakpoint {dbp} 1 Enable-PSBreakpoint {ebp} 1 Convert-Path {cvpa} 1 Clear-Variable {clv} 1 Copy-ItemProperty {cpp} 1 Invoke-Expression {iex} 1 Invoke-Item {ii} 1 Invoke-Command {icm} 1 Get-Variable {gv} 1 Get-WmiObject {gwmi} 1 Import-Alias {ipal} 1 powershell_ise.exe {ise} 1 Invoke-WMIMethod {iwmi} 1 Import-PSSession {ipsn} 1 Import-Csv {ipcsv} 1 Import-Module {ipmo} 1 Get-Unique {gu} 1 Get-Job {gjb} 1 Get-Member {gm} 1 Get-Item {gi} 1 Get-PSCallStack {gcs} 1 Get-PSDrive {gdr} 1 Get-Module {gmo} 1 Get-PSSnapIn {gsnp} 1 Get-Service {gsv} 1 Get-PSSession {gsn} 1 Get-ItemProperty {gp} 1 Group-Object {group}
創建自己的別名
給記事本創建一個別名,並查看該別名;
PS C:\PS> Set-Alias -Name Edit -Value notepad PS C:\PS> Edit PS C:\PS> $alias:Edit notepad
刪除自己的別名
別名不用刪除,自定義的別名在powershell退出時會自動清除。但是請放心,powershell內置別名(諸如ls,dir,fl等)不會清除。如果你非得手工刪除別名。請使用
PS C:\PS> del alias:Edit
保存自己的別名
可以使用Export-Alias將別名導出到文件,需要時再通過Import-Alias導入。但是導入時可能會有異常,提示別名已經存在無法導入:
PS C:\PS> Import-Alias alias.ps1 Import-Alias : Alias not allowed because an alias with the name 'ac' already exists. At line:1 char:13 + Import-Alias <<<< alias.ps1 + CategoryInfo : ResourceExists: (ac:String) [Import-Alias], SessionStateException + FullyQualifiedErrorId : AliasAlreadyExists,Microsoft.PowerShell.Commands.ImportAliasCommand
這時可以使用Force強制導入。
PS C:\PS> Export-Alias alias.ps1 PS C:\PS> Import-Alias -Force alias.ps1
在Powershell中設置別名的確方便快捷,但是在設置別名的過程中並設置參數的相關信息。盡管別名會自動識別參數,但是如何把經常使用的參數默認設定在別名里面呢?例如Test-Connection-Count 2 -ComputerName,讓-“-Count 2” 固化在別名中。
這時簡單的別名無法完成上述需求,可以通過函數來完成它,並且一旦把函數拉過來,定義別名會變得更加靈活。
PS C:\PS> function test-conn { Test-Connection -Count 2 -ComputerName $args} PS C:\PS> Set-Alias tc test-conn PS C:\PS> tc localhost Source Destination IPV4Address IPV6Address Bytes Time(ms) ------ ----------- ----------- ----------- ----- -------- test-me-01 localhost 127.0.0.1 ::1 32 0 test-me-01 localhost 127.0.0.1 ::1 32 0
像運行可執行文件一樣,Powershell運行文件和腳本,也必須使用絕對路徑或者相對路徑,或者要運行的文件必須定義在可受信任的環境變量中。
關於腳本
腳本和批處理都屬於偽可執行文件,它們只是包含了若干命令行解釋器能夠解釋和執行的命令行代碼。
執行批處理文件
批處理是擴展名為”.bat”的文本文件,它可以包含任何cmd控制台能夠處理的命令。當批處理文件被打開,Cmd控制台會逐行執行每條命令。那Powershell能夠直接執行批處理嗎?
將下列命令保存為ping.bat
@echo off echo batch File Test pause Dir %windir%/system
然后執行ping
屏幕會打印ping命令幫助,說明調用的ping cmd 而不是ping.bat。
改為:
PS C:\PS> ./ping batch File Test Press any key to continue . . . Volume in drive C has no label. Volume Serial Number is 4E9B-D846 Directory of C:Windowssystem 2009/06/11 05:21 69,584 avicap.dll 2009/06/11 05:21 109,456 avifile.dll 2009/07/14 05:41 32,816 COMMDLG.DLL 2009/07/14 05:41 2,000 keyboard.drv 2009/06/11 05:42 9,936 lzexpand.dll 2009/06/11 05:21 73,376 mciavi.drv 2009/06/11 05:21 25,264 mciseq.drv 2009/06/11 05:21 28,160 mciwave.drv 2009/07/14 05:41 68,992 MMSYSTEM.DLL 2009/07/14 05:41 1,152 mmtask.tsk 2009/07/14 05:41 2,032 mouse.drv 2009/06/11 05:21 126,912 msvideo.dll 2009/06/11 05:42 82,944 olecli.dll 2009/07/14 05:41 24,064 OLESVR.DLL 2009/07/14 05:41 5,120 SHELL.DLL 2009/07/14 05:41 1,744 sound.drv 2009/06/11 05:25 5,532 stdole.tlb 2009/07/14 05:41 3,360 system.drv 2009/07/14 05:41 4,048 TIMER.DRV 2009/06/11 05:42 9,008 ver.dll 2009/07/14 05:41 2,176 vga.drv 2009/07/14 05:41 12,704 WFWNET.DRV 22 File(s) 700,380 bytes 2 Dir(s) 75,927,420,928 bytes free
這時運行的是批處理。
通過cmd進入cmd控制台輸入ping發現執行的不是ping命令,而是直接運行ping.bat ,也就是說可以通過.bat 覆蓋cmd命令。這種機制很危險,如果有人侵入電腦,並將系統內部命令篡改成自己批處理,那就太悲劇了。 這種命令與腳本的混淆不會發生在powershell中,因為powershell有更安全的機制。
執行VB腳本文件
將下列命令保存為test.vbs
Set wmi = GetObject("winmgmts:") Set collection = wmi.ExecQuery("select * from Win32_Process") For Each process in collection WScript.Echo process.getObjectText_ Next
執行 .\test.vbs 會遍歷當前Win32進程,並把每個進程的詳細信息通過窗口顯示出來。
怎樣讓VB腳本的通過控制台輸出呢?
Wscript //H:CScript
怎樣還原VB腳本通過窗口輸出呢?
WScript //H:WScript
在powershell中執行VB腳本
PS C:\PS> cscript.exe .test.vbs Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation. All rights reserved. instance of Win32_Process { Caption = "System Idle Process"; CreationClassName = "Win32_Process"; CSCreationClassName = "Win32_ComputerSystem"; CSName = "test-me-01"; Description = "System Idle Process"; Handle = "0"; HandleCount = 0; KernelModeTime = "484113379271"; Name = "System Idle Process"; OSCreationClassName = "Win32_OperatingSystem"; OSName = "Microsoft Windows 7 Enterprise |C:Windows|DeviceHarddisk0Partition2"; OtherOperationCount = "0"; OtherTransferCount = "0"; PageFaults = 0; PageFileUsage = 0; ParentProcessId = 0; PeakPageFileUsage = 0; PeakVirtualSize = "0"; PeakWorkingSetSize = 0; Priority = 0; PrivatePageCount = "0"; ProcessId = 0; QuotaNonPagedPoolUsage = 0; QuotaPagedPoolUsage = 0; QuotaPeakNonPagedPoolUsage = 0; QuotaPeakPagedPoolUsage = 0; ReadOperationCount = "0"; ReadTransferCount = "0"; SessionId = 0; ThreadCount = 2; UserModeTime = "0"; VirtualSize = "0"; WindowsVersion = "6.1.7601"; WorkingSetSize = "24576"; WriteOperationCount = "0"; WriteTransferCount = "0"; };
執行powershell腳本
Powershell擁有自己的腳本,擴展名為“.ps1”
PS C:\PS> echo "dir;Get-PSProvider;help dir" >test.ps1 PS C:\PS> Get-Content ./test.ps1 dir;Get-PSProvider;help dir PS C:\PS> ./test.ps1
初次執行腳本時,可能會碰到一個異常:
File ” C:\PS\test.ps1″ cannot be loadedbecause the
execution of scripts is disabled on this system. Please see
“get-help about_signing” for moredetails.
At line:1 char:10
+ .test.ps1 <<<<
這是powershell的默認安全設置禁用了執行腳本,要啟用這個功能需要擁有管理員的權限。
Powershell調用入口的優先級
別名:控制台首先會尋找輸入是否為一個別名,如果是,執行別名所指的命令。因此我們可以通過別名覆蓋任意powershell命令,因為別名的優先級最高。
函數:如果沒有找到別名,會繼續尋找函數,函數類似別名,只不過它包含了更多的powershell命令。因此可以自定義函數擴充cmdlet 把常用的參數給固化進去。
命令:如果沒有找到函數,控制台會繼續尋找命令,即cmdlet,powershell的內部命令。
腳本:沒有找到命令,繼續尋找擴展名為“.ps1”的Powershell腳本。
文件:沒有找到腳本,會繼續尋找文件,如果沒有可用的文件,控制台會拋出異常。
The term ‘now’ is notrecognized as the name of a cmdlet, function, script file, or operable program.Chec
g of the name, or if a path was included, verify that the path is correct andtry again.
At line:1 char:4
+ now <<<<
+ CategoryInfo : ObjectNotFound: (now:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
參考:pstips
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。