$NewVals = try {
($user.GetEx('url'))[0..10]
}
catch {
@()
}
$newVals += $note
$params = @{
FilePath="PowerShell"
wait = $isWait
}
if ($isVerbRunAs) { $params.Verb = 'RunAs' }
$params.argumentlist = ....
if ...
Invoke-Command @params
param(
[parameter(mandatory=$false, position=0)]
[scriptblock]$scriptblock,
[parameter(mandatory=$false, position=1, ValueFromRemainingArguments=$true)]
$args
)
$a = '-Command', $scriptblock, '-args'
$a += $args
write-host $a
Start-Process -verb runas Powershell -argumentlist $a
D:\runas.ps1 { d:\1.ps1 } qwe asd
(
1.ps1: "args: $args"
)
>> Насчет избежать проверки: но ведь где-то решается, будет ли параметр?
да особо нигде не решается, из конфига читается, он есть или нет.
$config = @{
param1 ='bbb'
param2 = 'aaa'
}
invoke-command @config
$commonParams=@{
Wait=iswait
echo=$isecho
}
Somescript1 @commonParams -somespecial 'value'
PS D:\> cat 1.py
print('test')
sdfsdfsf()
PS D:\> invoke-command { python 1.py 2>&1 } -ErrorVariable e
test
python : Traceback (most recent call last):
строка:1 знак:18
+ invoke-command { python 1.py 2>&1 } -ErrorVariable e
+ ~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (Traceback (most recent call last)::String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
File "1.py", line 3, in <module>
sdfsdfsf()
NameError: name 'sdfsdfsf' is not defined
PS D:\> $e
python : Traceback (most recent call last):
строка:1 знак:18
+ invoke-command { python 1.py 2>&1 } -ErrorVariable e
+ ~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (Traceback (most recent call last)::String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
File "1.py", line 3, in <module>
sdfsdfsf()
NameError: name 'sdfsdfsf' is not defined
PS C:\> cat D:\test.cmd
@echo %1 %2 %3 %4 >d:\111
PS C:\> ([WMICLASS]"\\localhost\ROOT\CIMV2:win32_process").Create("d:\test.cmd /sALL /rs /msi EULA_ACCEPT=YES")
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 2
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ProcessId : 20280
ReturnValue : 0
PSComputerName :
PS C:\> cat D:\111
/sALL /rs /msi EULA_ACCEPT
Get-NetAdapter
в powershell это то же самое что Get-NetAdapter | Write-Output
, аналог C# - yield Get-NetAdapter
Get-NetAdapter; Get-NetAdapter
вернёт массив, например