本站域名:http://goxia.maytide.net or http://sufan.maytide.net
移动设备请访问:http://goxia.maytide.net/m
转载文章,请务必保留出处与作者信息,未经许可严禁用于商业用途!
[PS]使用 PowerShell 下载文件
使用 PowerShell 下载文件
前段时间部署了一个基于 Windows Server 2012 R2 的 Server Core 环境,在实际使用中会遇到需要从网站上下载文件的问题,因为 Server Core 并未提供 IE,所以下载就不是那么方便了。还好在 PowerShell 下可以调用 System.Net.WebClient 来实现下载。即:
虽然上述的脚本实现了从一个 URL 下载文件到本地,但是实际调用起来会感觉很麻烦。因为每次都要输入很长的脚本命令才能完成一个下载。gOxiA 在编程方面也没什么天赋,实属一菜鸟,参考了以前的脚本写了一个粗糙的下载脚本,其功能是执行脚本后提示输入 URL 的地址,然后再输入本地存储的文件路径,最后执行下载,并根据结果判断是否下载完毕。
脚本中涉及了一些基本的命令代码,其中 Write-Host 用于输出提示文本;Read-Host 用于记录用户输入的数据;调用下载、下载地址、本地存储都使用变量,最后用 Test-Path 对下载的文件进行检查,并使用 if...else 进行判断。下面就是整个脚本的内容:
#清屏
Clear
#脚本基本信息提示
Write-Host
Write-Host PowerShell Download Tools Script.
Write-Host
#输入下载资源地址,赋予变量 $url
Write-Host Please enter URL address of download sources! -ForegroundColor Red
$url= Read-Host "Enter the URL..."
Write-Host
#输入文件存储路径,赋予变量 $local
Write-Host Please enter the local store path! -ForegroundColor Green
$local= Read-Host "Enter the store path..."
#调用下载,赋予变量 $dl
$dl= New-Object "System.Net.WebClient"
#执行下载
Write-Host
Write-Host Downloading... Please wait!!!
$dl.DownloadFile("$url","$local")
Write-Host
#将路径检查命令赋予变量 $result
$result=Test-Path $local
#对 $result 结果进行判断,如果是 True 表示下载完成,否则失败
if($result -eq $True)
{
Write-Host Result status: Completed!!! -ForegroundColor Green
}
else
{
Write-Host Result status: Failed!!! -ForegroundColor Red
}
执行效果如下图:
[PS] HOWTO: 在 Windows Server 2012 上启用 PowerShell Web Access
Windows PowerShell Web Access(PSWA)是 Windows Server 2012 中的新功能,充当 Windows PowerShell 网关,允许远程计算机基于 Web 方式(HTTPS)访问和操作目标计算机的 Windows PowerShell,以执行 PowerShell 命令和脚本,而且无需在客户端上安装 PowerShell、远程管理软件或浏览器插件。其角色有些像 Remote Desktop Gateway,且允许单机应用,并且支持工作组环境。
PowerShell Web Access 基于 Web 方式访问的,只要支持 JavaScript 和接受 Cookies 的浏览器基本都可访问操作。下面是整理出的一组浏览器兼容性测试的结果数据,参考微软官方。
受支持的台式计算机浏览器:
- IE 8、9、10、11
- Firefox 10.0.2
- Chrome 17.0.963.56m
- Safari 5.1.2
经过最小限度测试的移动设备或浏览器
- Windows Phone 7、7.5、8
- Google Android WebKit 3.1 Browser Android 2.2.1 (Kernel 2.6)
- iPhone 5.0.1 的 Safari
- iPad 2 5.0.1 的 Safari
为工作组环境下的 Windows Server 2012 安装和配置 PowerShell Web Access 可参考下列步骤:
首先,通过“服务器管理器”的“添加角色和功能”向导安装“Windows PowerShell Web 访问”。使用 PowerShell 命令行安装:“Install-WindowsFeature WindowsPowerShellWebAccess -IncludeManagementTools”
然后,在 PowerShell cmdlet 下执行“Install-PswawebApplication”,以在 IIS 下创建其所需的 Web 应用程序。
注:前面提到 PowerShell Web Access 基于 Web 方式访问,并且使用的是 HTTPS 协议,所以需要为其准备一张证书,否则我们可以通过附加“-UseTestCertificate”创建一个自签名证书,该证书有效期为90天。
如果准备有其他证书,可通过 IIS 管理器对 Web 站点的绑定进行设置。
接下来,需要使用“Add-PswaAuthorizationRule”为 PowerShell Web Access 配置授权规则。例如:
“Add-PswaAuthorizationRule –ComputerName * –UserName “maytidesufan” –Configuration *”
其中“-ComputerName”是要授权通过 PowerShell Web Access 访问的计算机名称,也可使用“ComputerGroupName”指定一个计算机组;“-UserName”即允许访问的用户,而“UserGroupName”为用户组;“-Configuration”即允许的会话配置。
现在,我们便可打开浏览器访问 PowerShell Web Access,进行计算机管理。
参考资料:“部署 Windows PowerShell Web 访问”、“使用基于 Web 的 Windows PowerShell 控制台”
[WS2012] HOWTO:切换至 Windows Server 2012 的 Minimal Server 模式
HOWTO:切换至 Windows Server 2012 的 Minimal Server 模式
《Windows Server 2012 的四种运行界面模式》这篇日志中 gOxiA 讲述了 Windows Server 2012 的四种运行界面模式,相信大家对其中的 Minimal 最为敢兴趣!今天 gOxiA 将用一些时间与大家分享如何切换到 Minimal 模式。在开始前我们先来了解一张图示:
在这种图中显示了 Windows Server 2012 四种运行界面模式的层次以及对应的模块名称,以官方的说法,WS2012提供的只有两种安装选项,Server Core 和 Server with GUI,后者便是文中所讲的 FullServer。但是我们可以通过命令行在实际的四种模式间进行灵活的切换。如果我们先前安装系统时选择的是 Server Core,之后我们可以借助 Powershell 将界面模式切换至 Minimal,或 FullServer,最终则是更全面的 Desktop Experience,而这些也是我们要了解的重点。
例如,我们要将一个处于 FullServer 界面模式的系统切换至 Server Core,那么可以直接运行下面的命令行:
在执行完上面的命令后,需要重启计算机(restart-computer),之后我们便会看到当前的系统已经是 Server Core 界面模式。如果日后需要切换到 Minimal 模式,则只需安装“server-gui-mgmt-infra”模块即可,命令参考如下:
重新启动计算机后,进入的系统便是 Minimal 模式,如上图所示,我们除了能运行 sconfig 外,还能启动“ServerManager”或“MMC”。如果我们需要再继续切换到 FullServer 模式除了可以通过“添加角色和功能”以外,我们仍旧可以使用 Powershell 执行切换。
Powershell 切换到 FullServer 的参考命令如下:
这样我们便能切换到完整的服务器运行界面模式,如上图所示。
如果希望通过 Powershell 获取当前 Windows Server 2012 的组件安装情况可以使用“get-windowsfeature”命令。
在掌握了 Windows Server 2012 四种运行模式的切换方式后,IT人员就能轻松,灵活地根据实际的管理需求,对服务器界面进行选择和部署。