PS> Get-Help New-Item -Parameter Name
-Name <System.String[]>
....
Принимать входные данные конвейера? True (ByPropertyName)
PS> Get-Help Set-Location -Parameter Path
Принимать входные данные конвейера? True (ByPropertyName, ByValue)
echo "hello" | Set-Location
и попасть в папочку[PSCustomObject]@{ Name = 'hello' } | New-Item
# попытка 1 как выше
mkdir d:\test1
cd d:\test1
'z','x','c' | ForEach-Object { New-Item -ItemType Directory -Name $_ }
# попытка 2, сдублируем те же папочки в другом месте
mkdir d:\test2
cd d:\test2
Get-ChildItem d:\test1 | New-Item -ItemType Directory
New-Item
можно использовать как -Path
, так и -Name
You can specify the name of the new item in the Name or Path parameter value, and you can specify the path of the new item in Name or Path value. Items names passed using the Name parameter are created relative to the value of the Path parameter.
foreach ($User in $NameList) {
[void] $listBox.Items.Add($User)
}
$User.Name
$NameList = @(Get-ADUser -Filter {Name -like $SearchName} -Properties Name | Select-Object -Property Name)
$NameList = @(Get-ADUser -Filter {Name -like $SearchName} -Properties Name)
$NameList = @(Get-ADUser -Filter {Name -like $SearchName} -Properties Name | Select-Object -ExpandProperty Name)
@()
тоже необязательно, если вам вот прям не нужен массив. foreach будет работать и так type d:\long_message.txt | msg username
"$principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -LogonType Interactive -RunLevel Highest;" ^
$principal = New-ScheduledTaskPrincipal -GroupId 'S-1-5-32-545'
[InternetShortcut]
URL=http://portal/
HotKey=0
Get-NetFirewallApplicationFilter | Where-Object { $_.Program -eq $exePath } | Get-NetFirewallRule
$progs = 'exe1.exe', 'exe2.exe'
Get-NetFirewallApplicationFilter | Where-Object { $_.Program -in $progs } | Get-NetFirewallRule
| Where-Object { $_ }
Remove-Item [-Path] <System.String[]> ....
function SearchAndReplace-HexPatternInBinaryFile {
[OutputType([int[]])]
param (
[Parameter(Mandatory)]
[string]$filePath,
[string[]]$patterns,
[byte[]]$newFileBytes
)
......
.....
$replacedPatternsIndexes = SearchAndReplace-HexPatternInBinaryFile -filePath $filePathArg -patterns $patterns -newFileBytes $newFileBytes
$argumentList = '-noprofile', '-noexit', '-File', 'd:\called.ps1', "-FilePath `"$filepath`""
$argumentList += $patterns
param(
[string]$FilePath #,
# [array]$Patterns
)
#requires -RunAsAdministrator
$filepath = "D:\test folder\with test file\myfile.exe"
$patterns = "11223344/55667788"
$argumentList = '-noprofile', '-noexit', '-File', 'd:\called.ps1', "-FilePath `"$filepath`"", "-patterns `"$patterns`""
Start-Process powershell -Verb RunAs -ArgumentList $argumentList
# Специально многострочный пример
$command = @"
d:\called.ps1 -FilePath `"$filepath`" -patterns `"$patterns`"
"@
$encodedCommand = [convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($command))
Start-Process powershell -Verb RunAs -ArgumentList '-noprofile -noexit -EncodedCommand', $encodedCommand
#requires -RunAsAdministrator
param(
$FilePath,
$Patterns
)
Write-Host "FilePath: >$FilePath<"
Write-Host "Patterns: >$Patterns<"
foreach ($a in $args) {
Write-Host "Argument: >$a<"
}
Write-Host "---"
Какой правильный способ для того, чтобы каждые 5 минут этот скрипт перезапускался, создавая новый файл, оставляя старые файлы?
*-Job
- вообще не для этогоAdd-Content
, как раз, хорошо подойдёт для дописывания логов You need to grant the following permission to the group Exchange Trusted Subsystem to the network share where you want to export or import PST files:
To import PST files from the share: Read permission
To save exported PST files to the share: Read/Write permission.
-replace
заменить все эти сомнительные места на то, что вам надо, но в целом я согласен с Everything_is_bad, если вы собрались читать json, он должен быть валидным "accept-encoding"="gzip, deflate, br, zstd"