运行下面的函数时,出现以下错误:
Invoke-Command:无法验证参数“ComputerName”上的参数。参数为null或为空。请提供一个不为null或空的参数,然后重试该命令。位于C:\ Users \ username one \ Desktop \ script . PS1:16 char:29 Invoke-Command-computer name
$username = "username"
$password = "password"
$secstr = New-Object -TypeName System.Security.SecureString
$password.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr
$_="192.168.10.4"
function test{
$s = $ExecutionContext.InvokeCommand.NewScriptBlock("mkdir C:\'Documents and Settings'\username\Desktop\Testfolder")
Invoke-Command -ComputerName $_ -ScriptBlock $s -Credential $cred
}
你知道我做错了什么吗?
重命名您的变量 $_
,它将起作用...
说明:
$_
是迭代中当前值的“保留”,例如前切
或管道。请参阅此处:$_ 在强势外壳中是什么意思?
如果你像@x0n所说的那样调用你的函数,那么它是有意义的。如果希望函数每次在同一台机器上创建一个文件夹,那么不要使用变量。但是,如果希望函数在不同的计算机上创建文件夹,则函数应该知道要在哪台计算机上创建该文件夹。这通常通过函数参数完成。
[...]
$ipaddress = "192.168.10.4";
function test([string]$ip, [System.Management.Automation.PSCredential]$credentials) {
$s = $ExecutionContext.InvokeCommand.NewScriptBlock("mkdir C:\'Documents and Settings'\username\Desktop\Testfolder");
Invoke-Command -ComputerName $ip -ScriptBlock $s -Credential $credentials;
}
// then call it like this
test $ipaddress $cred;
以下是所有保留事项的列表:http://www.neolisk.com/techblog/powershell-specialcharactersandtokens
特殊变量$_
仅在包含它的函数或脚本块参与活动管道时才会填充。如果您像这样调用test
,它应该可以工作:
PS> "computername" | test
跟随?
顺便说一句,你为什么要以这种尴尬的方式创建脚本块?使用文字语法:
$s = { mkdir 'c:\...\blah' }
如果要以编程方式从文本创建脚本块,有一种更简单的方法:
$s = [scriptblock]::create('...')
如果您不希望在解析脚本块之前解析对变量的引用,请不要忘记使用单引号。
我有一个VS 2017 C#开发的Azure功能应用程序,使用VS 2017发布机制部署在消费计划上。所有功能均由定时器或服务总线触发。我看到Azure门户中运行的状态,并且功能似乎正在工作,例如,将行写入SQL Azure数据库,但是,我在尝试检查或监视功能时,在Azure门户中经常遇到错误,例如,弹出一个红色错误框,显示错误: 我查看了日志,在日志文件中看不到任何明显的东西,我尝试部署到一个新
问题内容: 当我尝试在Python 3.3中运行该代码时,该代码不执行任何操作。没有错误或任何东西。怎么了 问题答案: 您仍然必须 调用 该函数。
问题内容: 我试图找到有关该函数在Go中作用的精确解释。我读了《有效围棋》所说的话,但是不确定我是否完全理解它的意思。我不确定的确切句子如下: 最后意味着:在包中的所有变量声明评估了其初始化程序之后,将调用init,并且只有在所有导入的包都已初始化之后才对init进行评估。 什么意思 这是否意味着如果在包及其文件中声明“全局”变量,则init()直到所有值都被评估后才运行,然后在运行./main_
我正在从Firebase应用程序发送邮件。根据我在使用Firebase web app发送电子邮件时提出的问题,我使用Firebase云功能发送邮件。上面的代码是我的索引。js文件。 这是我的包裹。json文件
问题内容: 在更新面板中回发后如何运行javascript事件 问题答案: 您可以使用ClientScriptManager在重新加载时调用函数: http://msdn.microsoft.com/zh- CN/library/asz8zsxy.aspx
问题内容: Egghead教程的教学方法如下: 但是我得到这个错误: 未捕获的TypeError:Router.run不是函数 注意:我已经更新到最新版本。 问题答案: 自从React Router v1.0发布以来,该方法已被删除,这些重大更改记录在升级指南中。您的代码将大致翻译为: https://github.com/rackt/react- router/blob/832c42946c87