Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Инкремент

Ответить
Настройки темы
PowerShell - [решено] Инкремент

Аватара для AZABAZA

Пользователь


Сообщения: 69
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Добрый день, всем

Вот есть скрипт
Код: Выделить весь код
do {Write-Host password0$i; $i++}
while ($i -le 12 )

мне нужно чтобы он вывод написал в текстовый файл, при каждом запуске вместо инкремента вставлял значение до 12.
Если достигнет результата сбрасывать счетчик.

Это для создания скрипта для ежемесячной смены паролей!

Будут вопросы пишите!

Кто чем поможет, благодарен!

Отправлено: 12:18, 16-10-2015

 

Аватара для AZABAZA

Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


Foreigner, Iska,
Спасибо огромное , выручили!
Благодарю вас!

Отправлено: 05:38, 19-10-2015 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для AZABAZA

Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


Foreigner, Iska,
А есть ли возможность вызывать это в одном текстовом файле 2- и более раз?

Пример: USER1/pass012
USER2/pass012
USERn/pass012

И если хочу добавить простой текст перед паролем выдает ошибку
Код: Выделить весь код
Cannot convert value  "простой текст" to type "System.Int32". Error: "Input string was not in a corre
ct format."
At line:2 char:27
+ ... t-path test.txt) { $a = [int][string](get-content test.txt)[-2..-1] }
+                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvalidCastFromStringToInteger

Отправлено: 07:45, 19-10-2015 | #12


Аватара для AZABAZA

Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


Foreigner, Iska,
Всем привет,
выходит вот такая ошибка если файл существует в директорий. А если удалить, то запускается без проблем!
в чем причина не подскажете светлые умы?

Код: Выделить весь код
Cannot convert value "text;exit" to type "System.Int32".
 Error: "Input string was not in a correct format."
At D:\test_bat\pp.ps1:2 char:29
+ ... \mco.bat) { $a = [int][string](get-content D:\mco.bat)[-2..-1]} {$b = ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvalidCastFromStringToInteger

Отправлено: 13:51, 06-11-2015 | #13


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


AZABAZA, Откуда взялся 'text;exit' ? В текстовом файле должна быть единственная строка вида "pass001".."pass012"
Понятно что эту строку нельзя привести к типу integer (точнеe последние два символа 'it').

Скрипт берет все содержимое файла, если в файле несколько строк, то надо уточнить какую брать по порядку или какую по содержимому.

Последний раз редактировалось Foreigner, 06-11-2015 в 14:56.


Отправлено: 14:47, 06-11-2015 | #14


Аватара для AZABAZA

Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


Foreigner,

текст взялся из скрипта. ниже скрипт


Код: Выделить весь код
$ofs = ''
if (test-path D:\mco.bat) { $a = [int][string](get-content D:\mco.bat)[-2..-1]} {$b = [int][string](get-content D:\mco.bat)[-2..-1] }
$a = $a % 12 + 1
$b = $b % 12 + 1
set-Content D:\mco.bat "chcp 1251
set ORACLE_SID=DB"
[System.IO.File]::AppendAllText("D:\mco.bat", $('sqlplus"user/pass0{0:d2}' -f $b), [System.Text.Encoding]::ASCII) 
[System.IO.File]::AppendAllText("D:\mco.bat", '@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=DATABASE)(Port=1521))(CONNECT_DATA=(SID=DB)))"', [System.Text.Encoding]::ASCII)
Add-Content D:\mco.bat $('')
[System.IO.File]::AppendAllText("D:\mco.bat", $('ALTER USER user IDENTIFIED BY pass0{0:d2};' -f $a), [System.Text.Encoding]::ASCII) 
Add-Content D:\mco.bat $('')
[System.IO.File]::AppendAllText("D:\mco.bat", $('ALTER USER user IDENTIFIED BY pass0{0:d2};' -f $a), [System.Text.Encoding]::ASCII) 
Add-Content D:\mco.bat $('')
[System.IO.File]::AppendAllText("D:\mco.bat", $('ALTER USER user IDENTIFIED BY pass0{0:d2};' -f $a), [System.Text.Encoding]::ASCII) 
Add-Content D:\mco.bat $('')
[System.IO.File]::AppendAllText("D:\mco.bat", 'SELECT NAME FROM V$DATABASE;', [System.Text.Encoding]::ASCII) 
Add-Content D:\mco.bat $('')
[System.IO.File]::AppendAllText("D:\mco.bat", 'exit', [System.Text.Encoding]::ASCII) 
Add-Content D:\mco.bat $('')
Add-Content D:\mco.bat $('')
и такой скрипт еще 2 раза в одном ps1.
И этот скрипт выводит следующую ошибку:

Код: Выделить весь код
Cannot convert value "exit" to type "System.Int32". Error: "Input string was no
t in a correct format."
At D:\Untitled5.ps1:2 char:29
+ ... \mco.bat) { $a = [int][string](get-content D:\mco.bat)[-2..-1]} {$b = ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvalidCastFromStringToInteger

Отправлено: 05:41, 09-11-2015 | #15


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Добавьте перед [-2..-1] еще [0]:
Код: Выделить весь код
...(get-content D:\mco.bat)[0][-2..-1]...
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:29, 09-11-2015 | #16


Аватара для AZABAZA

Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


Foreigner,

ошибка перестала выводится, но пароль не генерируется.

Код: Выделить весь код
...(get-content D:\tuo.log)[0][-2..-1]}...

Последний раз редактировалось AZABAZA, 10-11-2015 в 06:17. Причина: correct


Отправлено: 08:42, 09-11-2015 | #17


Аватара для AZABAZA

Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


Foreigner,

Разобрался, не [0], а 4, 2 поставил номер поля
Код: Выделить весь код
(get-content D:\tuo.log)[4][-3..-2]} { $b =[int][string](get-content D:\tuo.log)[2][-91..-90]}
Но вот тут другая проблема вылезла.
Если пишешь для двух переменных то он генерирует для первого переменного ($a), а если впереди прописать переменную ($b)
тогда он генерирует для ($b)

Код: Выделить весь код
$ofs = ''
if (test-path D:\tuo.log)  { $a = [int][string](get-content D:\tuo.log)[4][-3..-2]} { $b =[int][string](get-content D:\tuo.log)[2][-91..-90]} 
$a = $a % 12 + 1
$b = $b % 12 + 1....
У кого какие догадки есть?

С помощью IF/THEN/ELSE/ELSEIF можно решить проблему?

Отправлено: 13:52, 10-11-2015 | #18


Аватара для AZABAZA

Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо Iska, Foreigner, Kazun

if (test-path D:\tuo.log) { $a = [int][string](get-content D:\tuo.log)[4][-3..-2]} { $b = [int][string](get-content D:\tuo.log)[2][-91..-90]}

заменить на :

if (test-path D:\tuo.log) {
$a = [int][string](get-content D:\tuo.log)[4][-3..-2]
$b = [int][string](get-content D:\tuo.log)[2][-91..-90]
}

Все решился

Отправлено: 12:21, 18-11-2015 | #19


Аватара для AZABAZA

Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день, Iska, Foreigner, Kazun,

Нужен совет.

как скрыть тот пароль что в маске указано? чтобы пароль не был в открытом виде.

создать базу, заливать/выгружать пароль в виде хэш код с солью, что можете предложить?

Спасибо за любые советы.

Отправлено: 12:27, 03-05-2016 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Инкремент

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
префиксный инкремент С mrcnn Программирование и базы данных 12 11-01-2005 11:07




 
Переход