簡體   English   中英

通過Powershell運行遠程進程

[英]Run remote process by powershell

在將其與用戶名,密碼和進程相關聯之前,我具有以下代碼行來創建對象以訪問遠程服務器:

$process = [WMIClass]"\\remoteServer\ROOT\cimv2:Win32_Process"

我在兩台PC上進行了嘗試,一台可以正常運行,沒有任何錯誤,但是我要運行的另一台卻有例外:

Cannot convert value "\\remoteServer\ROOT\cimv2:Win32_Process" to type "System.Manage
  ment.ManagementClass". Error: "Access is denied. (Exception from HRESULT: 0x800
  70005 (E_ACCESSDENIED))"

remoteServer是同一台。 不確定我必須在本地PC或遠程PC上進行什么設置才能使其正常工作? 在兩台客戶端PC上,用戶名都是Administrators的成員。

您是否考慮過研究PowerShell遠程處理? 如果您運行的是PowerShell 2.0,建議您看看它。 一旦設置了遠程處理,就可以使用Invoke-Command在遠程服務器上執行命令:

Invoke-Command -ComputerName {serverName} –ScriptBlock { commands }

ScriptBlock可以包含任何powershell命令,因此您將能夠使用此機制在遠程計算機上啟動進程。 要啟用遠程處理,您需要使用Enable-PSRemoting cmdlet,您可以在http://blogs.msdn.com/powershell/archive/2009/04/30/enable-psremoting.aspxhttp:中獲取詳細信息。 //technet.microsoft.com/zh-CN/library/dd819498.aspx

您是否有某些不想使用psexec的原因?

http://technet.microsoft.com/zh-cn/sysinternals/bb545027.aspx

我知道這是一篇舊文章,但是我認為您需要做的是在遠程計算機上運行以下命令:

“獲取執行政策”

聽起來好像設置為“ Restricted”(受限制),這意味着它將不會運行任何“ Invoke-Commands”命令或遠程腳本。

您可以將其更改為7個選項之一:

  1. Unrestricted_ _ __ (最不安全,但是如果需要解決此問題,請設置此選項)
  2. RemoteSigned __(僅所有具有簽名的腳本,此選項如此)
  3. AllSigned_ _ __ _ _ (如果您需要運行遠程腳本,則為最佳選擇,但所有選項均經過簽名)
  4. Restricted_ _ ___ (我相信此選項在Windows 7 nad WS2k8中默認設置)
  5. 默認
  6. 旁路
  7. 未定義

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM