[英]Passing an argument to remote command in Powershell
我想使用Powershell在远程计算机上创建一个目录,并在其名称中使用当前时间戳。 设置了远程处理和所需的变量之后,这对我来说很容易实现,例如:
Invoke-Command -ComputerName $server -credential $Cred -ScriptBlock {New-Item -ItemType Directory c:\tmp\$(get-date -f yyyyMMddhhmmss)}
现在我想在本地机器上检索日期
$currentDateTime = get-date -f yyyyMMddhhmmss
然后使用该变量创建,以后再远程引用该目录,例如用于将文件复制到其中,例如:
Invoke-Command -ComputerName $server -credential $Cred -ScriptBlock {New-Item -ItemType Directory c:\tmp\$currentDateTime}
....(20 secs later)....
copy file \\$server\C$\tmp\$currentDateTime
第一行不起作用,因为在脚本上下文中似乎不知道该变量,因此,我也不清楚如果完成第一行后第二行是否会起作用。
或者,我也很乐意(实际上是:更喜欢)从本地计算机创建目录,如下所示
New-Item -Path \\$server\C$\tmp\$currentDateTime
这似乎由于缺少凭据而失败,但是此命令(?)似乎不支持-Credential
开关。
您如何在远程计算机上创建这样的文件夹? (我需要使用Powershell 2.0版来执行此操作)
Powershell在invoke命令中不知道variabel。 使用-ArgumentList
,可以将其传递给invoke命令。
查看示例,这对您有用吗?
$datCurrentDate = Get-Date -Format "yyyyMMddhhmmss"
$strFolderPath = "\\servername\c$\temp\$($datCurrentDate)_Foldername"
$scbScriptBlock = {
$strFolderPath = $args[0]
New-Item -ItemType Directory -Path $strFolderPath
}
Invoke-Command -ComputerName $server -credential $Cred -ScriptBlock $scbScriptBlock -ArgumentList $strFolderPath
....(20 secs later)....
copy file $strFolderPath
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.