Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228

Открыть новую тему     Написать ответ в эту тему

KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Старые и смежные темы: по CMD и в Программах | по PowerShell | В помощь системному администратору | Прикладное программирование

PowerShell
Версии | Ассоциация и подпись сценариев
Сценарий для ассоциации файлов PowerShell и запуска неподписанных скриптов.
 
Прочее
Расширение возможностей
Функции
Write-Color
Output-DebugString
Провайдеры
Готовые скрипты
Полезные ссылки | Будет ли репозиторий PowerShell на ru-board?
Книги в PDF
Cheat Sheets
 

Cmd
Для перекодирования кириллицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы
 
Готовые решения и частые вопросы
 
Описания работы команд и символов участниками темы:
setlocal enabledelayedexpansion и переменные окружения
символы & и && в командной строке
Переменная %0
 
Полезные ссылки и утилиты

WSH (VBScript, JScript)
Программирование "удобняшек" на VBScript

Примечания:
• Большие куски кода заключайте в тэг [ more ]
• Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте код без пробелов иначе сценарий может работать неправильно. Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
• Сторонние консольные утилиты можно использовать только в виде готового решения и только в рамках сценариев. Никаких обсуждений и обучений работе с утилитами не предусмотрено и прямо запрещено правилами топика.
Шапка и около-темные вопросы |

Всего записей: 11368 | Зарегистр. 12-10-2001 | Отправлено: 13:40 17-02-2018 | Исправлено: YuS 2, 08:24 19-06-2021
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть давний скрипт для подключения к явебдаву Подробнее... Не соображу, как быть, если надо два аккаунта, так подключить?

Всего записей: 3601 | Зарегистр. 16-08-2012 | Отправлено: 20:41 06-02-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
 
Как-то так
 

Код:

$script = {
  [CmdletBinding()]
  Param
  (
    [Parameter(Mandatory = $true, ValueFromPipeline = $true)]
    [ValidateNotNullOrEmpty()]
    [ValidatePattern("[a-zA-Z]")]
    #Назначенная буква сетевого диска для подключения к WebDAV яндекс диска.
    [char]$YDisk = "Y",
    [String]$Username,
    [string]$Password

  )
 
  process
  {
    #Если диск не доступен, то подлкючить.
    if (!(Test-Path -Path "$($YDisk):")) {
      net use "$($YDisk):" https://webdav.yandex.ru /user:$($Username) $($Password) /PERSISTENT:NO
    }
  }
}
 
& $script 'Y' user pass

 
Я просто в своё время запомнил эту часть хелпа к net use...
 
 
Добавлено:
/savecred имеет отношение к Windows Credentials Manager
А там с одним сервером не могут быть два набора креденшиалов.
Без него должно получиться
Проверяй сам.
 

Всего записей: 17481 | Зарегистр. 14-10-2001 | Отправлено: 00:51 07-02-2020 | Исправлено: LevT, 01:00 07-02-2020
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del

Всего записей: 2513 | Зарегистр. 27-07-2009 | Отправлено: 09:30 07-02-2020 | Исправлено: farag, 09:36 07-02-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Цитата:
А там с одним сервером не могут быть два набора креденшиалов.  

Печалька. А если очень хочется? А может сохранить креды, как то, под другим «именем» а в скрипте выбирать какой использовать? Или от другого юзера запускать. Эхъ.  

Всего записей: 3601 | Зарегистр. 16-08-2012 | Отправлено: 09:43 07-02-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
 
Эта фишка называется credential manager (вообще, а не виндовз)
 
Их много, начиная с бесплатного Keypass и кончая облачными монстрами
Есть Devolutions здесь в варезнике, с бесплатным вариантом.
 
Для многих есть управляющие модули повершел.
 
 
Добавлено:
iNNOKENTIY21
 
Хотя если тебе только несколько паролей закриптовать - можно погуглить как-то "powershell secrets"
SecureString емнип секурна, но привязана к текущей учётке на текущей оси, потому непортабельна
 
 

Всего записей: 17481 | Зарегистр. 14-10-2001 | Отправлено: 10:00 07-02-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Цитата:
Хотя если тебе только несколько паролей закриптовать - можно погуглить как-то "powershell secrets"
SecureString емнип секурна, но привязана к текущей учётке на текущей оси, потому непортабельна

Код:
<#
.SYNOPSIS
Сохранение пароля в зашифрованном виде в файл.
 
.DESCRIPTION
Запрос на ввод пароля (под звездочками) и сохранение его в зашифрованном виде в
указанный в параметре -Path файл.
 
.EXAMPLE
Путь\К\Скрипту\Set-PasswordFile.ps1 "c:\docs\secret.pass"
 
.NOTES
Храните файл с зашифрованным паролем в недоступном для посторонних месте.
#>
 
 
[CmdletBinding()]
Param
(
    [Parameter(Mandatory=$true)]
    [ValidateNotNullOrEmpty()]
    [ValidateScript({ Split-Path $_ | Test-Path })]
    [String]
    #Полный путь к файлу куда сохранять зашифрованный пароль.
    $path
)
 
#Запрос пользователю ввести пароль.
$secure = Read-Host -Prompt "Введите пароль" -AsSecureString
 
#Шифрация введенного пароля.
$encrypted = ConvertFrom-SecureString -SecureString $secure
 
#Сохранение шифрованного пароля в указанный в переменной $path файл.
$encrypted | Set-Content -Path $path

Код:
Function Get-Password
{
    Param
    (
        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [ValidateScript({ Test-Path $_ })]
        [String]
        #Путь к зашифрованному файлу с паролем.
        $path
    )
 
    $ErrorActionPreference = "Stop"
 
    #Создать приватную переменную secure.
    New-Variable -Name secure -Visibility Private
 
    #Загрузить и сконвертировать шифрованный файл в SecureString.
    $secure = Get-Content $path | ConvertTo-SecureString
 
    #Создать приватную переменную bstr.
    New-Variable -Name bstr -Visibility Private
 
    #Коенвертировать SecureString в BSTR
    $bstr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($secure)
 
    #Создать приватную переменную plain.
    New-Variable -Name plain -Visibility Private
 
    #Коенвертировать BSTR в PlainText.
    $plain = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($bstr)
 
    return $plain
}

 
Я возжелал воспользоваться сейфом windows.
А ведавка, 2 диска одновременно, не хочет к одному серверу, ну хотя бы попеременно бы, без ввода паролей.

Всего записей: 3601 | Зарегистр. 16-08-2012 | Отправлено: 11:25 07-02-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
 
ну если погуглить webdav powershell что-то нагугливается..
 
Добавлено:
Вообще-то, невозможность нескольких наборов креденшиалов для удалённого подключения по smb - фишка виндового smb
Может когда-то они таким образом затыкали какие-то дыры.
 
На вебдав это не обязательно должно распространяться.
net use - это изначально управлялка именно мапингом smb шар, всё остальное к ней прилеплено сбоку

Всего записей: 17481 | Зарегистр. 14-10-2001 | Отправлено: 11:30 07-02-2020 | Исправлено: LevT, 11:38 07-02-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Цитата:
ну если погуглить webdav powershell что-то нагугливается..

Что именно? Чего то ничего подходящего не вижу.
 
Я же попробовал, не подключает оно при уже имеющемся подключении к тому же серверу. Подробнее... При отключении и повторном подключении к тому же серверу, уже с другими учетными данными, новые учетные данные заменяют предыдущие.

Всего записей: 3601 | Зарегистр. 16-08-2012 | Отправлено: 12:16 07-02-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
 
Ну значит это такая же фича вебдав клиента винды, как фича smb клиента.
Остаётся скриптовать временные подключения
 
 
 
Добавлено:
Еще можно попробовать назначить локальный dns алиас целевому серверу.
Ну, то есть имя от фонаря, которое разрешалось бы куда надо.
 
Авось, проканает за разные.
 
 
 
Добавлено:
 
 
Есть известный "недостаток" повершел: невозможность назначить Alias команде с ключами.
Так вот, для этого вместо алиасов скриптблоки,  
 
    таков повершел way

Всего записей: 17481 | Зарегистр. 14-10-2001 | Отправлено: 13:11 07-02-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Цитата:
Еще можно попробовать назначить локальный dns алиас целевому серверу.  

hosts?

Всего записей: 3601 | Зарегистр. 16-08-2012 | Отправлено: 14:52 07-02-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
 
hosts позволит только IP назначить несколько псевдонимов
С тем же успехом ты можешь первым делом попробовать подключиться по циферькам (вот уже и второе подключение...)
 
Если этого недостаточно, покопайся в DnsClient, он должен уметь.
Ну или сторонним софтом который его дурит/подменяет.
 
Или на раутере

Всего записей: 17481 | Зарегистр. 14-10-2001 | Отправлено: 16:16 07-02-2020 | Исправлено: LevT, 16:18 07-02-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
 
cmdkey
 
и Install-Module CredentialManager
 
http://techgenix.com/managing-cached-credentials/
 
 
 
NEWBIES
 
Учимся работать в консоли
Именно тут алиасы уместны, и знать их полезно
 

Код:

cmdkey /list
 
cmdkey /list | sls 'Target'
 
cmdkey /list | sls 'Target' | % {$_ -replace '^\s*',''}
 
cmdkey /list | sls 'Target' | % {$_ -replace '^\s*Target',''}
 
cmdkey /list | sls 'Target' | % {$_ -replace '^\s*Target:.*:target=',''}
 
$target = cmdkey /list | sls 'Target' | % {$_ -replace '^\s*Target:.*:target=',''}   #пойдёт в скрипт
 
$target
 

 
 
Генерим данные для дальнейшего исследования  
 

Код:

0..($target.Count -1)
 
...
 
0..($target.Count -1) | % {[PsCustomObject]@{Index=$_; Value=$target[$_]}}
 
$Items = 0..($target.Count -1) | % {[PsCustomObject]@{Index=$_; Value=$target[$_]}}  #пойдёт в скрипт
 
$Items
 

 
 
 
Добавлено:
 
Выясняем, что важную часть информации похерили регулярным выражением, возвращаемся

Всего записей: 17481 | Зарегистр. 14-10-2001 | Отправлено: 13:21 08-02-2020 | Исправлено: LevT, 14:20 08-02-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Цитата:
cmdkey  

Утилита хорошо.
 
Модуль, левый, ставить от админа для работы с паролями, мне стрёмно Да он ничего не делает, что не может утилита.
Обёртка над утилитой, мне кажется лишней. В качестве менеджера (много записей и т.д.) всё рано keepass рулит.
А изредка поглядеть, удалить лишнее, утилиты и так хватит.
 
А вот как всё это поможет мне с двумя пользователями на один ресурс?

Всего записей: 3601 | Зарегистр. 16-08-2012 | Отправлено: 15:19 08-02-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
 
Я тебя ни к чему не уговариваю.
Просто для информации
 
Согласен, что модули карго-культ, если не уметь ими пользоваться.
А на каждый модуль нужно время.
Чтобы с уверенностью утверждать, что он может или не может, хотя бы..
 
 
Добавлено:
 
Предлагаю подумать о том, как избежать повторных затрат времени
То есть, в каком виде делиться накопленным опытом
 
У меня есть кое-какие соображения.





Задрал, птица говорун. Где примеры?

Всего записей: 17481 | Зарегистр. 14-10-2001 | Отправлено: 15:26 08-02-2020 | Исправлено: KLASS, 15:38 08-02-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Цитата:
Я тебя ни к чему не уговариваю.
Просто для информации  

Информацию я принял, хорошая утилита.

Цитата:
Согласен, что модули карго-культ, если не уметь ими пользоваться.  

Т.е. это ты меня назвал отсталым аборигеном, который увидел модуль powershell, пытается его повторить, рисуя символы на скале и чета не взлетает… За что?

Цитата:
А на каждый модуль нужно время.
Чтобы с уверенностью утверждать, что он может или не может, хотя бы..  

По твоей же ссылке, на описание модуля, всё очевидно. Мою задачу не решает.
Делает 3 функции, как утилита. Поглядеть, Создать, Удалить. Привязка к target, у target один User.

Всего записей: 3601 | Зарегистр. 16-08-2012 | Отправлено: 16:05 08-02-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пример добавления ScriptProperty к массиву
 
Может, iNNOKENTIY21 уже и докопался до такого - тогда сорри, но повторить всё равно не лишнее
 
 

Код:

$DscResourcesAvailable = Find-DscResource
 
$MemberParams = @{
  MemberType = 'ScriptProperty'
  Name       = 'PSGetModuleinfoLookup'
 
  Value      = {
    [PSCustomObject]@{
      DscResource  =  $this.Name
      Module        = $this.ModuleName
      ProjectUri    = $this.PSGetModuleInfo.ProjectUri
      PublishedDate = $this.PSGetModuleInfo.PublishedDate
    }
  }
}
 
$DscResourcesAvailable | Add-Member @MemberParams -Force   #-Force в скрипте не нужен: он для отладки, чтобы править @MemberParams  
 
$Lookup = $DscResourcesAvailable.PSGetModuleinfoLookup
 
$Lookup | Out-GridView
 
$Lookup |  
    where DscResource -Like -Value '*optional*' |
        select -ExpandProperty ProjectUri -Unique |  
            foreach {Start-Process $_}                    # открываем исходники в браузере
 

 
Добавлено:
 
Add-Member для дальнейших манипуляций с выдачей, типа как здесь
 
Есть подобная фишка для форматирования: это Update-TypeData

Всего записей: 17481 | Зарегистр. 14-10-2001 | Отправлено: 13:16 09-02-2020 | Исправлено: LevT, 13:47 09-02-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:

 
$Packages = @"
LanguageDsc
ComputerManagementDsc
"@
 
$installAbsentModule = {
  begin {
     $Packages = Get-Package
     $Packages | ft -AutoSize     # вот такие вот пакеты подвластны пакетному менеждеру повершел
     $PackageNames = $Packages.Name
  }
  process {
    if ($PackageNames -notcontains $_) {
      Install-Module $_ -Force -Verbose  
    }  
  }
}
 
$Packages | & $installAbsentModule  


Всего записей: 17481 | Зарегистр. 14-10-2001 | Отправлено: 15:18 09-02-2020 | Исправлено: LevT, 15:39 09-02-2020
PhoenixUA



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT

Цитата:
$installAbsentModule  - замыкание, ибо натурально замыкает переменную $Packages = Get-Package

Замыкания в Powershell создаются с GetNewClosure()

Всего записей: 2184 | Зарегистр. 17-11-2005 | Отправлено: 15:50 09-02-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PhoenixUA
 
Да, я поторопился
 
Добавлено:
Стёр уже базар, за который сейчас не готов отвечать

Всего записей: 17481 | Зарегистр. 14-10-2001 | Отправлено: 16:09 09-02-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
 
Подвернулось вот такое
https://www.ironcastle.net/secrets-management-development-release/
 
Добавлено:
https://www.powershell.co.at/first-look-at-the-secrets-management-module/
 
 
Добавлено:
 
Получаем последние исходники модуля (другого)
 

Код:
 
$module = fimo ComputerManagementDsc
git clone $module.ProjectUri.AbsoluteUri
 

 
 
Добавлено:
 
Исходники SecretsManagement тоже открыты, но майки их отдадут в pwsh не раньше, чем реализуют свои собственные хотелки
неверно понял: они и сейчас под pwsh, просто пулреквесты пока не принимаются
 
https://github.com/PowerShell/Modules/tree/master/Modules

Всего записей: 17481 | Зарегистр. 14-10-2001 | Отправлено: 18:32 09-02-2020 | Исправлено: LevT, 19:22 09-02-2020
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru