Результаты поиска
Какие ваши любимые Powershell Cmdlets?
Я только что нашел /n программного обеспечения бесплатно Powershell NetCmdlets, и после игры с ними я люблю функциональность, которую они приносят в командной строке. Поэтому возникает вопрос, Какие ваши любимые Cmdlets, и как вы их используете?
Чтение структуры данных C/C++ в C# из байтового массива
Как лучше всего заполнить структуру C# из массива byte[], где данные были получены из структуры C/C++? Структура C будет выглядеть примерно так (мой C очень ржавый):
typedef OldStuff {
CHAR Name[8];
UInt32 User;
CHAR Location[8];
UInt32 TimeStamp;
UInt32 Sequence;
CHAR Tracking[16];
CHAR Filler[12];
}
И наполнил бы что-то вроде этого:
[StructLayout(LayoutKind.Explicit, Size = 56, Pack = 1)]
public struct NewStuff
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]
[FieldOffset(0)]
public string Name;
[MarshalAs(UnmanagedType.U4)]
[FieldOffset(8)]
public uint User;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]
[FieldOffset(12)]
public string Location;
[MarshalAs(UnmanagedType.U4)]
[FieldOffset(20)]
public uint TimeStamp;
[MarshalAs(UnmanagedType.U4)]
[FieldOffset(24)]
public uint Sequence;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 16)]
[FieldOffset(28)]
public string Tracking;
}
Что является лучшим способом, чтобы скопировать OldStuff до NewStuff , OldStuff , если передается массив byte[]?
В настоящее время я делаю что-то вроде следующего, но это кажется немного неуклюжим.
GCHandle handle;
NewStuff MyStuff;
int BufferSize = Marshal.SizeOf(typeof(NewStuff));
byte[] buff = new byte[BufferSize];
Array.Copy(SomeByteArray, 0, buff, 0, BufferSize);
handle = GCHandle.Alloc(buff, GCHandleType.Pinned);
MyStuff = (NewStuff)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(NewStuff));
handle.Free();
Есть ли лучший способ сделать это?
Может ли использование класса BinaryReader обеспечить какой-либо прирост производительности по сравнению с закреплением памяти и использованием Marshal.PtrStructure ?
Memcached предел куска
Почему существует жестко заданный предел куска (.5 Мег после сжатия) в memcached ? Кто-нибудь перекомпилировал их, чтобы поднять его? Я знаю, что не должен посылать большие куски, как это вокруг, но эти дополнительные тяжелые куски случаются для меня время от времени и сеют хаос.
Можно ли скопировать файлы в сетевое место из скрипта или командной строки?
Можно ли в Windows XP скопировать файлы в сетевое место из командной строки, пакетного файла или, еще лучше, скрипта PowerShell?
То, что привело меня на этот путь исследований, было попыткой опубликовать файлы в библиотеке документов WSS 3.0 с компьютера пользователя. Я не могу сопоставить диск с соответствующей библиотекой, потому что сайт WSS доступен только для аутентификации через NTLM на порту, отличном от 80 или 443. Я предполагаю, что я мог бы поочередно использовать веб-службы WSS для выталкивания файлов, но сейчас мне действительно интересно получить ответ на этот вопрос.
Как вы олицетворяете пользователя Active Directory в Powershell?
Я пытаюсь запустить powershell команды через веб-интерфейс (ASP.NET/C#) для создания почтовых ящиков/etc на Exchange 2007. Когда я запускаю страницу с помощью Visual Studio (Cassini), страница загружается правильно. Однако, когда я запускаю его на IIS (v5.1), я получаю ошибку "unknown user name or bad password". Самая большая проблема, которую я заметил, заключалась в том, что Powershell был зарегистрирован как ASPNET вместо моей учетной записи Active Directory. Как заставить мой сеанс Powershell пройти проверку подлинности с другой учетной записью Active Directory?
В принципе, сценарий, который у меня есть до сих пор, выглядит примерно так:
RunspaceConfiguration rc = RunspaceConfiguration.Create();
PSSnapInException snapEx = null;
rc.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.Admin", out snapEx);
Runspace runspace = RunspaceFactory.CreateRunspace(rc);
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
using (pipeline)
{
pipeline.Commands.AddScript("Get-Mailbox -identity 'user.name'");
pipeline.Commands.Add("Out-String");
Collection<PSObject> results = pipeline.Invoke();
if (pipeline.Error != null && pipeline.Error.Count > 0)
{
foreach (object item in pipeline.Error.ReadToEnd())
resultString += "Error: " + item.ToString() + "\n";
}
runspace.Close();
foreach (PSObject obj in results)
resultString += obj.ToString();
}
return resultString;
PowerShell в Invoke-Expression отсутствует параметр
Я думал, что у меня есть последний CTP из PowerShell 2, но когда я пытаюсь выполнить команду:
invoke-expression –computername Server01 –command 'get-process PowerShell'
Я получаю сообщение об ошибке :
Не удается найти параметр, соответствующий имени параметра 'computername'.
Итак, вопрос: Как я могу сказать, какую версию PowerShell я установил? И какова последняя версия?
цитирование System.DirectoryServices.ResultPropertyCollection
Я что-то упускаю здесь:
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher.Filter = ("(objectclass=computer)")
$computers = $objSearcher.findall()
Итак, вопрос в том, почему два следующих вывода отличаются?
$computers | %{
"Server name in quotes $_.properties.name"
"Server name not in quotes " + $_.properties.name
}
PS> $computers[0] | %{"$_.properties.name"; $_.properties.name}
System.DirectoryServices.SearchResult.properties.name
GORILLA
Как заставить Powershell запустить пакетный файл, а затем оставаться открытым?
Например; со старой командной строкой это будет:
cmd.exe /k mybatchfile.bat
PowerShell FINDSTR эквивалентный?
Что такое эквивалент DOS FINDSTR для PowerShell ? Мне нужно найти кучу файлов журнала для "ERROR".
Как сделать замену строки в функции PowerShell?
Как преобразовать входные параметры функции в правильный тип?
Я хочу вернуть строку, которая имеет часть URL, переданную в нее, удаленную.
Это работает, но он использует жестко закодированную строку:
function CleanUrl($input)
{
$x = "http://google.com".Replace("http://", "")
return $x
}
$SiteName = CleanUrl($HostHeader)
echo $SiteName
Это не сработает:
function CleanUrl($input)
{
$x = $input.Replace("http://", "")
return $x
}
Method invocation failed because [System.Array+SZArrayEnumerator] doesn't contain a method named 'Replace'.
At M:\PowerShell\test.ps1:13 char:21
+ $x = $input.Replace( <<<< "http://", "")
Каков наилучший способ аутентификации через WCF?
Каков наилучший способ реализации аутентификации через WCF?
Я бы предпочел не использовать WS-*, поскольку он должен быть независимым от транспорта.
Должен ли я "свернуть свой собственный"? Есть ли какие-либо рекомендации для этого (articles/blog сообщений)?
Или есть какой-то способ (и должен ли я) использовать встроенные поставщики членства и профилей ASP.NET на стороне сервера?
PowerShell App.Config
Кто-нибудь придумал, как заставить PowerShell использовать app.config файлов? У меня есть пара .NET DLL, которые я хотел бы использовать в одном из своих сценариев, но они ожидают, что их собственные разделы конфигурации будут присутствовать в app.config / web.config .
PowerShell App.Config
Кто-нибудь придумал, как заставить PowerShell использовать app.config файлов? У меня есть пара .NET DLL, которые я хотел бы использовать в одном из своих сценариев, но они ожидают, что их собственные разделы конфигурации будут присутствовать в app.config / web.config .
Как сравнить два массива объектов DataRow в PowerShell?
У меня есть два массива объектов System.Data.DataRow , которые я хочу сравнить.
Строки имеют два столбца A и B. столбец A является ключом, и я хочу узнать, какие строки были изменены в столбце B, а какие строки были добавлены или удалены.
Как это сделать в PowerShell?
Выполнять ярлыки, как программы
Пример: у вас есть ярлык от s до SomeProgram в текущем каталоге.
В поле cmd.exe вы можете ввести s , и он запустит программу.
В PowerShell, набрав s дает:
The term 's' is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again.
Если вы наберете s.lnk или SomeProgram, программа будет работать просто отлично.
Как я могу настроить PowerShell для выполнения ярлыков точно так же, как программы?
Как передать несколько строковых параметров скрипту PowerShell?
Я пытаюсь сделать некоторую строку concatenation/formatting,, но она помещает все параметры в первый заполнитель.
Код
function CreateAppPoolScript([string]$AppPoolName, [string]$AppPoolUser, [string]$AppPoolPass)
{
# Command to create an IIS application pool
$AppPoolScript = "cscript adsutil.vbs CREATE ""w3svc/AppPools/$AppPoolName"" IIsApplicationPool`n"
$AppPoolScript += "cscript adsutil.vbs SET ""w3svc/AppPools/$AppPoolName/WamUserName"" ""$AppPoolUser""`n"
$AppPoolScript += "cscript adsutil.vbs SET ""w3svc/AppPools/$AppPoolName/WamUserPass"" ""$AppPoolPass""`n"
$AppPoolScript += "cscript adsutil.vbs SET ""w3svc/AppPools/$AppPoolName/AppPoolIdentityType"" 3"
return $AppPoolScript
}
$s = CreateAppPoolScript("name", "user", "pass")
write-host $s
Выход
cscript adsutil.vbs CREATE "w3svc/AppPools/name user pass" IIsApplicationPool
cscript adsutil.vbs SET "w3svc/AppPools/name user pass/WamUserName" ""
cscript adsutil.vbs SET "w3svc/AppPools/name user pass/WamUserPass" ""
cscript adsutil.vbs SET "w3svc/AppPools/name user pass/AppPoolIdentityType" 3
Доступ к компонентам .NET из Powershell
Я хочу использовать Powershell для написания некоторых утилит, используя наши собственные компоненты .NET для выполнения фактической работы. Это вместо написания небольшого консольного приложения, чтобы связать вызовы вместе. Мой вопрос заключается в том, где я мог бы найти хороший источник документации или учебных материалов, чтобы помочь мне быстро отслеживать это?
Как вы используете ssh в скрипте shell?
Когда я пытаюсь использовать команду ssh в сценарии shell, команда просто сидит там. У вас есть пример того, как использовать ssh в скрипте shell?
Настройка скрипта PowerShell для автоматического выполнения
У меня есть несколько строк кода PowerShell, которые я хотел бы использовать в качестве автоматического сценария. Способ, которым я хотел бы, чтобы он мог работать, - это иметь возможность вызвать его, используя один из следующих вариантов:
- Одна командная строка, которая открывает PowerShell, выполняет скрипт и закрывает PowerShell (это будет использоваться для глобальной процедуры сборки)
- Файл, который я могу дважды щелкнуть, чтобы выполнить описанное выше (я бы использовал этот метод при ручном тестировании компонентов моего процесса сборки)
Я просматривал документацию PowerShell в интернете, и хотя я могу найти много сценариев, я не смог найти инструкции о том, как сделать то, что мне нужно. Спасибо за помощь.
Bash. Скрипт автоматического кодирования видео
Господа, требуется помощь в написании скрипта. В связи в началом нового сериального сезона в голову пришла мысль что хватит уже «руками» каждый файл кодировать, надо этот процесс как то автоматизировать. задача: есть папка с видео, из неё необходимо выбирать файлы, в названиях которых содержится — LostFilm.TV, и если при этом нет такого же файла с расширением mp4 (уже закодированный) — запихивать в скрипт и кодировать. Кодирую видео при помощи ffmpeg: ffmpeg -i House.M.D.s07e01.rus.LostFilm.TV.avi -acodec aac -strict experimental -ab 128kb -vcodec mpeg4 -b 1000kb -s 320x180 -r 23.98 House.M.D.s07e01.rus.LostFilm.TV.mp4
Проблема с bash-скриптом
Имеется bash-скрипт, который должен запускаться по крону. Процесс получает pid из файла (pid=`<pid/order_$name`). Крон как раз ругается на то, что не может получить pid. Из строки скрипт запускается и отрабатывает отлично.
Если же в скрипте '<' заменить на /bin/cat, то и кроном он начинает запускаться хорошо. В кронтабе SHELL=/bin/bash
Уже всю голову себе поломал. Нужна помощь. Заранее спасибо.
Вызов скрипта powershell с аргументом
Есть скрипт, написанный на powershell. Для чистоты эксперимента допустим он содержит лишь одну строку:
exit 0
Создаем раздел в реестре HKEY_CURRENT_USER\Software\Classes\*\shell\mycheck
Видим что в контекстном меню файлового менеджера появился пункт mycheck
Создаем еще один раздел в реестре HKEY_CURRENT_USER\Software\Classes\*\shell\checksum\command
В его значение по-умолчанию вписываем
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -command "& 'C:\Users\myuser\Documents\mycheck.ps1' '%1' "
Соответственно замените имя пользователя на свое.
Это позволяет передать скрипту имя файла. На любом файле все работает кроме *.exe!
Если вызвать скрипт на исполнение и передать ему имя exe-файла (не из консоли, а именно из контекстного меню), то передаваемая как аргумент программа запускается на исполнение.
Предполагаю, что решается неким экранированием…
У кого есть решение проблемы?
P.S. ОС Windows 7
Как zsh bindkey?
Подскажите пожалуйста, как забиндить в zsh:
1. Передвижение вперед-назад до спецсимвола или пробела. Например по www.yandex.ru будет не весь линк сразу пробегать, а частями.
2. Удаление вперед назад до спецсимвола или пробела. Также, как и первое, но удаление.
Сразу говорю:
backword-delete-word && forward-delete-word && forward-word && backward-word — не то, т.к. переходы совершаются от пробела до пробела.
Как бороться с ошибкой: couldn't commit memory for cygwin heap?
Привет!
есть код:
<font color="black">awk <font color="#A31515">'<br/>
BEGIN {<br/>
split("\b\b\b\b\b. . . . . \b- \b\b- \b\b- \b\b- \b\b- \b= = = = =", st, " ")<br/>
i=0<br/>
}<br/>
/^[0-9]/ { <br/>
sub(/:.*/, "");<br/>
d=$0;<br/>
next;<br/>
} <br/>
/^&/ {<br/>
sub(/&/, "");<br/>
f=$0<br/>
substr($0, 2, length($0) - 1);<br/>
next;<br/>
}<br/>
/^+/ { a="A"; }<br/>
/^-/ { a="D"; } <br/>
/^[\+-]/ { <br/>
fflush("")<br/>
sub(/[\+-]/, "") <br/>
"echo \"" $0 "\" | md5sum | cut -f1 -d \" \" | sed -e \"s@[32|16]@/sd@g\"" | getline str; close("")<br/>
print ""<br/>
system("echo -ne \"" st[i++] "\" >&2")<br/>
if (i > 16) i=0<br/>
} <br/>
' $gitdiff | \<br/>
sed -e <font color="#A31515">'s/\(filename="[^"]"\)/\1/'</font> <br/>
</font><br/>
<font color="gray">* This source code was highlighted with <a href="http://virtser.net/blog/post/source-code-highlighter.aspx"><font color="gray">Source Code Highlighter</font></a>.</font></font>
есть файл из которого берутся данные
при выполнение вылетает ошибка
C:\Program Files\Git\bin\sh.exe: *** couldn't commit memory for cygwin heap, Win32 error 487
C:\Program Files\Git\bin\sh.exe: *** couldn't commit memory for cygwin heap, Win32 error 487
C:\Program Files\Git\bin\gawk.exe: *** couldn't commit memory for cygwin heap, Win32 error 487
помогите понять почему?
upd: может дело в длине данных?
<font color="black">awk <font color="#A31515">'<br/>
BEGIN {<br/>
split("\b\b\b\b\b. . . . . \b- \b\b- \b\b- \b\b- \b\b- \b= = = = =", st, " ")<br/>
i=0<br/>
}<br/>
/^[0-9]/ { <br/>
sub(/:.*/, "");<br/>
d=$0;<br/>
next;<br/>
} <br/>
/^&/ {<br/>
sub(/&/, "");<br/>
f=$0<br/>
substr($0, 2, length($0) - 1);<br/>
next;<br/>
}<br/>
/^+/ { a="A"; }<br/>
/^-/ { a="D"; } <br/>
/^[\+-]/ { <br/>
fflush("")<br/>
sub(/[\+-]/, "") <br/>
"echo \"" $0 "\" | md5sum | cut -f1 -d \" \" | sed -e \"s@[32|16]@/sd@g\"" | getline str; close("")<br/>
print ""<br/>
system("echo -ne \"" st[i++] "\" >&2")<br/>
if (i > 16) i=0<br/>
} <br/>
' $gitdiff | \<br/>
sed -e <font color="#A31515">'s/\(filename="[^"]"\)/\1/'</font> <br/>
</font><br/>
<font color="gray">* This source code was highlighted with <a href="http://virtser.net/blog/post/source-code-highlighter.aspx"><font color="gray">Source Code Highlighter</font></a>.</font></font>есть файл из которого берутся данные
при выполнение вылетает ошибка
C:\Program Files\Git\bin\sh.exe: *** couldn't commit memory for cygwin heap, Win32 error 487
C:\Program Files\Git\bin\sh.exe: *** couldn't commit memory for cygwin heap, Win32 error 487
C:\Program Files\Git\bin\gawk.exe: *** couldn't commit memory for cygwin heap, Win32 error 487
помогите понять почему?
upd: может дело в длине данных?
Как применить (зациклить) скрипт для каждого каталога
Всем привет. Я новичок в Powershell.
Есть дерево каталогов, нужно выполнить этот скритп, заходя в каждый каталог на 1 уровень, потом в следующий, и так далее. В гугле не смог найти понятное решение.
Никак не получается зациклить скрипт на всё дерево каталогов.
New-Item Automap -ItemType Directory
Get-ChildItem -Path . -Exclude *.max |
Where-Object { -not $_.PsIsContainer } |
Where-Object { $_.BaseName -ne $_.Directory.Name } |
Move-Item -Destination Automap -Force |
cls
Get-ChildItem -Path $_ *.max | Rename-Item -NewName {$_.Directory.Name +'.max'}
648   0   16:28, 26th April, 2021