91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Powershell如何在Start-Job的Scriptblock里傳參?

發布時間:2020-07-04 21:30:10 來源:網絡 閱讀:4296 作者:UltraSQL 欄目:編程語言

如何在Start-Job的Scriptblock里傳參?

方法1:

利用本地變量,從一個可擴展的字符串,使用[scriptblock]::create方法創建腳本塊:

$v1 = "123"
$v2 = "asdf"
$sb = [scriptblock]::Create("Write-Host 'Values are: $v1, $v2'")
$job = Start-Job -ScriptBlock $sb

# 另一種寫法
[scriptblock]$sb =
{
Write-Host "Values are: $v1, $v2"
}



方法2:

在InitializationScript中設置變量

$Init_Script = {
$v1 = "123"
$v2 = "asdf"
}
$sb = {
    Write-Host "Values are: $v1, $v2"
}
$job = Start-Job -InitializationScript $Init_Script -ScriptBlock $sb



方法3:

使用-Argumentlist參數

$v1 = "123"
$v2 = "asdf"
$sb = {
    Write-Host "Values are: $($args[0]), $($args[1])"
}
$job = Start-Job  -ScriptBlock $sb -ArgumentList $v1,$v2


深入閱讀


Using scope


PowerShell v3 introduced another level of scope called using. It doesn’t fit into the
hierarchical model described in figure 22.1, and the rules laid down in this chapter
don’t apply, because it’s designed to be used in situations where you want to access
a local variable in a remote session. The definition from the help file about_scopes is:
Using is a special scope modifier that identifies a local variable in a remote
command. By default, variables in remote commands are assumed to be defined
in the remote session.

More on using can be found in about_Remote_Variables. It’s used like this:
PS C:\> $s = New-PSSession -ComputerName W12Standard
PS C:\> $dt = 3
PS C:\> Invoke-Command -Session $s -ScriptBlock {Get-WmiObject -Class
? Win32_LogicalDisk -Filter "DriveType=$dt"}

Invalid query "select * from Win32_LogicalDisk where DriveType="
+ CategoryInfo : InvalidArgument: (:)
[Get-WmiObject], ManagementException
+ FullyQualifiedErrorId : GetWMIManagementException,
Microsoft.PowerShell.Commands.GetWmiObjectCommand
+ PSComputerName : W12Standard

PS C:\> Invoke-Command -Session $s -ScriptBlock {Get-WmiObject -Class
? Win32_LogicalDisk -Filter "DriveType=$Using:dt"}
DeviceID : C:
DriveType : 3
ProviderName :
FreeSpace : 126600425472
Size : 135994011648
VolumeName :
PSComputerName : W12Standard

Create a remoting session to another machine and define a local variable. If you try
to use that variable (which is local) in the remote session, you’ll get the error shown
in the first command, but if you employ the using scope, it works.
In PowerShell v2, you could do this:
PS C:\> Invoke-Command -Session $s -ScriptBlock {param($d) Get-
? WmiObject -Class Win32_LogicalDisk -Filter "DriveType=$d" }
? -ArgumentList $dt

Using is a valuable addition to your toolbox when you’re working with remote machines.

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

景谷| 安阳县| 浦江县| 凯里市| 治多县| 蒲城县| 吴堡县| 天门市| 阿尔山市| 罗平县| 罗城| 寿光市| 福建省| 绥滨县| 永定县| 灵石县| 双江| 彭阳县| 焉耆| 太康县| 莱阳市| 迁安市| 武清区| 宜州市| 丹寨县| 上思县| 遂川县| 武平县| 五寨县| 赤壁市| 广灵县| 侯马市| 富民县| 平罗县| 彰化市| 孝感市| 富平县| 崇明县| 大冶市| 兰州市| 沙河市|