Следующие задачи сделаны моей командой на очень регулярной основе с PowerShell
Повседневно, я имею подсказку PS все время и использую ее для любого от задач, для которых я раньше использовал CMD.
Вот некоторые примеры кода для чтения Списков Sharepoint. Я использую веб-сервисы от Sharepoint и нового "Нового-WebServiceProxy" cmdlet в PowerShell V2.0
$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, что я раньше в качестве основы создавал все мои функции. Он выравнивает, имеет потрясающий новый-webservice.ps1 сценарий, который можно использовать при тихом использовании PowerShell V1.
Кроме того, вот основная функция, я раньше получал доступную память на узлах в моем кластере
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 {}
}
Для обработки переотображения порта Вам нужен обратный прокси. Конфигурация будет зависеть, на котором Вы используете, но это может посмотреть на заголовок хоста запроса и затем передать корректному серверу и порту.
Это - что-то, что Вы делаете на хосте, не с DNS.
DNS указывает на имя к IP. Таким образом, можно указать 10.0.0.99 на dev.gemini.
Чтобы обязать веб-запрос обычно портировать 80, автоматически идут для портирования 81, можно сделать это столь же простой как перенаправление HTTP META в index.html веб-сервера, слушающего на порте 80, который перенаправляет для портирования 81.
<html>
<head>
<title>redirect</title>
<META http-equiv="refresh" content="5;URL=http://dev.gemini:81/">
</head>
</html>
Затем любой запрос к dev.gemini перенаправил бы к dev.gemini:81. Пользователи видели бы, что в их URL/строке поиска, но он будет работать. Это не перенаправило бы dev.gemini/something к dev.gemini:81/something. Вы могли сделать это с более сложными правилами перезаписи URL в веб-сервере. IIS имеет способы сделать это, я уверен. Я знаю, что это намного легче с Apache.
Можно исказить IP к имени хоста в C:\WINDOWS\system32\drivers\etc\host файле пользователя как:
10.0.0.99 dev.gemini
Вы не можете однако изменить порт с файлом hosts. DNS не имеет никакого отношения к портам, он называет к IP, отображающемуся только.