Проблемы с вызовом PSExec из цикла ForEach для запуска cmd-файла на удаленных компьютерах - PullRequest
0 голосов
/ 21 ноября 2018

У меня проблемы с error 9009 и error code 6 при попытке запустить ниже.Я могу успешно запустить это на 1 машине без цикла ForEach, поэтому мне интересно, что здесь происходит с PSExec.

$Credential = Get-Credential
$Random = Get-Random -Maximum 3
ForEach ($device in $site) { 
    New-PSDrive -Name ($SiteCode + $Random) -PSProvider FileSystem -Root ('\\' + $device + '\c$') -Description STE -Credential $Credential
    Copy-Item C:\ClientInstall\ -Destination "$($SiteCode + $Random):" -Verbose -Recurse -Force
    psexec \\$device cmd.exe /c c:\ClientInstall\clientinstall.cmd
}
Remove-PSDrive -Name ($Sitecode + '*') -Force -PSProvider FileSystem

Переменная $device - это просто IP-адрес клиента, который находится в переменной $ site, которая представляет собой список IP-адресов.Это не присоединенные к домену устройства, а значит и фафф.

Заранее спасибо

РЕДАКТИРОВАТЬ:

Затем я попытался сделать следующее:

$Credential = get-credential
$Random = Get-Random -Maximum 3
ForEach ($device in $site) { 
                                    New-PSDrive -Name ($SiteCode + $Random) -PSProvider FileSystem -Root ('\\' + $device + '\c$') -Description STE -Credential $Credential
                                    Copy-Item C:\ClientInstall\ -Destination "$($SiteCode + $Random):" -Verbose -Recurse -Force
                                    psexec ("\\" + $device) cmd.exe /c c:\ClientInstall\clientinstall.cmd


                                    }
Remove-PSDrive -Name ($Sitecode + '*') -Force -PSProvider FileSystem

Основное изменение:

psexec ("\\" + $device) cmd.exe /c c:\ClientInstall\clientinstall.cmd

Это возвращает:

psexec : Connecting to 10.00.00.101...
At line:1 char:1
+ psexec ("\\" + $posdevice) cmd.exe /c c:\ClientInstall\sccmguidrepair ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Connecting to 10.00.00.101...:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

Starting PSEXESVC service on 10.00.00.100...Connecting with PsExec service on 10.00.00.101...Starting cmd.exe on 10.00.00.101...
cmd.exe exited on 10.00.00.101 with error code 6.

Кто-нибудь знает, что здесь происходит?Потерял.

Спасибо

1 Ответ

0 голосов
/ 22 ноября 2018

Мне удалось обойти указанные выше ошибки 9009 и Error Code 6, используя Start-Process и вызывая DOS для запуска удаленных сеансов PSEXEC, а затем вызывая его снова для запуска файла bat:

$Random = Get-Random -Maximum 10
ForEach ($device in $site) { 
                                    New-PSDrive -Name ($SiteCode + $Random) -PSProvider FileSystem -Root ('\\' + $device + '\c$') -Description STE -Credential $Credential
                                    Copy-Item C:\\ClientRevert\ -Destination "$($SiteCode + $Random):" -Verbose -Recurse -Force
                                    Start-Process cmd "/c C:\psexec.exe -u admin -p P@ssword \\$device\ cmd /c c:\ClientRevert\clientinstall.cmd"


                                    }


Remove-PSDrive -Name ($Sitecode + '*') -Force -PSProvider FileSystem
...