Вопросы с тегами [powershell]

1

голосов
4

ответ
3.7k

Просмотры

Получите сегодняшние встречи с прогнозом с помощью PowerShell: Нежелательные результаты

Я извлекая сегодняшние встречи со следующим кодом: $ olFolderCalendar = 9 $ ола = New-Object -ComObject Outlook.Application $ нс = $ ol.GetNamespace ( 'MAPI') $ Start = (Get-Date) .AddDays (- 1) .ToShortDateString () + "00:00" $ End = (Get-Date) .AddDays (+1) .ToShortDateString () + "00:00" $ Filter = «[MessageClass] = 'IPM.Appointment' И [Пуск]> '$ Start' и [End] < '$ End'»$ НАЗНАЧЕНИЯ = $ ns.GetDefaultFolder ($ olFolderCalendar) .Items $ Appointments.Sort ( "[Start]") $ Appointments.IncludeRecurrences = $ ложный Еогеасп ($ Назначение в $ Appointments.Restrict ($ Filter)) {...} Все сегодняшние назначения перечислены, но также много повторяющихся встреч, которые не происходит сегодня (дни рождения, еженедельные встречи, ...). Любая идея, как избежать этого? РЕДАКТИРОВАТЬ: Похоже, все эти нежелательные назначения рода из моего мобильного телефона синхронизированного мировоззрения. Постараюсь сценарий на «чистый» PC. EDIT: Я попробовал скрипт на другом компьютере без синхронизированных элементов, и это то же самое: все повторяющиеся элементы отображения, являются ли они сегодня или нет. И [IsRecurring] = '$ False' не помогает либо.
Fabian
0

голосов
0

ответ
3

Просмотры

Powershell GUI для различных сценариев, которые будут выполняться

У меня есть список скриптов Powershell, которые выполняют различные функции, им пытается увидеть, как я могу создать графический интерфейс с помощью этих скриптов. Скажем, как у меня есть: Кнопка 1: Очистка диска Кнопка 2: Копирование файлов (Если есть путь источника и назначения берутся из Edit Box: означая пути могут быть предоставлены в поле Текст и мои скрипты принимать значения от этого пути, чтобы выполнить ) Кнопка 3: Очистить историю я пытаюсь использовать System.Windows.Forms.Button New-Object, но не смог получить кнопку, чтобы выполнить сценарий, и даже если это выполнить первый сценарий его неспособность выполнить второй. Кто-нибудь реализован этот тип особенность раньше?
Viswanath
0

голосов
1

ответ
6

Просмотры

Regex match does not produce desired result

Этот матч регулярного выражения $ сценария: lstfilepath = ((Get-Content -path $ скрипт: ordfile) | Select-String, -pattern "^ файл \ s * = \ S * (\\\\ * LST)..") Совпадает. .groups [1] .value Производит эту ошибку на файлы, которые не содержат матч, оставив меня поверить, что возвращение является недействительным. Может не индексировать в нулевой массив. В строке: 1 символ:. 1 + ((Get-Content -path \ 27257055-brtcop.ORD) | Select-String -pattern "... + ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~ + CategoryInfo: InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId: NullArray Но мой сценарий никогда не прыгает на "другое", то все процессы под "если", даже если там нет совпадения $ сценария:. lstfilepath = ((Get-Content -path $ скрипт: ordfile) | Select-String -pattern ". ^ файл \ S * = \ S * (\\\\ * LST)"). matches.groups [1]. ordfile) | Select-String, -pattern "^ файл \ s * = \ S * (* \\\\ \\.)") Matches.groups [1] .value $ скрипт:. Zipshortname = $ скрипт: $ ordfile Сценарий: zipname = $ сценарий: zipshortname + ".zip" 7z в -spf $ сценария: $ zipname скрипт: путь_к_файл}
200mg
1

голосов
1

ответ
37

Просмотры

Экспорт Структура папки & подкаталоги / файлы в текст

Я пытаюсь экспортировать структуру папок и это файлы моего портативного жесткого диска в текстовый файл, чтобы иметь доступ выездные. Я хочу, чтобы иметь возможность скопировать структуру папок моей музыкальной папке (100 ГБ +) в текстовый файл, в том числе файлы внутри вложенных папок. Примечание: Я только хочу, чтобы скопировать структуру и расположение папки, и это подкаталоги и файлы, а не сам файл. Я сделал некоторые поиски и нашел следующую команду, используемую в PowerShell для того чтобы достигнуть выход, как я хочу, но это не дает мне список файлов внутри папки. Команда была: Get-ChildItem | дерево> Music_Structure.txt Я хотел бы что-то похожее на следующий вывод в текстовом файле. C :. ├───Music │ │ │ ├───Eminem └───The Eminem Show │ │ └───01 Шторы Up (скит) .flac 02 Белый America.flac и так далее. Я пробовал другие варианты, такие как командная строка команды дерева и команды дир, но не дает мне чистую продукцию. В поисках определенной команды или метод, который я могу сделать каждый месяц, чтобы сохранить этот текстовый файл. Операционная система: Windows 10 x64 версии 1809
Desmond Smith
1

голосов
5

ответ
95

Просмотры

Быстрый способ организовать классифицированных данных в текстовый файл и конвертировать в CSV

У меня есть текстовый файл с сотнями строк. Поля данных и значения, разделенных двоеточием и одна пустая строка разделения каждого набора данных. Это выглядит, как это ... иконка: дождь temperatureHigh: 55,37 temperatureLow: 42,55 влажность: 0,97 WindSpeed: 6,7 precipType: дождь precipProbability: 0.97 значка: частично облачный день temperatureHigh: 34,75 temperatureLow: 27,1 Влажность: 0,8 WindSpeed: 15,32 precipType: значок 0,01 Я изо всех сил пытается форматировать это в CSV с желаемый результат, глядя, как это ...»: снег precipProbability: 0.29 значок: прозрачный день temperatureHigh: 47 temperatureLow: 31,72 влажность: 0,64 WindSpeed: 9,27 precipType: дождь precipProbability " "temperatureHigh", "temperatureLow", "влажность", "WindSpeed", "precipType", "precipProbability" "дождь", "55.37"," 42.
Johnny Carino
1

голосов
2

ответ
28

Просмотры

Запуск команд PowerShell атомарно

У меня есть 3 Powershell команды, которые должны работать синхронно, как мне нужно, чтобы передать выход с 1-го по 2-й и так далее. Однако, если какой-либо сбой, я должен вернуться из всего 3. Есть ли командлет или метод, даже, что позволит это поведение в PowerShell?
NealR
1

голосов
1

ответ
43

Просмотры

почему FORMAT не работает с expandproperty

Я пытаюсь проверить, если последняя строка в таблице был добавлен в текущий момент времени, используя следующую проверку сценария: $ updateTime = «SELECT TOP 1 FORMAT ([Update_Time],„M / D / YYYY ч: мм тт“) ОТ [DBO] [$ Таблица] ORDER BY uPDATE_TIME DESC». | Выберите -ExpandProperty UPDATE_TIME; Перед тем как добавить формат, свойство расширения работает очень хорошо, как предполагалось получать мне последнее значение UPDATE_TIME $ updateTime = "SELECT TOP 1 [UPDATE_TIME] FROM [DBO] [$ Таблица] ORDER BY UPDATE_TIME DESC". | Выберите -ExpandProperty UPDATE_TIME; Тем не менее, когда я добавил FORMAT в запрос, это приводит к ошибке: Выберите: Свойство «UPDATE_TIME» не может быть найдено. ... BLE] ORDER BY UPDATE_TIME DESC»| Выбрать -ExpandProperty UPDATE_TIME, мне нужно использовать формат, потому что я хочу, чтобы игнорировать секунды, или если есть далеко я могу игнорировать 1 второй разность между значением UPDATE_TIME и Get-Date значения, что было бы еще лучше. $ Сегодня = (Get-Date) .ToString ( 'M / d / гггг ч: мм тт'), если ($ updateTime -eq $ сегодня) {Write-Host "` r`n успешно создан на [$ updateTime]"} еще {Write-Host «` r`n нЕ генерируется в [сегодня] $»} с форматом, но не расширять свойство, я получаю этот выход:
Cataster
1

голосов
2

ответ
21

Просмотры

Цикл через массив баз данных для выполнения SQL-запроса к базе данных

Я пытаюсь запустить тот же SQL запрос к ряду баз данных и вывода результата в отдельный текстовый файл для каждой базы данных. То, что я делал до сих пор имеет проблемы с именем выходного файла. Когда я ammend имени файла использовать только C: \ TEMP \ usersoutput_ $ Num.txt, он ставит все, чтобы только один файл. Вот мой код: $ DBArray = @ ( "Database1", "database2", "DataBase3", "DataBase4", "DataBase5") $ Num = 0 Еогеасп ($ элемент $ DBArray) {(Invoke-Sqlcmd -QUERY " ....»-ServerInstance Сервер2 -Database $ DBArray [$ Num] -Verbose) * >> C: \ TEMP \ usersoutput_ $ DBArray [$ Num] .txt | Еогеасп {$ Num = $ Num + 1}} Где я буду неправильно с этим; это лучший способ для достижения этой цели?
Ricky
0

голосов
0

ответ
5

Просмотры

.NET Ядро версии 2.1 ошибка с тортом Строить 4.0 NuGetRestore и MSBuild действия

Cake Сложение 4.0.0 работает NuGetRestore и MSBuild методы, с помощью команды выполняет MSBuild CLI. В моем понимании, Cake загружает определенную версию MSBuild. В моем решении, в основном это .NET Framework, но наш тестовый проект ориентирован на .NET Ядро 2.1 (мы в конечном итоге переместить весь наш проект для .NET Ядра 2.1+, но не может прямо сейчас). Я испытываю следующее сообщение об ошибке: C: \ мерзавец \ OurProduct \ PPUXL \ инструменты \ .dotnet \ SDK \ 2.1.4 \ SDKs \ Microsoft.NET.Sdk \ построить \ Microsoft.NET.TargetFrameworkInference.targets (135,5): ошибка: В настоящее время .NET SDK не поддерживает таргетинг .NET Ядро 2.1. Либо целевой .NET Ядро 2.0 или ниже, или использовать версию .NET SDK, который поддерживает .NET Ядро 2.1. [C: \ мерзавец \ OurProduct \ PPUXL \ SRC \ Порталы \ Ядро \ OurProduct.Tests \ OurProduct.Tests.csproj] Так обычно я бы загрузить новый SDK, но мы собираемся запустить скрипт на Azure DevOps на агенте построения и SDKs не являются частью нашей рабочей станции, но загружается и составитель Cake с помощью сценария Powershell мы бежим. Вот код причина ошибка:. Задача ( «Восстановление») .Does (() => {// Мы должны изменить этот код, если мы переходим от .NET Framework для .NET сердечников для этого проекта NuGetRestore (решение, новые NuGetRestoreSettings () {PackagesDirectory = packagesDirectory}); вар проекты = GetFiles ( "./**/* csproj."); Еогеасп (вар проект в проектах) {NuGetRestore (проект, новые NuGetRestoreSettings () {PackagesDirectory = packagesDirectory}); }}); Задача ( "Build") .Does (() => {MSBuild (SAMLProject, новые MSBuildSettings () .SetConfiguration (конфигурация) .WithProperty ( "DeployOnBuild", "правда") .WithProperty ( "PublishProfile", конфигурация) .WithProperty ( "publishUrl", SAMLDeployDirectory) .WithProperty ( "WebPublishMethod", "FileSystem")); вар проекты = GetFiles ( "./**/* csproj."); Еогеасп (вар проект в проектах) {если (! project.FullPath.Contains ( "Тесты") && project.FullPath.Contains ( "SAML")) {MSBuild (проект, новые MSBuildSettings () .SetConfiguration (конфигурация)!); }} MSBuild (TestProject, новые MSBuildSettings () .SetConfiguration (конфигурация)); }); Я могу предотвратить ошибку, делая это: Task ( «Восстановить») .Does (() => {// Мы должны изменить этот код, если мы переходим от .NET Framework для .NET сердечников для этого проекта NuGetRestore (решение. новые NuGetRestoreSettings () {packagesDirectory = packagesDirectory}); вар проекты = GetFiles ( "./**/* csproj."); Еогеасп (вар проект в проектах) {если (project.FullPath.Contains ( "Тесты") && project.FullPath.Contains ( "SAML")!!) {NuGetRestore (проект, новые NuGetRestoreSettings () {PackagesDirectory = packagesDirectory}); }}}); Задача ( "Build") .Does (() => {MSBuild (SAMLProject, новые MSBuildSettings () .SetConfiguration (конфигурация) .WithProperty ( "DeployOnBuild", "правда") .WithProperty ( "PublishProfile", конфигурация) .WithProperty ( "publishUrl", SAMLDeployDirectory) .WithProperty ( "WebPublishMethod", "Файловая система")); вар проекты = GetFiles ( "./**/* csproj."); Еогеасп (вар проект в проектах) {если (project.FullPath.Contains ( "Тесты") && project.FullPath.Contains ( "SAML")!) {MSBuild (проект, новые MSBuildSettings () .SetConfiguration (конфигурация)); }} MSBuild (TestProject, новые MSBuildSettings () .SetConfiguration (конфигурация)); }); Как можно запустить методы построения целевой правильно. NET Основные библиотеки с помощью торт? Я хочу построить, чтобы все произойдет в моем сценарии Powershell и мой торт сценария, без влияния окружающей среды. Заранее спасибо.
Ross Gustafson
1

голосов
2

ответ
44

Просмотры

«Kubectl патч» работает на Linux Bash, но не в Windows PowerShell ISE

Следующая команда отлично работает на Ubuntu Баш: kubectl патч развертывания WAPI-бэкенд-d1 --patch «{ "спекуляция": { "шаблон": { "метаданных": { "метки": { "дата": "тест"} }}}}»Та же команда не работает в ОС Windows Powershell консоли (ISE). Ошибка: kubectl: Ошибка с сервера (BadRequest): недопустимый символ «S» ищет начало объекта ключевой строки в строке: 1 символ: 1 + kubectl патч развертывания WAPI-бэкенд-d1 --patch «{„спекуляция“: { "шаблон ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (Ошибка из серв ... ект ключ строки: String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError версия PowerShell консоли: PS> 3 SerializationVersion 1.1.0.1 Я попробовал команду с другой исправленным значением тоже, как я видел, кто-то писал, что пластырь может потерпеть неудачу, если она уже применяется. Путь / спецификации / шаблон / метаданные / метки / дата действительно существует в YAML развертывания, так что это не проблема. Я предполагаю, что это могло бы иметь что-то делать с kubectl работает по-разному в Powershell в отношении котировок, но не мог найти способ, чтобы заставить его работать. Я попытался развертывание патча kubectl WAPI-бэкенд-d1 --patch "{\" спецификация \ ": {\" шаблон \ ": {\" метаданные \ ": {\" метки \ ": {\"
Asu
1

голосов
2

ответ
360

Просмотры

Перечисляя локальных групп с помощью Invoke-Command на удаленных компьютерах

У меня есть проблема с функцией я написал для возвращения членов местных групп при запуске на удаленный компьютер. Мы используем вторичные учетные записи домена для прав администратора, так я использовал Invoke-Command, поэтому мы можем запустить блок сценария с этой учетной записью, однако, когда я делаю это в отличие от запуска нового окна PowerShell с моим администратором учетных данными, она не может Перечислим членов местной группы, которые не являются местными пользователями. $ Компьютеры = "бла" $ кредитки = Get-Credential $ SB = {параметр ($ с) Add-Type -AssemblyName System.DirectoryServices.AccountManagement $ CType = [System.DirectoryServices.AccountManagement.ContextType] :: машина $ контекст = Новый -объект -TypeName System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList $ CType, $ с $ idtype = [System.DirectoryServices.AccountManagement.IdentityType] :: SamAccountName $ Л.Г. = [System.DirectoryServices.AccountManagement.GroupPrincipal] :: FindByIdentity ($ контекст, $ idtype "администраторы") $ членов = $ lg.Members вернуть $ члены} Еогеасп ($ C $ в компьютерах) {если ($ с -eq $ ENV: COMPUTERNAME) {& $ С.Б. -c $ с} еще {Invoke-Command -ComputerName $ с -Credential $ кредитки -scriptblock $ С.Б. -ArgumentList $ с}} При запуске против машины, я вошел в локально возвращает все члены локальной группы. Он также работает, если я начну новую консоль с моей второй учетной записью. Если учетные данные передаются с Invoke-Command, хотя, я получаю ошибки, относящиеся к отсутствию доступа к сети и, похоже, произошло после того, как успешно перечисляя два локальных учетных записей на компьютере первой. Информация возвращается на Lg переменного при отсутствии: PsComputerName: Местные члены: {local_admin, local_user, domain_group, domain_group, domain_user ...} Контекст: System.DirectoryServices.AccountManagement.PrincipalContext ContextType: Машина Описание: Администраторы имеют полный и неограниченный доступ к компьютеру / домен отображаемое_имя SamAccountName: Администраторы UserPrincipalName: Sid : SID ... Guid: DistinguishedName: StructuralObjectClass Имени: Администраторы Два различных ошибки, полученные с несколькими различными подходами: при перечислении через коллекцию произошла ошибка: сетевой путь не найден. , + CategoryInfo: InvalidOperation: (System.Director ... ctionEnumerator: PrincipalCollectionEnumerator) [], RuntimeException + FullyQualifiedErrorId: BadEnumeration + PsComputerName: мля Невозможно преобразовать значение "System.DirectoryServices.AccountManagement.PrincipalCollection" к типу "System.Array". Ошибка: «Сетевой путь не найден» + CategoryInfo: MetadataError: (:) [], ArgumentTransformationMetadataException + FullyQualifiedErrorId: RuntimeException + PsComputerName: мля Первое сообщение от просто пытается вернуть члены переменной, второй был, когда я пытался сделать это переменный массив. Я думаю, что они в основном имеют ту же основную причину. Я попытался добавить -EnableNetworkAccess переключатель Invoke-Command, но это не меняет получил ошибку. Я понимаю, что я уже знаю способ, чтобы сделать эту работу, но мы хотел бы узнать, есть ли какой-нибудь способ запуска оболочки с учетными данными администратора и только вводя их, когда они должны быть переданы на удаленные сервера. Это не кажется, проблема аутентификации, потому что мы можем работать более простые команды с помощью Invoke-Command т.е. IpConfig или WHOAMI. Я использую PowerShell 5.1 Спасибо.
Ash
2

голосов
3

ответ
156

Просмотры

Как правильно использовать ForEach) утверждение списка (?

Я смущен, что я делаю неправильно в методе ForEach синтаксисе списка? PS D: \ NTT> $ nicInfo.IpConfigurations.Count 2 PS D: \ NTT> $ nicInfo.IpConfigurations [0] PrivateIpAddressVersion Имя первичного PrivateIpAddress PrivateIpAllocationMethod Subnet Имя PublicIpAddress Имя ProvisioningState -------------- --------- ---- ------- ---------------- -------------- ----------- ----------- -------------------- -------- --------- IPv4 ipconfig1 Правда 10.233.0.4 Dynamic Преемник PS D: \ NTT> $ nicInfo.IpConfigurations.GetType () IsPublic IsSerial Имя BaseType -------- ------- - ---- -------- True True List`1 System.Object PS D: \ NTT> $ nicInfo.
Gregory Suvalian
1

голосов
1

ответ
50

Просмотры

I'm trying to integrate a folder browser dialog into this batch Mkvmerge Script

Я хочу добавить диалог папку браузера для скрипта MKVMerge. Я не знаю, как принять результат диалога, чтобы указать целевой каталог скрипта. Может кто-то пожалуйста, помогите мне интегрировать их? #Set MKVMerge.exe Путь $ MKVMerge = 'C: \ Program Files \ Mkvtoolnix \ mkvmerge.exe' #set Target $ Каталог = * это * $ подрасширение = Read-Host 'Input Sub Extension' # Обрабатывать $ Subs = Get-ChildItem $ Каталог -Filter -Recurse "* $ подрасширение." | % {$ _ FullName.} | Sort-Object $ Count = $ Subs.count Написать-Host "$ Count MKV, чтобы быть обработаны." Foreach ($ Sub в $ Subs) {#get Имя файла $ FORMATNAME = $ Sub.ToString () # $ Name = $ FormatName.TrimEnd ( "$ подрасширение") $ Name = $ FormatName.Substring (0, $ FORMATNAME. Длина - ($ SubExtension.Length + 1)) $ MKV = $ Name + '.mkv' #Set Output File Name $ Output = $ Name + '___MERGED' + '.mkv' & $ Выполнять MKVMerge -o "$ Выход" --default-трек "0" --language "0: рус" "$ Sub" "$ MKV" Если (Test-Path $ Output) {#Clean Up Remove-Item $ MKV Remove-Item $ Sub Rename-Item $ Выход -NewName $ MKV} Else {записи хоста "несуществующих - $ Выход" - на переднем плане «красный» «несуществующих - $ Выход» | Out-File $ Каталог + "errors.txt" -Append}} Папка диалогового сценария: Add-Type -AssemblyName System.Windows.Forms $ FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog [недействительным] $ FolderBrowser.ShowDialog ( ) $ FolderBrowser.SelectedPath --language "0: рус" "$ Sub" "$ MKV" Если (Test-Path $ Output) {#Clean Up Remove-Item $ MKV Remove-Item $ Sub Rename-Item $ Output -NewName $ MKV} Else { написать-хозяин "несуществующий - $ Output" -foreground "красный" "несуществующий - $ Выход" | Out-File $ Каталог + "errors.txt" -Append}} Папка диалогового сценария: Add-Type -AssemblyName System.Windows.Forms $ FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog [недействительным] $ FolderBrowser.ShowDialog ( ) $ FolderBrowser.SelectedPath --language "0: рус" "$ Sub" "$ MKV" Если (Test-Path $ Output) {#Clean Up Remove-Item $ MKV Remove-Item $ Sub Rename-Item $ Output -NewName $ MKV} Else { написать-хозяин "несуществующий - $ Output" -foreground "красный" "несуществующий - $ Выход" | Out-File $ Каталог + "errors.txt" -Append}} Папка диалогового сценария: Add-Type -AssemblyName System.Windows.Forms $ FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog [недействительным] $ FolderBrowser.ShowDialog ( ) $ FolderBrowser.SelectedPath
Jared D
1

голосов
0

ответ
171

Просмотры

Делегаты PowerShell и .NET (Event Tracing для Windows)

Я пытаюсь использовать библиотеку krabsetw (https://github.com/Microsoft/krabsetw) из сценария PowerShell. Сценарий может создать сеанс и настроить его правильно, но не потребляют какие-либо события. Сценарий: Функция Анализировать-ETW () {Param ([O365.Security.ETW.IEventRecord] $ запись) Написать-Host $ record.Id} $ Трассировка = New-Object -TypeName O365.Security.ETW.UserTrace -ArgumentList @ ( "сессия - $ ([System.Guid] :: NewGuid ())") $ Provider = New-Object -TypeName O365.Security.ETW.Provider -ArgumentList @ ([System.Guid] :: Разбираем ( "{1C95126E- 7EEA-49A9-A3FE-A378B03DDB4D} ")) $ Provider.Any = [O365.Security.ETW.Provider] :: AllBitsSet $ ​​Работа = Регистр-ObjectEvent -InputObject $ Provider -EventName "OnEvent" -действие {Разбираем-ETW - запись $ EventArgs} $ Trace.Enable ($ Provider) $ Trace.Start () Я также попробовать "просто" форма действий: Регистрация-ObjectEvent -InputObject $ Provider -EventName "OnEvent" -действие {Write-Host "прибыл Event"} Кроме того, ничего не найдено. Любые идеи, как сделать его работу? C # подпись случае метод потребляя: общественный делегат недействительной IEventRecordDelegate (IEventRecord записи); Работа C # кода с помощью системы; используя O365.Security.ETW; пространства имен ManagedExamples {общественный статический класс DnsTrace {государственной статической силы Main () {вар след = новый UserTrace (); вар dnsProvider = новый провайдер (Guid.Parse ( "{1C95126E-7EEA-49A9-A3FE-A378B03DDB4D}")); dnsProvider.Any = Provider.AllBitsSet; dnsProvider.OnEvent + = (запись) => {Console.WriteLine ( "Событие" + record.Id + "(" + record.Name + ") получено."); }; trace.Enable (dnsProvider); trace.Start (); }}}
MotiB
1

голосов
2

ответ
283

Просмотры

окна графика задача не может успешно работать при запуске

Я использую скрипт, чтобы создать окна запланированного задание для вызова сценария Powershell в повышенном режиме для запуска обновления окна с помощью boxstarter (инструмента может автоматически продолжать выполнение коды даже есть перезагрузки во время выполнения) при старте системы. Но не знаю, почему, задача может быть вызвана после запуска, но ничего не было сделано. Если я вручную запустить запланированное задание в диспетчере задач, он будет работать, как ожидалось. Скрипт для регистрации запланированное задание: $ TaskActionArgument = "- noprofile -command "& {запуска процесса PowerShell -ArgumentList '-File C: \ Users \ Administrator \ updatescript \ boxstarter.ps1 -verb RunAs'}"" $ TaskAction = Новый -ScheduledTaskAction -Execute "C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe" \ Пользователи \ Администратора \ updatescript \ boxstarter.ps1 -verb RunAs EngineVersion = 4,0 RunspaceId = d158a216-18e3-4e86-9ade-b232201c9cdc PipelineId = Имя_команды = CommandType = ScriptName = CommandPath = CommandLine = Для сообщения об ошибке, я гугл и нашел объяснение в код ошибки здесь В общем, странице говорит, что такая проблема может быть вызвана следующей ошибка: служба планировщика заданий отключена служба COM отключена служба журнала событий Windows отключена служба RPC отключена Существует недостаточно Non свободной памяти выше верно для моей системы. Так что ошибка с моей запланированной задачей? Как я могу заставить его работать? Я гугл и нашел объяснение кода ошибки здесь, в общем, страница говорит, что такая проблема может быть вызвана следующим сообщением об ошибке: Служба планировщика заданий отключена Служба COM отключена Служба журнала событий Windows отключена Служба RPC отключено Существуют не достаточно свободный Non памяти выше верно для моей системы. Так что ошибка с моей запланированной задачей? Как я могу заставить его работать? Я гугл и нашел объяснение кода ошибки здесь, в общем, страница говорит, что такая проблема может быть вызвана следующим сообщением об ошибке: Служба планировщика заданий отключена Служба COM отключена Служба журнала событий Windows отключена Служба RPC отключено Существуют не достаточно свободный Non памяти выше верно для моей системы. Так что ошибка с моей запланированной задачей? Как я могу заставить его работать?
Ian M
1

голосов
3

ответ
145

Просмотры

Remove Permissions from android manifest xml file with powershell script

У меня есть файл манифеста, содержащий следующее содержание. Я хочу, чтобы удалить последние два разрешения через PowerShell, но не в состоянии сделать это. Я в состоянии получить необходимое разрешение, но не в состоянии удалить. Вот сценарий, я использовал, чтобы получить содержание. $ AndroidManifextFile = "C: \ Users \ BilalAbbasi \ Desktop \ Temp \ AndroidManifest.xml" $ newPackageName = "com.dlginventory" $ XML = [Xml] (Get-Content $ androidManifextFile) # Этот загружает конфигурационный XML как $ rootElements = $ xml.get_DocumentElement (); # Эта получает все корневые элементы только ## $ permissionElements = $ rootElements.'uses-разрешения '## $ element1 = $ permissionElements.name -eq "android.permission.ACCESS_FINE_LOCATION" $ element1 = $ rootElements.'uses-разрешение'. имя -eq «андроида.
Bilal Abbasi
1

голосов
1

ответ
31

Просмотры

Проблема с Powershell Excel пытается бросить .csv значения

На данный момент, я считаю, что это может быть проблемой файлового ввода / вывода. Хотя использование сценария Powershell вызова методов Excel, чтобы пройти через CSV-файл с веб-сайта, PowerShell пытается бросить заполнители для данных, которые слишком долго для ячейки «#######» вместо даты и времени, содержащейся в «клетке» (поисковые системы, возможно, потребуется «знак фунта» или «хэштегом», чтобы достичь этого результата). Ниже обижая часть сценария. [DateTime] $ S = $ sheet.Cells.Item ($ Ряды + $ я, $ Cols) .text [DateTime] $ G = $ sheet.Cells.Item ($ rowG + $ я, $ colG) .text [DateTime] $ а = $ sheet.Cells.Item ($ Rowa + $ я, $ colSWScan) .text данные должны существовать в виде ММ / ДД / YYYY HH: MM, но читается Powershell / PSExcelModule как #######, который является то, что отображается в графическом интерфейсе Excel при открытии файла. Это лишь часть того, что делает весь сценарий. Любые предложения о том, как устранить ошибку при сохранении использования PSExcel-модуле будут наиболее полезными. Stackoverflow, кажется, есть проблема со мной отправляя сообщение об ошибке многословного, и это мой первый пост. Дайте мне знать, если это будет helfpul с устранением неполадок. Редактировать для комментариев # 1: # Создать экземпляр Excel.Application и Open Excel файл $ objExcel = New-Object -ComObject Excel.Application # Открыть файл $ Учебное пособие = $ objExcel.Workbooks.Open ($ файл) # Активировать первый лист $ лист = $ workbook.Worksheets.Item ($ SheetName) $ objExcel.Visible = $ ложного После того, как моя голова из «Excelland», я понял, что это может быть проще переписать сценарий, чтобы использовать .csv организацию ( оригинал импортированный файл для сценария был .xlsx), но я правда не знаком с. CSV сценариев. Тем не менее, первоначальный вопрос все еще стоит, а я переписать код, как я, возможно, придется вернуться к .xlsx импортированных документов. Спасибо за предложение JE Carter II. Ответ: $ objExcel.Cells.EntireColumn.AutoFit () Кредит JE Carter II
LifeOfThePotty
1

голосов
0

ответ
57

Просмотры

Как создать Powershell модуль прокси-функции в нескольких файлах?

В нашей системе автоматизации, много прокси-функциях создаются. Обычно прокси-функция будет создана обертыванием функцию в другую функцию. Но наша команда создает функцию прокси, обернув функции в ScriptMethod. Они делают это, чтобы использовать переменные-член внутри функции. Смотрите пример ниже: Функция New-StorageArray {Param ($ Name, $ Credential, [версия] $ Version) $ Array = [PSCustomObject] @ {имяМассива = $ Имя arrayCredential = $ Credential arrayVersion = $ версии} $ массив | Add-члены -MemberType ScriptMethod ProxyForCmdlet1 {Param ($ property1, $ свойство2) попробуйте {Connect-StorageArray -ArrayName $ this.ArrayName -Credential $ это. ArrayCredential $ resultOfCmdlet1 = Cmdlet1 -property1 $ property1 -property2 $ свойство2 $ статус = $ верно} поймать {$ статус = $ верно Write-Error "Некоторые возникла проблема"} наконец {Disconnect-StroageArray} $ retObject = [PSCustomObject] @ {Status = $ статус Результат = $ resultOfCmdlet1} возвращение $ retObject} $ массив | Add-члены -MemberType ScriptMethod ProxyForCmdlet2 {# так же, как ProxyForCmdlet1 исключением является оболочкой для другого командлета} $ массива | Надстройка член -MemberType ScriptMethod ProxyForCmdlet3 {# так же, как ProxyForCmdlet1 исключением является оболочкой для другого Командлет} возвращения массива $} Чтобы Инстанцировать массив конкретной версии, они следуют, как показано ниже. $ ArrayVerion5 = New-StorageArray -Name "MAchineIP" -Credential " $ ArrayVersion5.ProxyForCmdlet1 ( "Параметры") $ arrayVerion4 = New-StorageArray -name "MAchineIP" -Credential "Credential" -Version "4,0" Это хорошо работает. Но когда прокси-функции завернуты внутри ScriptMethod, мы теряем конвейеризации справочную документацию. Когда число функции прокси увеличивается, мы не можем записать его в разные файлы, потому что это одна функция, которая имеет все функции члена. В C # они будут писать частичный класс и функции могут быть записаны в нескольких файлах. Но PowerShell не имеют такие вещи. Мы теряем Powershell преимущество трубопровода, справочной документации, а также не в состоянии справиться сложности, когда прокси-функция возрастает. Каков наилучший альтернативный подход к этому? $ ArrayVersion5.ProxyForCmdlet1 ( "Параметры") $ arrayVerion4 = New-StorageArray -name "MAchineIP" -Credential "Credential" -Version "4,0" Это хорошо работает. Но когда прокси-функции завернуты внутри ScriptMethod, мы теряем конвейеризации справочную документацию. Когда число функции прокси увеличивается, мы не можем записать его в разные файлы, потому что это одна функция, которая имеет все функции члена. В C # они будут писать частичный класс и функции могут быть записаны в нескольких файлах. Но PowerShell не имеют такие вещи. Мы теряем Powershell преимущество трубопровода, справочной документации, а также не в состоянии справиться сложности, когда прокси-функция возрастает. Каков наилучший альтернативный подход к этому? ) $ ArrayVerion4 = New-StorageArray -Name "MAchineIP" -Credential "Credential" -Version "4,0" Это хорошо работает. Но когда прокси-функции завернуты внутри ScriptMethod, мы теряем конвейеризации справочную документацию. Когда число функции прокси увеличивается, мы не можем записать его в разные файлы, потому что это одна функция, которая имеет все функции члена. В C # они будут писать частичный класс и функции могут быть записаны в нескольких файлах. Но PowerShell не имеют такие вещи. Мы теряем Powershell преимущество трубопровода, справочной документации, а также не в состоянии справиться сложности, когда прокси-функция возрастает. Каков наилучший альтернативный подход к этому? ) $ ArrayVerion4 = New-StorageArray -Name "MAchineIP" -Credential "Credential" -Version "4,0" Это хорошо работает. Но когда прокси-функции завернуты внутри ScriptMethod, мы теряем конвейеризации справочную документацию. Когда число функции прокси увеличивается, мы не можем записать его в разные файлы, потому что это одна функция, которая имеет все функции члена. В C # они будут писать частичный класс и функции могут быть записаны в нескольких файлах. Но PowerShell не имеют такие вещи. Мы теряем Powershell преимущество трубопровода, справочной документации, а также не в состоянии справиться сложности, когда прокси-функция возрастает. Каков наилучший альтернативный подход к этому? Но когда прокси-функции завернуты внутри ScriptMethod, мы теряем конвейеризации справочную документацию. Когда число функции прокси увеличивается, мы не можем записать его в разные файлы, потому что это одна функция, которая имеет все функции члена. В C # они будут писать частичный класс и функции могут быть записаны в нескольких файлах. Но PowerShell не имеют такие вещи. Мы теряем Powershell преимущество трубопровода, справочной документации, а также не в состоянии справиться сложности, когда прокси-функция возрастает. Каков наилучший альтернативный подход к этому? Но когда прокси-функции завернуты внутри ScriptMethod, мы теряем конвейеризации справочную документацию. Когда число функции прокси увеличивается, мы не можем записать его в разные файлы, потому что это одна функция, которая имеет все функции члена. В C # они будут писать частичный класс и функции могут быть записаны в нескольких файлах. Но PowerShell не имеют такие вещи. Мы теряем Powershell преимущество трубопровода, справочной документации, а также не в состоянии справиться сложности, когда прокси-функция возрастает. Каков наилучший альтернативный подход к этому? В C # они будут писать частичный класс и функции могут быть записаны в нескольких файлах. Но PowerShell не имеют такие вещи. Мы теряем Powershell преимущество трубопровода, справочной документации, а также не в состоянии справиться сложности, когда прокси-функция возрастает. Каков наилучший альтернативный подход к этому? В C # они будут писать частичный класс и функции могут быть записаны в нескольких файлах. Но PowerShell не имеют такие вещи. Мы теряем Powershell преимущество трубопровода, справочной документации, а также не в состоянии справиться сложности, когда прокси-функция возрастает. Каков наилучший альтернативный подход к этому?
Samselvaprabu
1

голосов
0

ответ
452

Просмотры

Список пользователи в вложенных, группах между лесами AD с помощью PowerShell

Я пытался найти что-то, что соответствует моему случаю, но я не могу найти какие-либо конкретные матчи. Я пытаюсь сделать проверку для пользователей, имеющих доступ к определенным группам в AD. Теперь большинство из них будет членами вложенных групп несколько уровней вниз, пока, наконец, последняя группа не будет кросс-группа лесов, содержащей только один элемент пользователя в другом домене. Так, скажем, я хочу, чтобы проверить пользователей, которые каким-то образом имеют доступ через группу безопасности XXapplication-доступа-group1. в области vs.old.domain. Эта группа безопасности, в свою очередь имеют свои собственные группы элементов, например: XXworkplace-доступ-group2. Члены этой группы, если, в свою очередь, будет кросс-лес глобальной группы в домене in.new.domain с одного пользовательского объекта в качестве члена. Это объекты, которые я заинтересован в листинге. Я могу получить элементы, которые непосредственно memberOf этой группы, но я не могу получить эту часть работы. Теперь я через несколько итераций, но я включу свою последнюю. Я не уверен, действительно ли это будет работать, или если я просто натворить с помощью «где», но здесь идет; импорт-модуль ActiveDirectory $ GroupName = "XXapplication-доступа group1" $ Exportfile = "\\ сервер \ скрипт \ $ GroupName members.csv" Get-ADGroupMember $ GroupName -Recursive | Где {$ _ Objectclass -eq "пользователь".} | Экспорт-Csv $ Exportfile Проблема здесь двоякая. Я могу запустить это без рекурсивного, но это, очевидно, не поймите меня член в группах один уровень вниз. Если я бег с рекурсивным флагом сценарий не будет ничего, кроме ошибки возврата. Ошибка Безразлично» даже не имеет смысла, так как я должен иметь возможность просматривать все эти группы. Ошибка; Get-ADGroupMember: Запрошенная операция не была выполнена, так как пользователь не прошел проверку подлинности На ххх + Get-ADGroupMember $ GroupName -Recursive | Где {$ _. Objectclass -eq "... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ + CategoryInfo: NotSpecified: (XXapplication-доступа группа1: ADGROUP) [Get-ADGroupMember], ADException + FullyQualifiedErrorId: Запрошенная операция не была выполнена, так как пользователь не прошел проверку подлинности, Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember Любые предложения были бы очень рады здесь Запрошенная операция не была выполнена, так как пользователь не прошел проверку подлинности На ххх + Get-ADGroupMember $ GroupName -Recursive | Где {$ _. Objectclass -eq "... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ + CategoryInfo: NotSpecified: (XXapplication-доступа группа1: ADGROUP) [Get-ADGroupMember], ADException + FullyQualifiedErrorId: Запрошенная операция не была выполнена, так как пользователь не прошел проверку подлинности, Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember Любые предложения были бы очень рады здесь Запрошенная операция не была выполнена, так как пользователь не прошел проверку подлинности На ххх + Get-ADGroupMember $ GroupName -Recursive | Где {$ _. Objectclass -eq "... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ + CategoryInfo: NotSpecified: (XXapplication-доступа группа1: ADGROUP) [Get-ADGroupMember], ADException + FullyQualifiedErrorId: Запрошенная операция не была выполнена, так как пользователь не прошел проверку подлинности, Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember Любые предложения были бы очень рады здесь
sbrustad
1

голосов
0

ответ
257

Просмотры

Специальные символы, такие как ао не распознаются операторами в VS Code работает PowerShell

При использовании -как или -match операторов в VSCode и PowerShell, å ä ö не распознаются. Вы просто не получить удар при запуске скрипта, он возвращается отрицательным. Точно такой же оператор в терминальных окнах возвращает True. Пример: $ String = "Denna стрэнговой innehåller Ordet Ноттер!" Если ($ строка -match "Ноттер") {Write-Host "True"} еще {Write-хост "False"} Возвращается значение False. Выполнение: ($ строка -match «Ноттер») в терминале возвращает Правда Сценарий создается в VSCode из файла Новый, Сохранить как .PS1
BLKSTHL
1

голосов
0

ответ
23

Просмотры

Прервать PROCES PowerShell

Я создал PowerShell PROCES на основе следующего кода: $ SERVER = "ServerName" $ ​​процесса = [WMICLASS] "\\ $ сервер \ ROOT \ CIMv2: Win32_Process" $ результат = $ process.Create ( "C: \ script.bat «) с помощью этих команд можно выполнить пакетный файл на другом сервере. Теперь это работает отлично, но я немного запутался. Должен ли я также прекратить PROCES ?? И если это так, как я мог бы прекратить это?
Rotan075
1

голосов
0

ответ
437

Просмотры

Powershell скрипт для импорта, сглаживаются и объединить несколько XML-файлов и экспортировать как CSV

привет все вы храбрые кодеры, у меня есть большое количество XML-файлов, которые мне нужно уплощенных, объединены и преобразованы в CSV-файлы для импорта в Excel, где данные будут отображенной на другой набор данных, который будет использоваться в большей миграции данных. Мне удалось создать сценарий, который собирает все XML-файлы в данной папке и выводит первые элементы уровня на новую строку в собранном CSV-файл. Проблема в том, структура файлов XML (которые не могут быть изменены). Вот образец XML: 0021AC7A0000000000081FDC Xxxxxxxx 2016-04-07 0021AC7A00000000000823B1 TMF Исследование AC-064A201-Lupus Заключительный документ ACL 2016-04-19 05: 28: 06.708 01.05.03 very_long_document_title1. PDF very_long_document_title1.pdf PDF приложения / PDF very_long_document_title1.docx very_long_document_title1.docx word_docx приложение / vnd.openxmlformats-officedocument.wordprocessingml.document Вы заметите, что некоторые из последних элементов происходит дважды в некоторых файлах там может быть еще больше. Так что мне нужно знать, как сгладить эту иерархию XML и предоставляют дочерние-элементы с уникальными именами, предпочтительно в виде [parent.element] [итерационный] [childelement], принимая во внимание, что число детей-элементов может варьироваться и она должна быть экспортирована в CSV. Уникальные заголовки для childitems необходимо сделать отображение правильно в Excel позже. Вот код, который я написал до сих пор, что я довольно неуклюже пытаюсь сделать, это обрабатывать элементы 1-го уровня первыми, а затем элементы «tmf_document» после этого, присоединиться к ним, а затем экспортировать в CSV. Но по какой-то причине я не могу понять, что я получаю ошибку: «Add-участник: Невозможно добавить элемент с именем [в основном все элементы], потому что элемент с таким именем уже существует.» Код: # Получить все XML-файлы $ RootElement = "tmf_study_item" $ documentElement = "tmf_document" $ midElement = "multi_index_data" $ пункты = Get-ChildItem * .xml $ scriptPath = $ (Get-Location) .Path $ scriptFolder = раскол -path $ (Get-Location) .Path -Leaf $ файл_вывода = $ scriptPath + "\" + $ scriptFolder + "CSV" MemberType -match "Property"} | Выбрать -ExpandProperty Название $ KeysToAdd = $ T2Keys |? {$ T1Keys -notcontains $ _} $ KeysToAdd |% {$ Collection | Добавить Член $ _ ""}} $ Коллекция + = $ DocOutput } $ Collection # Добавлять в CSV-файл $ Коллекции | Экспорт-Csv -path $ OUTPUTFILE -Delimiter ";" -NoTypeInformation -Append # Создание CSV для каждого файла # $ Коллекция | Экспорт-Csv -path $ baseNameoutputFile -Delimiter ";" -NoTypeInformation} Я надеюсь, что некоторые из вас может дать мне несколько советов о том, как решить эту проблему. -NoTypeInformation -Append # Создание CSV для каждого файла # $ Коллекция | Экспорт-Csv -path $ baseNameoutputFile -Delimiter ";" -NoTypeInformation} Я надеюсь, что некоторые из вас может дать мне несколько советов о том, как решить эту проблему. -NoTypeInformation -Append # Создание CSV для каждого файла # $ Коллекция | Экспорт-Csv -path $ baseNameoutputFile -Delimiter ";" -NoTypeInformation} Я надеюсь, что некоторые из вас может дать мне несколько советов о том, как решить эту проблему.
Rasmus Eilertsen
1

голосов
1

ответ
172

Просмотры

Переменная PowerShell между двумя сценариями Jenkins

Контекст: Дженкинс фристайл проект с двумя задачами PowerShell. Так Дженкинс делает два сценария, вызываемых два отдельных процессов. Следует избегать слияния в одну задачу PowerShell. Цель: Я должен использовать набор переменных в задаче 1 в задаче 2. Эта переменная может быть установлена ​​со сложным типом, например Script 1: $ SW = [Diagnostics.Stopwatch] :: StartNew () Сценарий 2: $ sw.Stop () Write-Output "$ ($ sw.Elapsed) мс" Вопросы: можно ли это сделать, с поведением PowerShell (как "общий" объем)? Или с поведением Дженкинс, с некоторыми вариантами плагинов Jenkins или PowerShell? Я предполагаю, что это невозможно с «Running» объектами, и я должен сериализовать переменный (очевидно, ограничение с сериализуемыми объектами;)) в Дженкинс рабочего пространство и десериализации из сценария 2. Я использую плагин EnvInject,
Manea
1

голосов
0

ответ
54

Просмотры

Настройка виртуальной машины в лазури с нуля. Как скопировать файлы в VM диск предпочтительно с помощью DSC?

У меня есть Buch инструментов, которые я копирую на целевую машину в лазури каждый раз, когда я создаю новую. Как мне теперь Архивная папка с инструментами открытого использования сеанса PowerShell Copy-Item -toSession разархивировать Это несколько работ. Однако, это не идеальный вариант - например, обновление одного инструмента не так просто, как это должно быть. Я хотел бы добавить это к конфигурации PowerShell DSC. Пытался найти что-то подобное, и каждый ресурс файла я нашел до сих пор использует сетевые акции. Вопрос: Есть ли Oficial способ, как добиться того же результата? Q: Если нет, то любой разумный способ, как добиться этого? DSC был моим первым выбором, но не является обязательным. Я нахожу это, как основное требование а было бы ожидать, что это будет один из сценариев, которые люди пытаются решить. Примечание 1: Я использую DSC в нажимной режиме. Примечание 2: Мы пытались анзибль охватить весь процесс (создание VM, LB, NSG, VPN, ..., VM ЗАД - реестр,
stej
1

голосов
0

ответ
304

Просмотры

Как развернуть Azure Python Web App с FTP с помощью PowerShell?

У меня есть сценарий PowerShell, который создает веб-приложение на Azure. Сценарий также получает файлы в моей папке и загружать их с помощью FTP. Я также вижу, что файлы будут обновлены, который является большим. Мой код API Python Rest. Моя проблема заключается в том, что фаза «развертывание» не работает. Если, например, я использую Git для развертывания, то есть автоматическое развертывание, который выглядит следующим образом: удаленное: Подготовка развертывания для фиксации идентификатора '48a4891b08. удаленный: Создание сценария развертывания. Пульт дистанционного управления: Выполнение команды развертывания ... удаленный: Handling развертывание питона. Использование FTP этого не произойдет, и новые пакеты питона не установлены. Итак, есть ли способ, чтобы сигнализировать веб-приложение для развертывания? Вот отрывок из моего кода: # Создание группы ресурсов Нью-AzureRmResourceGroup -Name $ resourceGroupName -Расположение $ расположение # Создать план App Service в `Free` ярусе. New-AzureRmAppServicePlan -Name $ webappName -Расположение $ место -ResourceGroupName $ resourceGroupName -Tier Free # Создать веб-приложение. New-AzureRmWebApp -Name $ webappName -Расположение $ место -AppServicePlan $ webappName `-ResourceGroupName $ resourceGroupName # Get публикации профиля для веб-приложений [XML] $ XML = (Get-AzureRmWebAppPublishingProfile -Name $ webappName` -ResourceGroupName $ resourceGroupName `-OutputFile нуль) информацию о соединении # Выписка из публикации профиля $ UserName = $ xml.SelectNodes ( "// publishProfile [@ publishMethod =`" FTP` "] / @ имя пользователя"). значение $ пароль = $ xml.SelectNodes (" // publishProfile [@ publishMethod = ` "FTP`"] / @ userPWD"). значение $ URL = $ XML. SelectNodes ( "// publishProfile [@ publishMethod =`" FTP` "] / @ publishUrl"). Значение # Загрузка файлов рекурсивно Set-Location $ appDirectory $ WebClient = New-Object -TypeName System.Net.WebClient $ webclient.Credentials = New-Object System.Net.NetworkCredential ($ имя пользователя, $ пароль) $ файлы = Get-ChildItem -Path $ appDirectory -Recurse | Where-Object {! ($ _. PsIsContainer)} Еогеасп ($ файл в $ файлов) {$ relativepath = (Resolve-Path -Path $ file.FullName -Relative) .Привернуть ( "\", "") .Надеть ( '\', '/') $ = URI New-Object System.Uri ( "$ URL / $ relativepath") "Загрузка в" + $ uri.AbsoluteUri $ webclient.UploadFile ($ Ури $ file.FullName)} $ webclient.Dispose () значение # Загрузить рекурсивную Set-Location $ appDirectory $ WebClient = New-Object -TypeName System.Net.WebClient $ webclient.Credentials = New-Object System.Net.NetworkCredential ($ имя пользователя, $ пароль) $ файлы = Get-ChildItem - Путь $ appDirectory -Recurse | Where-Object {! ($ _. PsIsContainer)} Еогеасп ($ файл в $ файлов) {$ relativepath = (Resolve-Path -Path $ file.FullName -Relative) .Привернуть ( "\", "") .Надеть ( '\', '/') $ = URI New-Object System.Uri ( "$ URL / $ relativepath") "Загрузка в" + $ uri.AbsoluteUri $ webclient.UploadFile ($ Ури $ file.FullName)} $ webclient.Dispose () значение # Загрузить рекурсивную Set-Location $ appDirectory $ WebClient = New-Object -TypeName System.Net.WebClient $ webclient.Credentials = New-Object System.Net.NetworkCredential ($ имя пользователя, $ пароль) $ файлы = Get-ChildItem - Путь $ appDirectory -Recurse | Where-Object {! ($ _. PsIsContainer)} Еогеасп ($ файл в $ файлов) {$ relativepath = (Resolve-Path -Path $ file.FullName -Relative) .Привернуть ( "\", "") .Надеть ( '\', '/') $ = URI New-Object System.Uri ( "$ URL / $ relativepath") "Загрузка в" + $ uri.AbsoluteUri $ webclient.UploadFile ($ Ури $ file.FullName)} $ webclient.Dispose () $ Пароль) $ файлы = Get-ChildItem -Path $ appDirectory -Recurse | Where-Object {! ($ _. PsIsContainer)} Еогеасп ($ файл в $ файлов) {$ relativepath = (Resolve-Path -Path $ file.FullName -Relative) .Привернуть ( "\", "") .Надеть ( '\', '/') $ = URI New-Object System.Uri ( "$ URL / $ relativepath") "Загрузка в" + $ uri.AbsoluteUri $ webclient.UploadFile ($ Ури $ file.FullName)} $ webclient.Dispose () $ Пароль) $ файлы = Get-ChildItem -Path $ appDirectory -Recurse | Where-Object {! ($ _. PsIsContainer)} Еогеасп ($ файл в $ файлов) {$ relativepath = (Resolve-Path -Path $ file.FullName -Relative) .Привернуть ( "\", "") .Надеть ( '\', '/') $ = URI New-Object System.Uri ( "$ URL / $ relativepath") "Загрузка в" + $ uri.AbsoluteUri $ webclient.UploadFile ($ Ури $ file.FullName)} $ webclient.Dispose ()
Alex
1

голосов
0

ответ
1.8k

Просмотры

Как читать файлы Excel в PowerShell?

Я хотел бы разобрать следующий файл Excel, который отлично открытый в приложении. Я просмотрел в Интернете и много парней сказал, что эти две командные строки делают открытые файлы Excel (пример чтения Excel листа в Powershell). $ Первенствует = New-Object-Com Excel.Application $ термометру = $ excel.workbooks.open ( "C: \ Users \ Администратор \ my_test.xls") Но я получаю следующее исключение: Exception призывающую "Open" с «1 "аргумент (ы):„Старый формат или недопустимый тип библиотеки. (Исключение из HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))“Как выводит значение каждой ячейки только для чтения, если это возможно сохранение строки?
MUY Belgium
1

голосов
0

ответ
168

Просмотры

Показать «Папка-видимые» обменные папки в PowerShell

У меня есть некоторые пользователи, которые имеют «папку видимой» разрешения на некоторые общих почтовые ящики и вложенные папки. Я пытаюсь создать веб-приложение ASP.NET (C #), который использует биржу (2016 г.) Powershell, чтобы получить TreeView из пользователей видимых папок. Дело в том, что сначала я должен знать, на котором почтовые ящики пользователей есть те папки видимого разрешение. В качестве пользователя-администратора можно ввести Get-Mailbox, чтобы увидеть все почтовые ящики. После того, что я могу выполнить Get-MailboxFolderStatistics, чтобы получить все вложенные папки указанного почтового ящика. Но как обычный пользователь, я только получить свой собственный почтовый ящик (с Get-Mailbox). Есть ли шанс, чтобы показать все почтовые ящики + папку, в которых пользователь имеет разрешение папки видимой? -> Я пытаюсь сделать это с помощью Exchange PowerShell с учетными данными пользователей (не администратора учетных данных!). Благодаря Marius
Counterdoc
1

голосов
0

ответ
220

Просмотры

как вы закрыть сеанс Pywinrm?

привет Я использую PyWinRM опрашивать удаленный сервер окна. s = winrm.Session ('10 .10.10.10' , AUTH = ( 'Администратор', 'пароль')) Так как не существует функции s.close () доступны, я беспокоюсь о утечки дескрипторов файлов. Я проверил с помощью Lsof -p | туалет -l и мой граф ФД стабильно, но мои поиски Google показывает, что анзибль имел Fd утечку ранее; анзибль полагается на pywinrm управлять удаленными серверами окна, а также любезно советом, спасибо!
laycat
1

голосов
1

ответ
516

Просмотры

PowerShell скрипт не для аутентификации пользователя при запуске Invoke-Command

Недавно я создал небольшой скрипт, который позволяет мне получить размер диска и свободное пространство 2 серверов в каждой школе сайте, когда я обеспечиваю сценарий с школой 4-значным кодом сайта. Сначала он вытягивает информацию на сайтах из файла .csv, а затем использует эту информацию, чтобы собрать строку для имени хоста DC FQDN, и сервера .10. Затем он запрашивает пароль для моей учетной записи доступа к повышенной используется для получения информации о дисках. Я имею вопрос, где, когда скрипт создает блок сценария, а затем использует Invoke-Command и отправляет блок скрипта на сервера, и предоставляет обратно объект PowerShell с информацией. Ошибка при условии, находится в соответствии с ниже: [{Имя_сервер}] Подключение к удаленному серверу {ServerName} не удался со следующим сообщением об ошибке: WinRM не может обработать запрос. Следующая ошибка с ERRORCODE 0x80090311 произошло при использовании проверки подлинности Kerberos: Там в настоящее время нет серверов входа в систему, доступных для обслуживания запроса входа в систему. Возможные причины: -The имя пользователя или пароль, указанный недействительно. -Kerberos используется, когда не указаны ни один из методов аутентификации и нет имени пользователя. -Kerberos принимает имена пользователей домена, но не локальные имена пользователей. -The Service Principal Name (SPN) для имени удаленного компьютера и порта не существует. -The клиент и удаленные компьютеры находятся в разных доменах и нет доверия между двумя доменами. После проверки указанных выше проблем, попробуйте следующее: -Проверьте средство просмотра событий для событий, связанных с аутентификацией. -Изменить метод проверки подлинности; добавить компьютер назначения к настройке конфигурации WinRM TrustedHosts или использовать HTTPS транспорт. Обратите внимание, что компьютеры в списке TrustedHosts не может пройти проверку подлинности. -Для получения дополнительной информации о конфигурации WinRM, выполните следующую команду: WinRM справки конфигурации. Для получения дополнительной информации см about_Remote_Troubleshooting раздел справки. + CategoryInfo: OpenError: ({} ServerName: String) [], PSRemotingTransportException + FullyQualifiedErrorId: AuthenticationFailed, PSSessionStateBroken Что я пробовал: Переустановка пароль меняющих тип аутентификации для Basic Получение других попробовать то же самое - некоторые имеют один и тот же вопрос , а другие нет Другие пользователи на своих рабочих станциях также имеют один и тот же вопрос, который я снова в образ моей рабочей станции и работал немного, но потом снова остановился, как оказалось, чтобы остановить после того, как устройство, установленное обновление программного обеспечения, так что я нахожусь в середине деинсталляции этих обновлений, однако два из них не позволит мне удалить, я предполагаю, что они вынуждены Установок за Microsoft и должны быть установлены (если выбрана кнопка удаления исчезает) - KB4019472 и KB4049065. Устройство работает под управлением Windows 10 1607 v14393.1944, PowerShell v5.1. Существует односторонний доверие между доменом я нахожусь и ДОМЕНАМИ DC1 и MS10 (.10) в доменах доверяют нам, но мы не доверяем доменам. Счет я использую локальный администратор на устройстве с помощью вложенной группы AD, во всех областях. Я не очень понимание Kerberos, так что любая помощь будет удивительно. Сценарий ниже: Примечание: Я должен был удалить некоторые части, поэтому я заполнил область с тем, что бы там (т.е. {Строка}, где бы только стандартный текст, а {FQDNServerName}, где будет имя сервера FQDN записывается в виде текста, или {Регион}, где я имел бы область написанную как текст}). $ CsvSchoolsLoc = "{FQDNServerName} \ SharedReports $ \ SchoolsExport.csv" $ Schools = Импорт-Csv $ csvSchoolsLoc -Delimiter "немогу" -header LocCode, SchoolName, SchoolAddress, SchoolPhoneNumber, SchoolFaxNumber, SchoolOfficerInCharge, DistrictCode, DistrictNumeric, RegionCode, RegionNumeric , LSD, WANLinkType, RouterName, RouterIP, RouterStatus, OneSchemaGraphUrl, OneSchemaSiteUrl, SCCMSiteID, SiteAdminNetwork, ProxyServerIP, PrimaryDcName, PrimaryDcIP, PrimaryDcOS, PrimaryDcVersion, PrimaryDcPatch, Style #Gets учетные данные пользователей за счет ГБН ZZ - это используется в течение сценария для аутентификация $ имя пользователя = "{Регион} \ zz- $ ENV: USERNAME" $ mycreds = Get-Credential -username $ имя пользователя -Message "Введите пароль для {области} \ zz- $ ENV: USERNAME" Clear-Host Write-Host "Что такое школа 4-значный код сайта?" -ForegroundColor Magenta $ Global: SiteCode = Read-Host Функция Main {Clear-Host $ SchoolName = $ школы | Where-Object {. $ _ LocCode -eq $ SiteCode} | ForEach-Object SchoolName $ Регион = $ школы | Where-Object {. $ _ LocCode -eq $ SiteCode} | ForEach-Object RegionCode Write-Host "Получение сведений для:" -ForegroundColor Gray -NoNewline; Write-Host "$ SchoolName - $ SiteCode - ($ Регион)" -... ForegroundColor желтый $ DC1 = «{Строка} $ ($ Регион) $ ($ SiteCode) 001. $ область {Строка} {Строка} {Строка }»$ MS10 = "{Строка} $ ($ регион) $ ($ SiteCode) 010. $ области. {Строка}. {Строка}. {Строка}" если (Тест-соединение -ComputerName $ DC1 -Count 2 -delay 1 -quiet) {$ = $ DC1Run истинно} еще {$ DC1Run = $}, если ложно (Тест-соединение -ComputerName $ MS10 -Count 2 -delay 1 -quiet ) {$ MS10Run = $ истинно} еще {$ MS10Run = $ ложный} $ ScriptBlock = {$ DiskCTotal = Get-WmiObject -Класс Win32_LogicalDisk -Filter "DeviceID =" C:" -Impersonation 3 | ForEach-Object {. $ _ Размер / 1GB} $ DiskCFree = Get-WmiObject -Класс Win32_LogicalDisk -Filter "DeviceID =" C:" -Impersonation 3 | ForEach-Object {. $ _ Freespace / 1GB} $ DiskZTotal = Get-WmiObject -Класс Win32_LogicalDisk -Filter "DeviceID = 'Z:" -Impersonation 3 | ForEach-Object {. $ _ Размер / 1GB} $ DiskZFree = Get-WmiObject -Класс Win32_LogicalDisk -Filter «DeviceID = 'Z: $ DC1" -Подождите -WindowStyle максимизируется}}}} Write-Host "" Write-Host «Что такое цифра кода сайта следующие школы 4? -или- Нажмите Enter, чтобы повторить вышеуказанный сайт снова»-ForegroundColor Magenta $ записи = Read-Host, если ($ запись -eq "") {# Ничего не делать} еще {$ Global: SiteCode = $ Входа}} $ х = 0 делать {Main} до ($ х -gt 0) EDIT: удаление обновлений программного обеспечения не устранить эту проблему, так что, если это что-то делать с этими 2 обновлений, которые я не могу удалить его, не кажется, программное обеспечение Обновления.
Random206
1

голосов
0

ответ
297

Просмотры

Run MFA powershell script from c#

У меня есть скрипт питания, который выполняется в PowerShell, но тот же код не выполняется из C #. Вот мой код. PowerShellScript psScript = новый PowerShellScript (); //psScript.AddLine("Import-Module msonline "); psScript.AddLine ( "Set-ExecutionPolicy RemoteSigned -Scope CurrentUser"); psScript.AddLine ( "$ ServiceUser = \" "+ this.ServiceUser + "\""); psScript.AddLine ( "$ ServicePassword = ConvertTo-SecureString -AsPlainText \" "+ this.ServicePassword + "\" -Force"); psScript.AddLine ( "$ LiveCred = New-Object System.Management.Automation.PSCredential -ArgumentList $ ServiceUser, $ ServicePassword"); psScript.AddLine ( "Connect-MsolService -Credential $ LiveCred"); psScript. AddLine ( "$ UPN = \" "+ имя пользователя + "\""); psScript.AddLine ( "$ AUTH = New-Object -TypeName Microsoft.Online.Administration.StrongAuthenticationRequirement"); psScript.AddLine ( "$ auth.RelyingParty = '*'"); psScript.AddLine ( "$ auth.State = 'Насильственные'"); psScript.AddLine ( "$ auth.RememberDevicesNotIssuedBefore = (Get-Date)"); // psScript.AddLine ( "Set-MsolUser -UserPrincipalName $ UPN -StrongAuthenticationRequirements $ Auth"); psScript.AddLine ( "$ mfaoff = @ ()"); psScript.AddLine ( "Set-MsolUser -UserPrincipalName $ UPN -StrongAuthenticationRequirements $ mfaoff"); Console.WriteLine ( "SCRIPT:"); ЕЫпе (psScript.GetScript ()); pshell.AddScript (psScript.GetScript ()); pshell.AddCommand ( "Out-String"); PowerShellResponse ответ = новый PowerShellResponse (); response.InvokeResponse (pshell); msox.ResponseList.AddRange (response.PropertyList); msox.Success = (response.ErrorList.Count == 0); Я получаю эту ошибку. 1. Термин «Connect-MsolService» не распознается как имя командлета, функции, файла сценария или исполняемой программой. Проверьте правильность написания имени, или если путь был включен, убедитесь, что правильный путь и повторите попытку. Не удается найти тип 2. [Microsoft.Online.Administration.StrongAuthenticationRequirement]: убедитесь, что загружена сборка, содержащая этот тип. AddCommand ( "Out-String"); PowerShellResponse ответ = новый PowerShellResponse (); response.InvokeResponse (pshell); msox.ResponseList.AddRange (response.PropertyList); msox.Success = (response.ErrorList.Count == 0); Я получаю эту ошибку. 1. Термин «Connect-MsolService» не распознается как имя командлета, функции, файла сценария или исполняемой программой. Проверьте правильность написания имени, или если путь был включен, убедитесь, что правильный путь и повторите попытку. Не удается найти тип 2. [Microsoft.Online.Administration.StrongAuthenticationRequirement]: убедитесь, что загружена сборка, содержащая этот тип. AddCommand ( "Out-String"); PowerShellResponse ответ = новый PowerShellResponse (); response.InvokeResponse (pshell); msox.ResponseList.AddRange (response.PropertyList); msox.Success = (response.ErrorList.Count == 0); Я получаю эту ошибку. 1. Термин «Connect-MsolService» не распознается как имя командлета, функции, файла сценария или исполняемой программой. Проверьте правильность написания имени, или если путь был включен, убедитесь, что правильный путь и повторите попытку. Не удается найти тип 2. [Microsoft.Online.Administration.StrongAuthenticationRequirement]: убедитесь, что загружена сборка, содержащая этот тип. ResponseList.AddRange (response.PropertyList); msox.Success = (response.ErrorList.Count == 0); Я получаю эту ошибку. 1. Термин «Connect-MsolService» не распознается как имя командлета, функции, файла сценария или исполняемой программой. Проверьте правильность написания имени, или если путь был включен, убедитесь, что правильный путь и повторите попытку. Не удается найти тип 2. [Microsoft.Online.Administration.StrongAuthenticationRequirement]: убедитесь, что загружена сборка, содержащая этот тип. ResponseList.AddRange (response.PropertyList); msox.Success = (response.ErrorList.Count == 0); Я получаю эту ошибку. 1. Термин «Connect-MsolService» не распознается как имя командлета, функции, файла сценария или исполняемой программой. Проверьте правильность написания имени, или если путь был включен, убедитесь, что правильный путь и повторите попытку. Не удается найти тип 2. [Microsoft.Online.Administration.StrongAuthenticationRequirement]: убедитесь, что загружена сборка, содержащая этот тип. убедитесь, что правильный путь и повторите попытку. Не удается найти тип 2. [Microsoft.Online.Administration.StrongAuthenticationRequirement]: убедитесь, что загружена сборка, содержащая этот тип. убедитесь, что правильный путь и повторите попытку. Не удается найти тип 2. [Microsoft.Online.Administration.StrongAuthenticationRequirement]: убедитесь, что загружена сборка, содержащая этот тип.
user1167870
0

голосов
1

ответ
11

Просмотры

Как я могу ввести команды в сервер Minecraft, который был запущен удаленно с помощью PowerShell Invoke-команду на локальном компьютере?

Я бегу сервер Minecraft от моего ноутбука, так как он имеет i7 и больше оперативной памяти, чем мой рабочий стол. Я хочу, чтобы иметь возможность видеть в командной строке сервера на моем рабочем столе и быть в состоянии вводить команды, а сервер на самом деле работает на моем ноутбуке. Я был в состоянии увидеть командную строку, установив для удаленного доступа и выполнив команду Invoke-Command -ComputerName 10.0.0.53 -Credential Администратор -scriptblock {& «RUNSERVER.bat»} Это сделало так, я могу увидеть, что сервер выводит в окно PowerShell на моем рабочем столе, и сервер работает на ноутбуке, как это должно быть, но я до сих пор не может вводить любые команды. Я довольно неопытный с PowerShell, так что я не слишком уверен, куда идти отсюда. Кто там знает, как я могу изменить это, так что я могу ввести команды из окна PowerShell на моем рабочем столе?
Idunnowhy
1

голосов
0

ответ
51

Просмотры

Есть ли какие-либо ограничения для ответа Python WinRM PowerShell?

Я делаю Get-DhcpServer4Leases на нашем главном сервере DHCP. Ответ довольно огромный и я делаю convert_to_json на стороне сервера. Но для меня это выглядит как ответ разрезают посередине, и я получаю только только первые символы 3M. Есть ли какое-либо ограничение ответа на Python Windows, или в середине? Могу ли я изменить предел, чтобы соответствовать больше нашим потребностям?
stackelk
1

голосов
1

ответ
249

Просмотры

Невозможно запустить .vbs из Windows PowerShell в Дженкинс работы

Я пытаюсь использовать сборки -> окно вариант питания оболочки в Дженкинс работе и вызов следующего кода: CD C: \ Users \ имя пользователя \ Desktop \ Cscript create.vbs Моего create.vbs имеет следующий код: Option Explicit Dim xlApp , xlBook Set xlApp = CreateObject ( "Excel.Application") «Удалить следующую строку, чтобы открыть Excel в фоновом режиме xlApp.Visible = верно Set xlBook = xlApp.Workbooks.Open (" C: \ Users \ имя пользователя \ Desktop \ excelname. XLSM», 0, True) xlBook.Close xlApp.Quit Set xlBook = Nothing Set xlApp = Nothing WScript.Echo "Закончено". WScript.Quit Но я получаю следующее сообщение об ошибке в консоли неудачной работы в Дженкинс: C: \ Users \ имя пользователя \ Desktop \ create.vbs (8, 1) Microsoft Excel: Microsoft Excel не может получить доступ к файлу «C: \ Users \ имя пользователя \ Desktop \ excelname.xlsm». Есть несколько возможных причин: Имя файла или путь не существует. Файл используется другой программой. Учебное пособие вы пытаетесь сохранить имеет такое же имя, как и в настоящее время открытой книге. Мои create.v и Excel листа находятся на то же место, ни один из книги Excel не открываются, и я в состоянии успешно работать CSCRIPT create.vbs через Windows PowerShell напрямую.
salsinga
1

голосов
1

ответ
58

Просмотры

Преобразование XML в CSV для AD Импорт (Использование Wildcard)

Я пытаюсь преобразовать XML из API вызова в формате CSV, который может быть использован для создания пользователей AD. До сих пор он в основном работает, на стоимость мобильного телефона, за исключением. Вот что XML выглядит. SomeName SomeFirstName SomeNickName SomeMiddleName SomeLastName Женский 1901-01-01 [email protected] 555-555-5555 Вот мой Powershell [XML] $ XML = Get-Content 'C: \ page1.xml' $ xml.SelectNodes ( '// facstaff ') | Select-Object @ {п = 'имя'; е = {$ _ first_name + "" + $ _ last_name}..}, @ {П = 'SAM';. Е. = {$ _ First_name + $ _ last_name} }, {@ п = 'мобильный'; е = {$ _ mobile_phone.}}, {@ п = 'пароль'; е = { "TestPassword1"}} | Export-CSV 'C: \ page1.csv' -NoType -Delimiter ';' Import-Module ActiveDirectory $ Пользователи = Импорт-Csv -Delimiter ";" -Path «C: \ стр.1. mobile_phone *}}, но это не сработало. Любой совет? Спасибо!
Alan Jeppson
1

голосов
0

ответ
1.3k

Просмотры

Создание локальных пользователей и добавить в группу администраторов на удаленных серверах Windows

Я еще новичок в использовании PowerShell, и я действительно вижу, как это полезно в выполнении некоторых из моих задач системного администратора. У меня есть серверы из DMZ и удаленных сайтов (несвязанные). Пытаясь выяснить, как создать локальные учетные записи (получение списка из CSV или текстовый файл) и добавить их в местную админ группу из списка серверов. У меня есть нашел PS скрипт с постом ниже (спасибо Кирилла Пашков), который является именно то, что я ищу, но просто интересно, если его можно получить список пользователей и серверов из файла, как CSV или TXT. Должно ли оно быть, как это? $ Компьютер = Get-Content "C: \ serverlist.txt" вместо чтения хост? Оригинальный сценарий $ Компьютер = Read-Host "Имя компьютера:" $ UserName = Read-Host "Имя пользователя:" $ Password = Read-Host "Пароль" -AsSecureString $ AdminGroup = [ADSI] "WinNT: // $ Компьютеры / Администраторы ,
user9320892
1

голосов
0

ответ
306

Просмотры

PowerShell - ошибка преобразования WebRequest результатов в XML

Я хочу, чтобы обрабатывать XML-файл что-то вроде этого: 3463047 2018-02-08T17: 29: 09.3041792 2E47720A-58BC-4AF0-9159-5AD6A40C9792 38d9de5a-dd41-44ca-9ef3-0e404fef4bce A13322D0-CB7F-455B-A7C6-C0CDC2AA4471 AsiiuTimesign Принято в 2018 году -02-08T17: 29: 09,3041792 Документ успешно принят системой на обработку. Что я получаю в результате Invoke-WebRequest: $ URL = "HTTP: // сервер / очереди" $ веб-страница = ([XML] ((Invoke-WebRequest -TimeoutSec 60 $ URL) .content)) Что я получаю это ошибка: не удается преобразовать значение «» набрать «System.Xml.XmlDocument». Ошибка: «Указанный узел не может быть включен в качестве действительного ребенка этого узла, поскольку указанный узел является неправильным типом.» В строке: 5 символов: 1 + $ = Веб-страница ([XML] ((Invoke-WebRequest -TimeoutSec 60 $ URL) .content)) + ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidArgument: (:) [], RuntimeException + FullyQualifiedErrorId: InvalidCastToXmlDocument можно ли предположить, почему я не могу преобразовать результаты Invoke-WebRequest к типу XML и как с этим бороться? EDIT Ok, я попытался сохранения содержимого запроса в файл и просматривать его в редакторе HEX, теперь я вижу, что файл начинается с Ф.Ф. fé Ф.Ф. фе. Я также выступал еще один запрос на другой URL, содержание которых РЕЗУЛЬТАТ было литье нормально XML и оказывается, что это был только след фе на старте. Я удалил первый и далее фе из файла, читать его в подлиннике и отливает в XML успешно. Теперь я вижу, что содержимое ответа имеет BOM сам по себе, но когда я бегу ($ ответа). Содержание Я получаю строку с двумя спецификациями. Почему и как я могу получить правильную строку с помощью только одной спецификации?
Viktor Ozerov
1

голосов
1

ответ
169

Просмотры

Force TFS использовать CredSSP при доступе к сетевым ресурсам

Я использую TFS 2017 Update 2 обработки выпуска. У меня есть процесс Deploy функционирования, который работает в домене (она успешно работает на 10 различных сред развертывания) ... и теперь мне нужно развернуть в другую среду, которая живет в другом домене A / D. К сожалению, доверие домена один путь между доменами - и домен назначения ( «Production») не доверяет домену Я устанавливаю из ( «Dev») Проблема, которую я вижу, кажется, пресловутый «двойной хмель» учетные проблемы. Моя TFS приложение уровня может увидеть (и триггер активности на) сервер релиз работает TFS vNext Agent 2.117.2 Futher, я могу выполнить встроенный PowerShell и локально размещенных сценариев PowerShell на сервере выпуска просто отлично. Howerver, как только я пытаюсь получить доступ скрипт PowerShell не на сервере выпуска (будь то в области производства с сервером выпуска, или в домене Dev) я получаю сообщение об ошибке: 2018-02-13T19: 03: ## 32.6611149Z [ошибка]. : Проверка AuthorizationManager не удалось. В строке: 1 знак: 3 +. «\\ ункции \ путь \ к \ доля \ TFSScripts \ Испустите-Variables2. ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: SecurityError: (:) [], PSSecurityException + FullyQualifiedErrorId: UnauthorizedAccess счет запуска службы выпуска TFS был подтвержден, чтобы иметь доступ к файлу сценария при запуске с рабочего стола сервера выпуска, так что доступ не должно быть проблемой. Дальнейшее тестирование вопроса определил, что если мы вручную создать PSSession с помощью -Authorization CredSSP и передать учетные данные объекта мы можем успешно получить доступ к ресурсам от сервера. Тем не менее, я не вижу никакой возможности настроить TFS использовать CredSSP в качестве механизма авторизации. Серверы вовлеченные W2K8R2 - поэтому мы не можем использовать ограниченные функциональные возможности делегирования, что W2K12 введена. Мы также пытались SPNs с подобными неудачными результатами. Kerberos был вынужден использовать TCP, установив максимальный размер пакета до 0 (таким образом, также предотвращая фрагментированных UDP-пакеты и связанные с ними проблемы). Наш максимальный размер пакета Kerberos установлен в 48000. В конечном конечное состояние, сервер TFS App, и все артефакты TFS и освободить скрипты будут сидеть в «Dev» домен на одной стороне брандмауэра ... и выпуск производства сервер, и множество серверов, чтобы освободить для будет существовать в «производстве» домен, на другой стороне CredSSP брандмауэра, кажется, единственным способом, чтобы сделать эту работу - но я не вижу никакой возможности для TFS, чтобы настроить для него. Это не может быть единственной проблемой. Может кто-то обеспечить некоторое представление о том, как обойти это?
Scott Brown
1

голосов
1

ответ
176

Просмотры

System.Security.Principal.IdentityNotMappedException Ловля все ошибки

У меня возникли проблемы с / поймать блок Ьгу где подвох блок для System.Security.Principal.IdentityNotMappedException догоняет все ошибки независимо, если они типа System.Security.Principal.IdentityNotMappedException или нет. Проблема заключается в том, когда я переместить блок Try / поймать вне сценария в его собственную для тестирования, попробовать / поймать работает, как предполагалось. Попытка / задвижка находится внутри для / каждого, таким образом они только что я могу думать о том, что петля как-то подножка блока Try / поймать? Одна ошибка она любит ловли System.Management.Automation.RuntimeException. Ниже тестовый скрипт я сделал, что работает, как задумано, но помещены в Еогеасп не: Я на самом деле получил ошибку манифестировать с этим: Еогеасп ($ х в Get-ChildItem) {Get-Acl «C: \ подделка» попробуйте {$ Acl = Get-Acl Set-Acl LiteralPath " C: \ Temp "$ Acl -ErrorAction Stop Write-Host "Правило доступа Добавлено" -ForegroundColor Cyan} поймать [System.UnauthorizedAccessException] {Write-Host" Недостаточный Priviliege. Владелец: $ ($ Acl.Owner) ($ _) "-ForegroundColor Красный} поймать [System.Security.Principal.IdentityNotMappedException] {Write-Host" Invalid Prinicpal! ($ _) "-ForegroundColor Red $ = прервать чтение хост -Prompt" Прервать? (Y)», если ($ прервать -ieq "Y") {Выход}} {задвижка Write-Host "ALL: $ _" -ForegroundColor Red}}
Alex
1

голосов
0

ответ
125

Просмотры

How to suppress verbose error message in powershell?

Пожалуйста, соблюдайте: А вот расшифровка: PS C: \ Dayforce \ 854 \ DB \ SQL \ ClientDB> $ работа = Start-Job {C: \ Dayforce \ 854 \ DB \ инструменты \ dbupgrade \ DbUpgrade.exe -d C : \ Dayforce \ 854 \ DB \ SQL \ ClientDB -db 854_dfadminportal} PS C: \ Dayforce \ 854 \ DB \ SQL \ ClientDB> C: \ Dayforce \ 854 \ DB \ инструменты \ dbupgrade \ DbUpgrade.exe -d C: \ Dayforce \ 854 \ DB \ SQL \ ClientDB -db 854_dfadminportal Использование таймаут 30 минут на шаг. Анализ целевое DB состояние ... Синтаксическое обновление шагов ... Найдено 1 нового шаг (ы) обновления. Обновление базы данных ... Отбрасывание 2 во время выполнения элементов кода ... Не удалось применить DFVersion 20000 20000.sql: Деление на ноль встретившейся ошибке. (8134, 1) длительность Всего Шаг SQL = 00: 00: 00,000 Общая продолжительность Шаг Замкнутый = 00: 00: 00,035, среднее = 00: 00: 00,035 Общая продолжительность = 00: 00: 00,357 PS C: \ Dayforce \ 854 \ дб \ SQL \ ClientDB> Receive-Job $ работу. Идентификатор Используя тайм-аут 30 минут за шагом. Анализ целевое DB состояние ... Синтаксическое обновление шагов ... Найдено 1 нового шаг (ы) обновления. Обновление базы данных ... Отбрасывание 2 во время выполнения элементов кода ... Не удалось применить DFVersion 20000 + CategoryInfo: NotSpecified: (Не удалось применить DFVersion 20000: String) [], RemoteException + FullyQualifiedErrorId: NativeCommandError + PsComputerName: локальный 20000.sql: Divide на ноль произошла ошибка. (8134, 1) длительность Всего Шаг SQL = 00: 00: 00,000 Общая продолжительность Шаг Замкнутый = 00: 00: 00,031, среднее = 00: 00: 00,031 Общая продолжительность = 00: 00: 00,339 PS C: \ Dayforce \ 854 \ дб \ SQL \ ClientDB> Все, что я делаю, работает один и тот же исполняемый файл. После того, как непосредственно, один раз внутри фонового задания. При получении вывода фонового задания, дополнительная информация выводится ошибка.
mark
1

голосов
1

ответ
104

Просмотры

Преобразовать объект типа PSObject в HtmlWebResponseObject

Я пытаюсь обойти Invoke-WebRequest склонность к висеть в памяти и убить весь мой сценарий. До сих пор я написал блок сценария с помощью Get-Job, который вызывает это из Еогеаспа: запуск задания -scriptblock {вызова-WebRequest $ с ​​помощью: varSiteVariable} -name jobTitle | из-нуля я жду 10 секунд, а затем использовать приемо-работу, чтобы захватить выход из последнего места работы в переменный, которую я тогда хочу разобрать, как PowerShell HtmlWebResponseObject таким же образом, я бы, если бы я использовал взывать-WebRequest напрямую , Логика в том, что я буду затем бросить выполнение сценария и вернуться к исходной точке, если нет ничего разобрать, так как Invoke-WebRequest явно снова упал. Тем не менее, когда я вытащить данные из jobTitle в переменную, она всегда имеет тип PSObject, то есть он не имеет решающее метод ParsedHtml который я» м, используя для выполнения всех дальнейшего разбора HTML-кода; этот метод, как представляется, относится конкретно к объектам типа HtmlWebResponseObject. Там не кажется, способ, который я нашел, чтобы заставить отливку объекта в этот тип, ни какого-либо образом преобразовать друг в друг по типу. Я не могу просто определить переменную внутри задания, а затем обратиться к нему за пределами работы, так как две команды происходят в разных контекстах и ​​не разделяют никакого рабочего пространства. Я не могу записать данные в файл, как я не могу импортировать его обратно в правом типа данных для обработки мне нужно выполнить. Кто-нибудь знает, как я могу конвертировать мои данные PSObject в данные HtmlWebResponseObject? Там не кажется, способ, который я нашел, чтобы заставить отливку объекта в этот тип, ни какого-либо образом преобразовать друг в друг по типу. Я не могу просто определить переменную внутри задания, а затем обратиться к нему за пределами работы, так как две команды происходят в разных контекстах и ​​не разделяют никакого рабочего пространства. Я не могу записать данные в файл, как я не могу импортировать его обратно в правом типа данных для обработки мне нужно выполнить. Кто-нибудь знает, как я могу конвертировать мои данные PSObject в данные HtmlWebResponseObject? Там не кажется, способ, который я нашел, чтобы заставить отливку объекта в этот тип, ни какого-либо образом преобразовать друг в друг по типу. Я не могу просто определить переменную внутри задания, а затем обратиться к нему за пределами работы, так как две команды происходят в разных контекстах и ​​не разделяют никакого рабочего пространства. Я не могу записать данные в файл, как я не могу импортировать его обратно в правом типа данных для обработки мне нужно выполнить. Кто-нибудь знает, как я могу конвертировать мои данные PSObject в данные HtmlWebResponseObject? Я не могу записать данные в файл, как я не могу импортировать его обратно в правом типа данных для обработки мне нужно выполнить. Кто-нибудь знает, как я могу конвертировать мои данные PSObject в данные HtmlWebResponseObject? Я не могу записать данные в файл, как я не могу импортировать его обратно в правом типа данных для обработки мне нужно выполнить. Кто-нибудь знает, как я могу конвертировать мои данные PSObject в данные HtmlWebResponseObject?
seagull

Просмотр дополнительных вопросов