我有一些用于设置 IIS Web 应用程序、消息队列等的 Powershell 脚本。
他们使用我们创建的一组共享函数库 - 所以每个脚本都以行开头
. .\common.ps1
引用共享库。共享库包含一组函数,例如Create-IisApplicationPool,Create-MessageQueue等等,然后从实际脚本中调用这些函数。这些脚本的问题在于您需要通过远程桌面登录并在本地运行它们,因此我正在编写一些新脚本来将代码部署到 Amazon EC2 实例,并使用 Powershell 远程处理在本地调用它们。
我无法解决的是如何使这个共享库在远程 Powershell 会话中可用。
这是一个简单的例子:
函数.ps1
function Add-Title([string] $name) {
"Mr. $name"
}
function Say-HelloWorld([string] $name = "World") {
$computerName = $env:COMPUTERNAME
$greeting = Add-Title($name)
Write-Host "Hello, $greeting ($computerName)"
}
Run Code Online (Sandbox Code Playgroud)
例子.ps1
. ./functions.ps1
$remoteUsername = "username"
$remotePassword = "password"
$remoteHostname = "172.16.0.100"
$securePassword = ConvertTo-SecureString -AsPlainText -Force $remotePassword
$cred = New-Object System.Management.Automation.PSCredential $remoteUsername, $securePassword
Say-HelloWorld("Spolsky")
Run Code Online (Sandbox Code Playgroud)
在本地运行,这很好用 - 并按预期说“你好,斯波尔斯基先生(DYLAN_PC)”。
现在,如果我Say-HelloWorld …