1

私はこれを送ろうとしています:

Get-WmiObject Win32_PNPEntity |Where{$_.DeviceID.StartsWith("PCI\VEN_10DE") -or $_.DeviceID.StartsWith("PCI\VEN_1002")}

次のようなrdesktop上:

rdesktop -a8 209.** -u ** -p ** -s "cmd.exe /K powershell.exe Get-WmiObject Win32_PNPEntity |Where{\$_.DeviceID.StartsWith("PCI\VEN_10DE") -or $_.DeviceID.StartsWith("PCI\VEN_1002")}"

しかし、Windowsのシェルは次のように言っています:

'Where{$_.DeviceID.StartsWith' is not recognized as an internal or externa....

私は何を間違っていますか?

4

3 に答える 3

1

powershell wmi リモート処理を使用しないのはなぜですか?

$cred = get-credential
Get-WmiObject Win32_PNPEntity -computerName MyRemoteComputerName - credential $cred |Where{$_.DeviceID.StartsWith("PCI\VEN_10DE") -or $_.DeviceID.StartsWith("PCI\VEN_1002")} 

-credentialPowerShell を実行している実際のユーザーがリモート マシンの管理者でない場合にのみ必要です。

于 2012-06-16T20:36:39.410 に答える
1

こんにちは、一度このようなことをする必要があったので、任意の ps コードをリモート コンピューティングに送信し、PC の ps ウィンドウに結果を表示できるコードを書きました。

両方の PC で powershell リモート処理を有効にすることを忘れないでください。

function remote-pscode ($ServerName,$UserName,$password,$PSCode)
{


$global:RemoteCode = $args[0]

Write-Host $RemoteCode
$conprops = (Get-Host).UI.RawUI
$buffsize = $conprops.BufferSize
$buffsize.Height = 800
$conprops.BufferSize= $buffsize

# Set the user name you would like to use for the connection
$global:RemoteUserName = $UserName
$global:RemoteServerName = $ServerName


# Set the password you would like to use for the connection
# Check to see if you have a file on you drive c:\cred.txt with a password to use in it,if you don't it will create one
# for you and ask you for the password you would like to use 


$global:RemotePassword = convertto-securestring $password -AsPlainText -Force
$global:credentials = new-object -typename System.Management.Automation.PSCredential -argumentlist $RemoteUserName,$RemotePassword



#Create a connection to the remote computer , put a list of IPAddresses or Computer Names.
$global:session = new-PSSession -ComputerName $RemoteServerName -Credential $credentials


$ScriptBlock = $executioncontext.invokecommand.NewScriptBlock($RemoteCode)

invoke-command -Session $session -ScriptBlock $ScriptBlock


#Close the sessions that where created     
$global:closesession = Get-PSSession
Remove-PSSession -Session $closesession

}

remote-pscode -ServerName "NameOfRemotePC" -UserName "UserName" -password "password"  -PSCode "any powershell code you want to send to the remote pc"
于 2012-06-17T19:43:11.803 に答える
0

PS コマンドをスクリプト ブロック(またはスクリプト)に入れます。また、単純にwmic.exeを使用してみませんか?

于 2012-06-16T14:10:35.147 に答える