我希望在脚本中直接将一个命令存储在变量中,并在脚本的后续部分调用该命令。
我尝试使用以下方式实现:
我尝试使用以下方式实现:
$command = Invoke-Command -ComputerName $Computer -Credential $Credential -ScriptBlock{(Get-CimInstance Win32_SoftwareFeature -Filter "productname LIKE 'Microsoft SQL Server% %Setup (English)'").ProductName}
Invoke-Expression $command
这种方法的问题在于,脚本第一次遇到那行代码时,它会尝试运行该代码。但是此时在脚本中,我还没有分配剩余的变量。
这对我在脚本中尝试运行PSExec特别是一个问题。我有大约10个命令想要封装到变量中,然后在脚本的各个点调用。
$CreateSymbolicLink = .\PsExec\PsExec.exe \\$computer -u username -p password -accepteula -h -i 1 cmd "/c mklink /D C:\Applications \\server\Share"
Invoke-Expression $CreateSymbolicLink
但是当脚本从头开始运行时,它实际上在变量未定义时运行PSExec,我正在尝试避免这种情况。
我该怎么做呢?我已经尝试使用Set-Variable cmdlet,但它似乎也会运行命令,这不是我想要的。
& $command
。 - user4003407