PS C:\> $username = "mydomain\user1" PS C:\> $password = ConvertTo-SecureString -String "P@ssw0rd" -AsPlainText -Force PS C:\> $credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $password PS C:\> Invoke-Command -ScriptBlock { Get-Process | Select-Object -First 5 } -ComputerName myserver1 -Crede ntial $credential Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName PSComputerName ------- ------ ----- ----- ----- ------ -- ----------- -------------- 1520 72 39152 17916 438 9,870.14 2020 ccSvcHst myserver1 292 26 5896 4648 96 10.19 5744 ccSvcHst myserver1 289 25 5792 4312 94 45.66 7068 ccSvcHst myserver1 23 5 2156 2984 41 0.02 1808 cmd myserver1 55 9 1464 4976 29 25.39 1548 collector myserver1 PS C:\>
PowerShell Tips
2014年8月20日 星期三
如何利用其他帳號的權限在別台伺服器下指令?
這裡簡單的示範 Invoke-Command 這個command的技巧
2014年3月6日 星期四
如何利用PowerShell檢查.NET Framework 版本?
以.NET 4.0為例:
Release DWORD 的值可以判斷出4.0的那個版本
參考:http://msdn.microsoft.com/zh-tw/library/hh925568(v=vs.110).aspx
Release DWORD 的值=378758: .NET Framework 4.5.1 安裝於 Windows 8、Windows 7 SP1 或 Windows Vista SP2 上
參考:http://msdn.microsoft.com/zh-tw/library/hh925568(v=vs.110).aspx
Release DWORD 的值=378758: .NET Framework 4.5.1 安裝於 Windows 8、Windows 7 SP1 或 Windows Vista SP2 上
PS C:\Users\user1> Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | Get-ItemProperty -name release -EA 0 | Select-Object -First 1 Release : 378758 PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4 PSChildName : Client PSProvider : Microsoft.PowerShell.Core\Registry
2014年2月7日 星期五
如何透過PowerShell送出http request?
TechNet: http://technet.microsoft.com/en-us/library/hh849971.aspx
在PowerShell 3.0以後,多個 Invoke-RestMethod 可以用來送出 HTTP or HTTPS request, 而且可以支援 RESTful web service.
簡單介紹一下,要怎麼送出一個單純的http reqeust (GET):
在PowerShell 3.0以後,多個 Invoke-RestMethod 可以用來送出 HTTP or HTTPS request, 而且可以支援 RESTful web service.
簡單介紹一下,要怎麼送出一個單純的http reqeust (GET):
PS C:\> Invoke-RestMethod google.com.tw就可以得到網站回應的結果了,真方便。
2014年1月27日 星期一
如何管理 remote server process
PowerShell裡的"工作管理員",指的就是Get-Process這個指令
例如取出本機T開頭的process:
PS C:\Projects> Get-Process -Name T* Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 272 21 14608 576 141 15.58 1924 taskhost 333 29 14748 2376 362 48.25 4068 taskhost 118 12 3884 4912 110 125.22 7436 taskmgr 211 23 7684 476 65 24.69 1896 tmcsvc 141 12 3364 2964 75 182.46 332 TPAutoConnect 136 12 3028 1716 59 33.38 2876 TPAutoConnSvc 1449 36 293640 292 435 307.20 5020 TrustedInstaller如果要取得別台機器的process呢?
PS C:\Windows\system32> Get-Process -Name T* -ComputerName web1 Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 138 8 4760 8020 32 2176 taskeng 188 14 6364 9540 85 16632 taskhost 225 23 9496 12736 63 1688 tmcsvc如果某個process掛掉了,要kill某個process:
PS C:\Projects> Stop-Process -Name ssexp -Verbose VERBOSE: Performing the operation "Stop-Process" on target "ssexp (6592)".要停掉別台伺服器的process,就要透過Invoke-Command來做:
Invoke-Command -ComputerName web1 {Stop-Process -Name ssexp }
如何計算目錄內的檔案個數
我們可以透過 Get-ChildItem <目錄名稱> -Recurse 來找出目錄內所有的檔案,同時利用 Measure-Object 來計算物件的個數,如下:
PS C:\Projects> Get-ChildItem C:\Projects\Dev1 -Recurse | Measure-Object Count : 42664 Average : Sum : Maximum : Minimum : Property :但上述方式是包括子目錄及檔案的,如果你只想計算檔案數,而不包含子目錄的話,可利用以下語法:
PS C:\Projects> Get-ChildItem C:\Projects\Dev1 -Recurse | ? { ! $_.PsIsContainer } | Measure-Object Count : 36209 Average : Sum : Maximum : Minimum : Property :
訂閱:
文章 (Atom)