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)