我正在寫一個PowerShell腳本來執行遠程服務器上的命令。我在腳本中使用單個變量作爲該命令的參數。Powershell腳本似乎用通配符執行命令
param(
[Parameter(Mandatory=$true)][string]$strUser
)
$strDomain = "company.com\\"
$strFQusername = $strDomain + $strUser
$strFQusername
$strFQusername
$strFQusername
Invoke-Command -computername VMwareView.company.com -scriptblock {. $env:userprofile\document\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 ; Get-RemoteSession -username $strFQusername } -credential company.com\administrator
$strFQusername
$strFQusername
$strFQusername
當我執行這個腳本中,$ strFQusername變量似乎是由一個通配符來代替。 Get-RemoteSession cmdlet已正確執行,但它列出了所有用戶的會話,而不僅僅是$ strFQusername變量指定的用戶。這將等於我輸入Get-RemoteSession -username *。
如果我在腳本中硬編碼用戶名,我會得到預期的輸出。也就是說,我只看到會話中只有用戶名硬編碼到腳本中。
我試過使用單反斜槓和雙反斜槓$ strDomain變量,但得到了相同的結果。您在調用命令行前後看到的3行$ strFQusername用於調試。他們打印出我想要看到的字符串,存儲在$ strFQusername。
我錯過了什麼?