2013-07-31 133 views
2

因此,我試圖使用在http://gallery.technet.microsoft.com/scriptcenter/Get-product-keys-of-local-83b4ce97#content找到的PS腳本從我的域遠程拉取Windows產品密鑰。但是,當它擊中主機時,它將返回Exception calling 「OpenRemoteBaseKey」 with 「2″ argument(s): 「The network path was not found」而不是產品密鑰。還應該指出的是,這在當地適用。在腳本的內部閒逛後,好像有問題的行是抓取系統產品密鑰

$remoteReg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine,$Computer) 

研究(因爲我完全陌生的辣妹)表明,當遠程註冊表訪問是不是這種類型的錯誤被拋出加工。嘗試通過註冊表登錄我的測試目標註冊表顯示我需要將Windows Firewall: Allow inbound remote administration exception設置爲在組策略中啓用。我設置了它,然後將更新後的策略拖至相同的結果。還有什麼其他的東西可能會阻礙我的聯繫?

+0

$計算機是遠程計算機名稱 – Crimius

+1

「遠程註冊表」服務必須在遠程計算機上運行。 –

+0

就是這樣。現在,我面臨的問題是Powershell會自動將密鑰截斷爲我的提示寬度,但這似乎是一個更常見的問題,應該更容易。謝謝。 – Crimius

回答

0

我會建議使用PSRemoting而不是使用遠程註冊表。假設這是成立,你必須做的是:

$computers = @('localhost')#list of computers 
#unless you are currently logged in as a domain admin 
# you will need to provide credentials 
$cred = Get-Credential domain\administrator 
Invoke-Command -Credential $cred -ComputerName $computers -ScriptBlock { 
function Get-ProductKey{ 
     #from http://gallery.technet.microsoft.com/scriptcenter/Get-product-keys-of-local-83b4ce97 
    } 
get-ProductKey 
}| ft Computername,OSDescription,OSVersion,ProductKey 

這將打印出以下的輸出:

Computername     OSDescription     OSVersion      ProductKey 
------------     -------------     ---------      ---------- 
%name%      Microsoft Windows 8 Pro  6.2.9200      XXXXX-XXXXX-XXXXX-XXXXX-XXXXX 
0

我通過PowerShell中使用以下命令,運行它爲管理員:

wmic /user:jc1_admin /node:pc00202 os get "SerialNumber"