powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Програмирование в powerShell
45 сообщений из 45, показаны все 2 страниц
Програмирование в powerShell
    #39225285
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть список файлов, например:
1.log 27.04.2016 00:01
2.log 27.04.2016 00:02
3.log 27.04.2016 00:03

и есть еще много других файлов с разной датой изменения, вопрос как мне через get-childitem отобрать именно эти файлы: 1.log, 2.log, 3.log ????
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39226970
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014 мне через get-childitem отобрать именно эти файлы: 1.log, 2.log, 3.log ????

ls 1.log,2.log,3.log
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39420470
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть файл txt есть скрипт, который показывает мне инфу по ПК.
Загвоздка в том, что постоянно лезть в скрипт или юзать read-host не вариант.
Не обходим инструмент (код), который будет выполнять следующее:

1. анализировать построчно txt файл находящийся в той же директории где сам скрипт (или exe файл)
2. каждую строку объявлять в скрипте как переменную $server, которая будет использоваться в сборе инфы о ПК

пример

servers.тхт
файл содержит имена серверов:
tb1
tb2
tb3

имя переменной ($server) для командлета
Get-WMIObject Win32_Volume -filter "DriveType=3" -computer $server ................................
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39420487
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
for /?
for /f %A in (список.txt) do @wmic ... %A ...
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39420507
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: powershell
1.
2.
3.
4.
5.
6.
7.
# 1. анализировать построчно txt файл находящийся в той же директории где сам скрипт (или exe файл) 
# 2. каждую строку объявлять в скрипте как переменную $server, которая будет использоваться в сборе инфы о ПК

gc $PSScriptRoot\servers.txt | %{   
    $server = $_
    Get-WMIObject Win32_Volume -filter "DriveType=3" -computer $server .....
}
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39425396
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, что нужно добавить\изменить в этом коде, чтобы можно было проверить каталог:
наличие файлов
подкаталогов на наличие в них файлов?

данный скрипт работает только если C:\TEST есть или нет файлов
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
$sPath = "C:\TEST\*.*"
$files = test-path $sPath
if ($files -eq "true")
{
cls
write-host "папка не пуста" -ForegroundColor green
}

else {
cls
write-host "папка пуста" -ForegroundColor red
}
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39427558
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: powershell
1.
(ls "C:\TEST\*.*" | measure).Count -gt 
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39427559
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharper
Код: powershell
1.
(ls "C:\TEST\*.*" | measure).Count -gt 0
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39428175
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спс буду пробывать
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39432544
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал пару скриптов, через бат ник их запускаю.
Если стартую сам батник то все ОК, если батник перемещаю в окно cmd то получается. что первый скрипт запускается, а второй не запускается

Текст батника

Код: powershell
1.
2.
powershell -sta -file1.ps1 >log.txt
powershell -sta -file2.ps1



выяснил что при простом перемещение батника в смд, например так
С:\document\sas\>D:\test\test.bat

ошибка, что аргумент file2.ps1 -file не обнаружен. Файла в указаном пути нет.

хотя все скрипты и сам батник находятся в одном каталоге

Как заставить батник, чтобы он запустил скрипты?
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39432552
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего то, что запускает батник устанавливает другую рабочую папку.
Варианты:
1. Указать правильную рабочую папку при вызове
2. Указывать полные пути к файлам .ps1
3. Явно менять рабочую папку (команда cd)

Выбери любой, какой нравится.
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39432555
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014получается. что первый скрипт запускается, а второй не запускается
возможно первый скрипт меняет рабочую папку.
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39432576
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем спасибо буду экспериментировать с вариантами
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39433269
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кому интересно, в начале батника прописал такую строку
cd /d "%~dp0"

и все откуда бы я не запускал батник и каким способом то все работает
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39433277
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых - pushd, а не cd
Во-вторых - лучше дописывать %~dp0 к имени всех "рядом расположенных". Этот вариант не требует смены текущего каталога, что может быть существенно.
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39433843
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovВо-первых - pushd, а не cd
Во-вторых - лучше дописывать %~dp0 к имени всех "рядом расположенных". Этот вариант не требует смены текущего каталога, что может быть существенно.

pushd, а не cd почему так?
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39433912
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если pushd используется внутри setlocal - текущий каталог будет восстановлен после endlocal. Если не используется - по завершению скрипта.
Для cd ничего такого не происходит и, если ваш пакетник будет использоваться совместно с другими - можно долго соображать, почему "по отдельности работает, а вместе - нет".
Простое, в общем, правило: не тобою установлен текущий каталог - не тебе его и менять.
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39436940
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
код батника:

Код: powershell
1.
2.
3.
4.
5.
6.
chcp 1251
cd /d "%~dp0"
Powershell Set-ExecutionPolicy Unrestricted
Powershell Get-ExecutionPolicy
Powershell -STA -File script.ps1 > resultat.txt
resultat.txt



=========================================================================================================================

код PS скрипта:

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
cls
$log_1 = read-host "Укажите первый файл"
$log_2 = read-host "Укажите второй файл"
#-DifferenceObject -  Задает объекты, которые будут сравниваться с эталонными.
#-ReferenceObject - Объекты, используемые при сравнении в качестве эталона.
Write-Host "Сравнение файлов:"
''
write-host "Отличие второго файла от первого:" -ForegroundColor red
'' 
compare-object -referenceobject $(get-content $log_1) -differenceobject $(get-content $log_2) | format-table -Property InputObject -HideTableHeaders




===========================================================================================================================

1. Если запускаю скрипт из оболочки ISE и задаю файлы в пути, которых есть пробелы, а так же в именах файлов то выполнение
скрипта проходит без проблем.

2. Если запуск скрипта через батник, то тут и начинаются проблемы, если в пути и в имени файла есть пробелы. Появляются ошибки такого вида:

Код: powershell
1.
2.
3.
4.
5.
6.
[color=red]Get-Content : Не удалось найти диск. Диск с именем ""E" не существует.
E:\PowerShell_docs\Examples\compare_files 
\script.ps1:15 знак:46
+ compare-object -referenceobject $(get-content <<<<  $log_1) -differenceobject $(get-content $log_2)  
| format-table -P
roperty InputObject -HideTableHeaders[/color]




Прочитал инфу про эту проблему, решение, что надо файл или путь к файлу заключать в кавычки вида "", но заключать что?
"script.ps1" пробовал, решение не помогло, да и нет смысла в этом, так как ошибка явно указывает на совершено другие файлы

или есть другой вариант?
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39436942
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: powershell
1.
compare-object -referenceobject $(get-content "$log_1")

?
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39436997
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Код: powershell
1.
compare-object -referenceobject $(get-content "$log_1")

?

не помогло
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39436998
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как допустим сказать повершелу, чтобы он мне написал сколько было удалено пустых строк в файле?
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39436999
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с выводом инфы,
удалено пустых строк: 12
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39437390
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014с выводом инфы,
удалено пустых строк: 12

Удалено при помощи чего?
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39437628
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharperSAS2014с выводом инфы,
удалено пустых строк: 12

Удалено при помощи чего?

(get-content -path $file) | where-object -filterscript {$_.trim() -ne ''} | set-content -path $file
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39437717
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В как заставить Повершэл а точнее select-string искать русские буквы в тексте?

1. Создал файл в нем прописал слова на русском языке, например Привет Мир

2. пишу Select-string -path 1.txt "Привет"

ноль результата
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39438662
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
(get-content -path $file) | where-object -filterscript {$_.trim() -ne ''} | set-content -path $file[/quot]

# сначала посчитать 
sls '^\s+$' $file | measure


# или сохранить разницу

$lines = (gc $file)
$lines | ?{ $_ -notmatch '^\s+$}' > sc $file
$lines.Count - (gc $file.Count)
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39438663
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014В как заставить Повершэл а точнее select-string искать русские буквы в тексте?

1. Создал файл в нем прописал слова на русском языке, например Привет Мир

2. пишу Select-string -path 1.txt "Привет"

ноль результата

Прописать -Encoding и посмотреть, какая кодировка стоит в той оболочке, которую вы используете (консоль?)
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39439453
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharperSAS2014В как заставить Повершэл а точнее select-string искать русские буквы в тексте?

1. Создал файл в нем прописал слова на русском языке, например Привет Мир

2. пишу Select-string -path 1.txt "Привет"

ноль результата

Прописать -Encoding и посмотреть, какая кодировка стоит в той оболочке, которую вы используете (консоль?)

да, спс разобрался
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39439454
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharper
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
(get-content -path $file) | where-object -filterscript {$_.trim() -ne ''} | set-content -path $file[/quot]

# сначала посчитать 
sls '^\s+$' $file | measure


# или сохранить разницу

$lines = (gc $file)
$lines | ?{ $_ -notmatch '^\s+$}' > sc $file
$lines.Count - (gc $file.Count)



спасибо
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39450519
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь сделать такую штуку, через повершел отправлять в Lync (типа аськи) сообщения, используя этот код:

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
cls
$assemblyPath = “C:\Microsoft.Lync.Model.DLL”

Add-Type -Path $assemblyPath
#add-type -assemblyname $assemblyPath
 
$IMType = 1
$PlainText = 0

$cl = [Microsoft.Lync.Model.LyncClient]::GetClient() 
$conv = $cl.ConversationManager.AddConversation()
$gs = $cl.ContactManager.Groups

$i = 0

#search for user in contacts list
$callbackAddContact = [AsyncCallback]{
    param($asyncResult)

    # callback code
    if ($asyncResult.isCompleted)
    {
        $mygroup.EndAddContact($asyncResult)
    }
}  

foreach ($g in $gs)
{
    foreach ($contact in $g)
    {
        if ($contact.GetContactInformation("PrimaryEmailAddress") -eq “tim@mail.ru”)
        {
            $i++                   
         
            break
        }
    }

    if ($i -eq 0)
    {
        $g = $gs[0]
        $contact = $cl.ContactManager.GetContactByUri(“tim@mail.ru”)
        $g.BeginAddContact($contact,$callbackAddContact,$state)
    }
}

#prepare conversation participant
foreach ($g in $gs)
{
    foreach ($contact in $g)
    {
        if ($contact.GetContactInformation("PrimaryEmailAddress") -eq “tim@mail.ru”)
        {
            $i++
       
            $null= $conv.AddParticipant($contact)
         
            break
        }
    }

    if ($i -gt 0) {break}
}
 
#send message
$d = New-Object “System.Collections.Generic.Dictionary[Microsoft.Lync.Model.Conversation.InstantMessageContentType,String]”
$d.Add($PlainText, “текст сообщения”) 
$m = $conv.Modalities[$IMType]

$myCallback = [AsyncCallback]{
    param( $asyncResult)
    
    # callback code
    if ($asyncResult.isCompleted)
    {
        Write-Host "Message Sent"
    }
}

[void]$m.BeginSendMessage($d, $myCallback, $d)



но получаю ошибку:
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
Add-Type : Невозможно загрузить файл или сборку "Microsoft.Lync.Model, Version=1
5.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" или один из зависимых
 от них компонентов. Сбой при проверке правильности строгого имени. (Исключение 
из HRESULT: 0x8013141A)
C:\lync and PS.ps1:4 знак:9
+ Add-Type <<<<  -Path $assemblyPath
    + CategoryInfo          : NotSpecified: (:) [Add-Type], FileLoadException
    + FullyQualifiedErrorId : System.IO.FileLoadException,Microsoft.PowerShell. 
   Commands.AddTypeCommand



Файл в указном пути присутствует, установленная версия Lync 2010 года
Кто уже делал такую штуку??????????????
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39451132
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы поискал how to debug assebly load и какой-нибудь тулзой посмотрел ошибки при закгрузке (например при помощи дебаггера VS подключился к процессу powershell и посмотрел эксепшены)
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39501636
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Накатал тестовый код, который их тхт файла построчно выбирает удаленный сервер заходит на него и смотрит от кого запущен explorer.exe и выдает результат

Скрипт:
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
$files = split-path -path $MyInvocation.MyCommand.Path #Текущий каталог
Get-Content $files\servers.txt| %{
$computername = $_ #имена серверов
#Сбор инфы
Get-WMIObject Win32_Process -filter "name='explorer.exe'" -computername $computername  |
ForEach-Object {
$owner = $_.GetOwner()
‘{0}’ -f $owner.User} |
ForEach-Object {
$rv = 1 | Select-Object ComputerName, User
$rv.ComputerName = $computername 
$rv.User = $_ 
$rv  
}
}



Результат устраивает, но расстояние между столбцами слишком большое, я понимаю, что нужно использовать такую конструкцию как | format-table -autosize
но я пытался прописать select-object результат не тот либо ошибки

Вообщем, хочется, чтобы было как на рис.2
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39502416
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы использовал select @{n="Owner", e=$_.GetOwner.User} или типа того. Для отладки бы напечатал в кавычках - может там просто пробелы в данных
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39503074
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как из коллекции выбрать один item т.е. выполняю запрос на инфу о процессорах на виртуальной системе и результат такой что показывается список всех процессоров
проблема в том что результат я не могу перенаправить в ячейку excel иза того что результат многосторочный
1. юзаю такой запрос
Код: powershell
1.
Get-WmiObject -Class Win32_Processor  -ComputerName $comps | Select-Object -Property name | format-table -HideTableHeaders




а если физической машине то все ок
2. юзаю такой запрос
Код: powershell
1.
 (Get-WmiObject -Class Win32_Processor  -ComputerName $comps).Name




подскажите как мне в первом случае сделать чтобы результат попадал как вовтором
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39505385
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решение найдено
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39506019
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал скрипт, который заполняет таблицу в Excel техническими и программными данными о компьютерах
хочется узнать кто бы что изменил сократил в коде?

PS: если комп не в сети то у меня есть отдельный скрипт который создает отчет

=============
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
# ИНФОРМАЦИЯ О КОМПЬЮТЕРАХ
# СПИСОК КОМПЬЮТЕРОВ В ФАЙЛЕ servers.txt 
  (создается заранее)
# КОТОРЫЙ ФОРМИРУЕТСЯ В EXCEL ФАЙЛ
##########################################

cls
# Создаём объект Excel
$Excel = New-Object -ComObject Excel.Application

# Делаем его видимым
$Excel.Visible = $true

# Добавляем рабочую книгу
$WorkBook = $Excel.Workbooks.Add()

# Начинаем работать с первым листом. 
#Для простоты  обращения к нему создаём соответствующую переменную
$info_comp = $WorkBook.Worksheets.Item(1)

# Переименовываем лист
$info_comp.Name = 'The information on computers'

# Заполняем ячейки - шапку таблицы
$info_comp.Cells.Item(1,1) = '[Computer]'
$info_comp.Cells.Item(1,2) = '[Operation System]'
$info_comp.Cells.Item(1,3) = '[SP]'
$info_comp.Cells.Item(1,4) = '[Architecture]'
$info_comp.Cells.Item(1,5) = '[Motherboard]'
$info_comp.Cells.Item(1,6) = '[Processor]'
$info_comp.Cells.Item(1,7) = '[RAM(GB)]'
$info_comp.Cells.Item(1,8) = '[Graphic adapter]'
$info_comp.Cells.Item(1,9) = '[Disk]'
$info_comp.Cells.Item(1,10) = '[Free(GB)]'
$info_comp.Cells.Item(1,11) = '[Total(GB)]'


# Переходим на следующую строку...
$Row = 2
$Column = 1

$files = split-path -path $MyInvocation.MyCommand.Path #Текущий каталог
#$srv = read-host "Список серверов"
Get-Content $files\servers.txt| %{
$comps = $_ #имена серверов
#Сбор инфы
if (Test-connection -Quiet $comps -count 1) {
#Имя компьютера
    $info_comp.Cells.Item($Row, $Column) = $comps
    $Column++

#Операционная система
$OS = (Get-WmiObject -Class Win32_operatingSystem -ComputerName $comps).caption 
$info_comp.Cells.Item($Row, $Column) = $OS
    $Column++
    
$SP = (Get-WmiObject -Class Win32_operatingSystem -ComputerName $comps).servicepackmajorversion 
if ($SP -gt 0){
$info_comp.Cells.Item($Row, $Column) = $SP}
else {$SP1 = ""
      $info_comp.Cells.Item($Row, $Column) = $SP1
     }
    $Column++

$Arch = (Get-WmiObject -Class Win32_operatingSystem -ComputerName $comps).osarchitecture
if ($Arch -eq "64-bit"){
$info_comp.Cells.Item($Row, $Column) = $Arch}
else {$Arch1 = "32-bit"
      $info_comp.Cells.Item($Row, $Column) = $Arch1}
    $Column++         

#Материнская плата
$Moth = (Get-WmiObject -Class Win32_BaseBoard -ComputerName $comps).product
$info_comp.Cells.Item($Row, $Column) = $Moth
    $Column++

#Процессор
$CPU_ = (Get-WmiObject -Class Win32_Processor  -ComputerName $comps).deviceid
    if($CPU_ -ne "CPU0")
  {
   $CPU1 = (Get-WmiObject -Class Win32_Processor  -ComputerName $comps)[0].Name
   $info_comp.Cells.Item($Row, $Column) = $CPU1
    }
else {
      $CPU =  (Get-WmiObject -Class Win32_Processor  -ComputerName $comps).Name
      $info_comp.Cells.Item($Row, $Column) = $CPU
     }

    $Column++

#Оперативная память
$total = 0
$RAM = (gwmi win32_physicalmemory -ComputerName $comps) | foreach { $total += ($_.capacity / 1Gb) }
$RAM = '{0}' -f $total
$info_comp.Cells.Item($Row, $Column) = $RAM
    $Column++

#Видеоподсистема
$GPU = (Get-WmiObject -Class Win32_VideoController  -ComputerName $comps).name
$GPU1 = (Get-WmiObject -Class Win32_VideoController  -ComputerName $comps)[0].name
$GPU2 = (Get-WmiObject -Class Win32_VideoController  -ComputerName $comps)[1].name

#$d1 = "DameWare Development Mirror Driver 64-bit"
#$d2 = "DameWare Development Mirror Driver"
#$C = "ConfigMgr Remote Control Driver"
$drivers = "*Driver*"

   if ($GPU -ne $Null)
     {
     $info_comp.Cells.Item($Row, $Column) = $GPU
     $Column++
     }
     
     
   if($GPU1 -like $drivers -or $GPU1 -like $drivers)
     {
     $info_comp.Cells.Item($Row, $Column) = $GPU2
     $Column++
     }
        else 
            {
             $info_comp.Cells.Item($Row, $Column) = $GPU1
             $Column++
            }  
     
#Носители информации
          
    # локальные диски
     Get-WmiObject Win32_LogicalDisk -Filter   "DriveType=3" -ComputerName $comps | ForEach-Object `
{
    # Name_PC 
    $dev_id = $_.deviceID
  
    $info_comp.Cells.Item($Row, $Column) = $dev_id
    $Column++
 
    # Free Space
    $info_comp.Cells.Item($Row, $Column) = ([Math]::Round($_.FreeSpace/1GB, 2))
    $Column++
    
    # Size
    $info_comp.Cells.Item($Row, $Column) = ([Math]::Round($_.Size/1GB, 2))
    $Column++
        
    $Column = 9


###########################################################################
# Номер начальной строки
$InitialRow = $Row
# Возвращаемся на одну строку назад
#$Row--

$DataRange = $info_comp.Range(("A{0}" -f $InitialRow), ("K{0}" -f $Row))
7..12 | ForEach-Object `
{
    $DataRange.Borders.Item($_).LineStyle = 1
    $DataRange.Borders.Item($_).Weight = 2
}

$Row++
#############################################################################
}
##############    
$Column = 1
##############
}

} #end

# Выделяем жирным шапку таблицы
$info_comp.Rows.Item(1).Font.Bold = $true
$info_comp.Rows.Item(1).Font.Size = 12
$info_comp.Rows.Item(1).Font.Color = 8210719

# Переменная $UsedRange содержит все занятые ячейки (эквивалентно однократному нажатию Ctrl+A)
$UsedRange = $info_comp.UsedRange
$UsedRange.EntireColumn.AutoFit() | Out-Null
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39506020
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это код рисует таблицу

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
###########################################################################
# Номер начальной строки
$InitialRow = $Row
# Возвращаемся на одну строку назад
#$Row--

$DataRange = $info_comp.Range(("A{0}" -f $InitialRow), ("K{0}" -f $Row))
7..12 | ForEach-Object `
{
    $DataRange.Borders.Item($_).LineStyle = 1
    $DataRange.Borders.Item($_).Weight = 2
}

$Row++
#############################################################################
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39555952
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите как на повершеле проиграть звуковой файл на удаленном компьютере?
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39556095
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014Подскажите как на повершеле проиграть звуковой файл на удаленном компьютере?

можно попробовать Powershell remoting
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39556500
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharperSAS2014Подскажите как на повершеле проиграть звуковой файл на удаленном компьютере?

можно попробовать Powershell remoting

спс пробывать буду я
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39559791
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил написать скрипт, который будет искать в указаном файле строку, которая будет располагаться после строки в которой найдено искомое слово

скрипт:
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 cls

$file = "c:\test.syslog"

foreach ($f in $file)
{
$f = (Select-String -path $file -Encoding default -SimpleMatch '9069:' -Context 1)[-3]

$f.Line
$f.Context.PostContext 
}



в результате:
+++ Error code 9069: unable to refreshed dataset 1213416 in Dataset::refreshMe(
lockIt TRUE, isLockForDelete FALSE)
SELECT puid,ptimestamp FROM PPOM_OBJECT WHERE puid = 'wtS9Jaw9nBzB6C' FOR UPDAT
E;

------------------------------------
------------------------------------
но проблема в том, что у меня не получается, чтобы не стопорился поиск на первых найденных строк
а искал все строки в файле

и второе возможно ли файл в который будет залит результат можно будет в нем удалить все кроме wtS9Jaw9nBzB6C

заранее спс
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39559796
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
итоговый результат должен стать
+++ Error code 9069: unable to refreshed dataset 43533416 in Dataset::refreshMe(
lockIt TRUE, isLockForDelete FALSE)
SELECT puid,ptimestamp FROM PPOM_OBJECT WHERE puid = 'wtS9Jaw9nBzB6C' FOR UPDAT
E;
+++ Error code 9069: unable to refreshed dataset 43533416 in Dataset::refreshMe(
lockIt TRUE, isLockForDelete FALSE)
SELECT puid,ptimestamp FROM PPOM_OBJECT WHERE puid = '8fd4d4g4d4f4dgd' FOR UPDAT
E;
+++ Error code 9069: unable to refreshed dataset 43533416 in Dataset::refreshMe(
lockIt TRUE, isLockForDelete FALSE)
SELECT puid,ptimestamp FROM PPOM_OBJECT WHERE puid = 'ewrwrwdffsfs445434f4dgd' FOR UPDAT
E;
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39559942
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: powershell
1.
2.
3.
4.
5.
# зачем нужна эта строка:
foreach ($f in $file)
{
# И опять присваиваем $f
$f = (Select-String -path $file -Encoding default -SimpleMatch '9069:' -Context 1)[-3]



в результате:
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39560255
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как удалить все в файле кроме тех символов которые стоят между ' '
...
Рейтинг: 0 / 0
Програмирование в powerShell
    #39560359
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014а как удалить все в файле кроме тех символов которые стоят между ' '

что-то типа

Код: powershell
1.
(sls "'.*?'" C:\myFile.txt | %{ $_.Matches -join ''}) -join '' | sc  C:\myFile1.txt 
...
Рейтинг: 0 / 0
45 сообщений из 45, показаны все 2 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Програмирование в powerShell
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]