我想製作一個腳本,它接受主機名的輸入並告訴我當前登錄的用戶。當我在PowerShell提示符(作爲管理員)上逐一運行命令時,它工作正常,但是當我運行實際腳本本身時不會產生預期的輸出。Powershell查詢在提示符下工作,但不在腳本中
下面是相關代碼:
$Row.Hostname = $Hostname
$getwmiobject = Get-WmiObject -class Win32_computersystem -computername $Hostname
$Username = $Getwmiobject.username
if($UserName -eq $NULL) {
$Row.Username = "No Current Logged on User"
}
else {$Row.Username = $Username
}
$csvfile += $Row
$csvfile |sort-object Hostname | Export-Csv "foo.csv
當在命令行中運行,我得到了正確的用戶。當作爲腳本運行時,我得到「沒有當前登錄的用戶」。我不知道爲什麼會發生這種情況。
編輯:我想提及我有輸出寫入文件,在上面的代碼中進行了更改很重要。
請提供完整的腳本,至少包含'param()'部分,以及您的示例代碼。樣本是否與腳本相同,或者您是否從多個位置複製/粘貼以給我們一個樣本(可能是一個可變範圍問題)。最後,你是否在具有管理權限的控制檯中使用腳本? – 2013-02-08 21:03:54
對不起,我現在明白得更清楚了。這是腳本結尾的摘錄。我唯一沒有包括的是它如何得到$ Hostname變量,但是這真的不應該是 – user2055535 2013-02-08 21:43:21
okey。你可以插入'寫主機'主機名是:$主機名「; Write-Host「主機名的類型是:$($ Hostname.gettype()。name)''get-wmiobject ...'part之前,看看它是否輸出有效的主機名和」String「類型?:) – 2013-02-08 21:46:58