每当在公司为FTP客户端创建FTP文件夹时,我都必须在两台服务器上创建两个文件夹。服务器A和服务器B。我尝试在下面给出一个示例。
E:\FTP\CompanyName
E:\FTP\CompanyName\Incoming
E:\FTP\CompanyName\Outgoing
在两台服务器上都需要看起来像这样。手动操作并不难,但是我想学习Powershell,那么为什么不自动化一个简单的任务呢?这是我目前拥有的:
$Company = Read-Host 'Enter Company Name:'
$Credentials = Get-Credential
Write-Host 'Thank you! Creating client FTP folder on ServerA.' -ForegroundColor Magenta -BackgroundColor White
Invoke-Command ServerA {mkdir ("e:\ftp" + $Company + "\INCOMING")} -Credential $Credentials
Invoke-Command ServerA {mkdir ("e:\ftp" + $Company + "\OUTGOING")} -Credential $Credentials
Write-Host 'Done. Now creating duplicate folder on ServerB.' -ForegroundColor Magenta -BackgroundColor White
Invoke-Command ServerB {mkdir e:\ftp\$Company\INCOMING} -Credential $Credentials
Invoke-Command ServerB {mkdir e:\ftp\$Company\OUTGOING} -Credential $Credentials
Write-Host 'Done.' -ForegroundColor Magenta -BackgroundColor White
我们有一组专门用于服务器访问的管理员凭据。该脚本询问这些凭据,然后询问“ CompanyName”是否正确。从理论上讲,我希望将其应用于文件路径的“ CompanyName”部分。
为了测试,我在脚本中尝试了两种不同的方式。他们都完全跳过了变量,仅在E:\ ftp中创建了一个传入和传出文件夹。我在这里想念什么?
也欢迎您提供有关如何清理脚本的任何其他建议。我已经学到了很多,但是还有很多要学的。
该变量$company
在另一台服务器上的会话中不存在,因此无法用于创建所需的文件夹。
您可以使用以下-Argumentlist
参数传递变量Invoke-Command
:
Invoke-Command ServerA {mkdir ("e:\ftp" + $args[0] + "\INCOMING")} -ArgumentList $Company -Credential $Credentials
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句