Powershell'de yeniyim ve bir dosya olup olmadığını kontrol eden bir komut dosyası yazmaya çalışıyorum; eğer varsa, bir işlemin çalışıp çalışmadığını kontrol eder. Bunu yazmanın daha iyi yolları olduğunu biliyorum, ama lütfen bana bir fikir verebilir mi?Uzak bilgisayar listesinde bir dosya olup olmadığını kontrol etmek için Powershell komut dosyası
Test-Path : A positional parameter cannot be found that accepts argument 'eq'.
At C:\temp\SvcHosts\TestPath Remote Computer.ps1:4 char:7
+ if(Test-Path "\\$_\c$\Windows\svchosts" eq "True")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Test-Path], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.TestPathCommand
Herhangi bir yardım: Süreç çalışıyorsa kontrol ederken, dosya varsa
Get-Content C:\temp\SvcHosts\MaquinasEstag.txt | `
Select-Object @{Name='ComputerName';Expression={$_}},@{Name='SvcHosts Installed';Expression={ Test-Path "\\$_\c$\Windows\svchosts"}}
if(Test-Path "\\$_\c$\Windows\svchosts" eq "True")
{
Get-Content C:\temp\SvcHosts\MaquinasEstag.txt | `
Select-Object @{Name='ComputerName';Expression={$_}},@{Name='SvcHosts Running';Expression={ Get-Process svchosts}}
}
ilk bölümü (kontrol hiçbir sorun ile çalışır Ama bir istisna var: İşte ne var. mutluluk duyacağız!
Merhaba Ansgar:
Veya (daha iyisi), zaten bir boolean değer döndürür
Test-Path
beri sadece bunu , çok teşekkürler!! Ancak, işlemin hangi makinede çalıştığını göstermiyor. Çıktı, sadece makinelerin aradığım dosyayı bulduğu bir listedir. Ancak, dosya varsa, bir işlemin çalışıp çalışmadığını da bilmem gerekir. Bunu yapmanın bir yolu var mı? Yine, zaman ayırdığın için teşekkürler. –'Nesne Seç 'normalde bir boru hattından okur. Bir döngü içinde kullanırsanız, bunu '-InputObject' özelliği üzerinden beslemeniz gerekir:' Nesne Seç -InputObject $ _ @ {Name = ...} '. –