invoke-command -comp $comp {
# а здесь все красоты
# причём циклом
$source @(
@{ key name= '''; valuename=''},
@{ key name= '''; valuename=''}
)
foreach ($src in $source) {
get-itemproperty -path $src.keyname | select -expandproperty $src.valuename
}
}$bits = (Get-WmiObject win32_operatingsystem).OSArchitecture -replace '\D+'$filename = "C:\Admins\Add\BGInfo\Bginfo" + (if ($bits -eq '64) { '64' } else { '' } ) + ".exe"
$filename = "C:\Admins\Add\BGInfo\Bginfo" + @{'64'=64; '32'=32 }[$bits] + ".exe"
if (test-path $filename) .....$item2.LastWriteTime = $item1.LastWriteTimeCreationTime и LastAccessTime$item1 и $item2 - это отдельная задача$path1 = 'D:\1'
$items = %{}
Get-ChildItem -Path $path1 | Foreach-Object { $items[$_.basename] = $_ }
$path2 = 'D:\2'
Get-ChildItem -Path $path2 | Foreach-Object {
if ($items.ContainsKey($_.basename)) {
$_.LastWriteTime = $items[$_.basename].LastWriteTime
}
} $command.Parameter, а не изобретать свои собственные sql-инъекции.[PSCustomObject] иCompare-Object[PSCustomObject]$hastable#...
# вместо # $stammArtikelWebseite += $newRoW
$stammArtikelWebseite += [PSCustomObject]$newRoW
# ...
# то что в $Import - уже объекты, их можно менять на месте
# или также из вашего хеша сделать
# вместо # $stammArtikelcsv += $newRow1
$stammArtikelcsv += [PSCistomObject]$newRow1
#...
# А потом:
Compare-Object -ReferenceObject $stammArtikelWebseite -DifferenceObject $stammArtikelcsv -Property preisohne PS C:\> Get-Command Get-NetQosPolicy
CommandType Name Version Source
----------- ---- ------- ------
Function Get-NetQosPolicy 2.0.0.0 NetQos
PS C:\> Get-Module NetQos|fl
Name : NetQos
Path : C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\NetQos\NetQos.psd1
Description :
ModuleType : Manifest
Version : 2.0.0.0
NestedModules : {MSFT_NetQosPolicy}
ExportedFunctions : {Get-NetQosPolicy, New-NetQosPolicy, Remove-NetQosPolicy, Set-NetQosPolicy}
ExportedCmdlets :
ExportedVariables :
ExportedAliases :PS C:\> Import-Module C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\NetQos\NetQos.psd1 foreach ($table in $result.Tables) {
if ($table.DataRow.Count) {
$table.DataRow | ... | Export-Excel ...
}
}# Пляски @() вокруг Get-Content не нужны, foreach и так всё переберёт как массив, если вы не на PSv2
$serials = Get-Content ...
foreach ($serial in $serials) {
Invoke-WebRequest "https://...api..$serial..."
}