次のタスクは、PowerShellを使用して非常に定期的に私のチームによって実行されます
- Hyper-Vクラスターのすべてのノードで使用可能なメモリを一覧表示します。
- Netappファイラーを管理する
- 新しいHyper-V仮想マシンのプロビジョニング
- SharePointリストへの書き込みと読み取りをプログラムで行う
日々、PSプロンプトが常に表示され、CMDを使用していた1回限りのタスクにそれを使用します。
Sharepointリストを読み取るためのコードサンプルを次に示します。SharepointのWebサービスとPowerShell V2.0の新しい「New-WebServiceProxy」コマンドレットを使用します
$url = "http://server/sites/site/_vti_bin/lists.asmx"
$listWebService = new-webServiceProxy -uri $url -UseDefaultCredential
$listName = "MyList"
$viewGuid = $null
$query= $null
$viewFields = $null
$numRowsReturned = 20000
$queryOptions = $null
$result = $listWebService.GetListItems($listName,$ViewGuid,$query,$viewFields,$numRowsReturned,$queryOptions,$null)
Oisin Grehanには、すべての機能を作成するためのベースとして使用したSharepoint Webサービスの使用に関する素晴らしいブログ投稿があります。彼は、まだPowerShell V1を使用している場合に使用できる素晴らしいnew-webservice.ps1スクリプトを用意しています。
また、これは、クラスター内のノードで使用可能なメモリを取得するために使用した基本関数です
Function Get-AvailableMemory {
param
(
[string[]]
$servers
)
BEGIN {
$query = "select AvailableBytes,__SERVER from Win32_PerfRawData_PerfOS_Memory"
$availableMemory = @{
Name="AvailableMemory";
Expression = {[math]::round($_.AvailableBytes/1gb,2)}
}
$serverName = @{
Name ="Server";
Expression = {$_."__SERVER"}
}
}
PROCESS {
foreach ($server in $servers){
get-wmiobject -query $query -computer $server |
select-object $availableMemory, $serverName
}
}
END {}
}