變更已註冊工作階段設定的屬性。
語法
Set-PSSessionConfiguration [-AssemblyName] <string> [-ConfigurationTypeName] <string> [-Name] <string> [-ApplicationBase <string>] [-Force] [-MaximumReceivedDataSizePerCommandMB <double>] [-MaximumReceivedObjectSizeMB <double>] [-NoServiceRestart] [-SecurityDescriptorSDDL <string>] [-ShowSecurityDescriptorUI] [-StartupScript <string>] [-ThreadApartmentState {<STA> | <MTA> | <Unknown>}] [-ThreadOptions {<Default> | <UseNewThread> | <ReuseThread> | <UseCurrentThread>}] [-Confirm] [-WhatIf] [<CommonParameters>]
描述
Set-PSSessionConfiguration Cmdlet 會變更本機電腦上已註冊之工作階段設定的屬性。這是進階的 Cmdlet,適合系統管理員用來管理使用者的自訂工作階段設定。
請使用 Name 參數來識別您想要變更的設定。請使用其他參數來指定工作階段設定屬性的新值。若要從設定中刪除屬性值 (並使用預設值),請針對對應的參數輸入空字串 ("") 或 $null 值。
若要查看工作階段設定的屬性,請使用 Get-PSSessionConfiguration Cmdlet 或 WS-Management 提供者。如需 WS-Management 提供者的詳細資訊,請輸入 "Get-Help wsman"。
參數
-ApplicationBase <string>
變更 AssemblyName 參數值中指定之組件檔案 (*.dll) 的路徑。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-AssemblyName <string>
針對設定指定不同的組件檔案。請輸入定義設定類型之組件 (.dll) 檔案的路徑 (選擇項) 和檔案名稱。
如果您只有輸入名稱,也可以在 ApplicationBase 參數的值中輸入路徑。
必要? |
true |
位置? |
2 |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-ConfigurationTypeName <string>
針對設定指定不同的設定類型。您所指定的類型必須實作 System.Management.Automation.Remoting.PSSessionConfiguration 類別。
如果您輸入 "$null" 或空字串,DefaultRemotePowerShellConfiguration 類別就會用於工作階段設定。
必要? |
true |
位置? |
3 |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Force
抑制所有使用者提示,並重新啟動 WinRM 服務,而不進行提示。重新啟動服務可讓設定變更生效。
若要防止進行重新啟動並抑制重新啟動的提示,請使用 NoServiceRestart 參數。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-MaximumReceivedDataSizePerCommandMB <double>
變更可在任何單一遠端命令中傳送至這部電腦的資料量限制。請輸入以 MB 為單位的資料大小。預設值為 50 MB。
如果資料大小限制定義於 ConfigurationTypeName 參數所指定的設定類型中,系統就會使用設定類型中的限制而忽略這個參數的值。
必要? |
false |
位置? |
named |
預設值 |
50 |
接受管線輸入? |
false |
接受萬用字元? |
false |
-MaximumReceivedObjectSizeMB <double>
變更可在任何單一物件中傳送至這部電腦的資料量限制。請輸入以 MB 為單位的資料大小。預設值為 10 MB。
如果物件大小限制定義於 ConfigurationTypeName 參數所指定的設定類型中,系統就會使用設定類型中的限制而忽略這個參數的值。
必要? |
false |
位置? |
named |
預設值 |
10 |
接受管線輸入? |
false |
接受萬用字元? |
false |
-Name <string>
指定您想要變更之工作階段設定的名稱。
您無法使用此參數來變更工作階段設定的名稱。
必要? |
true |
位置? |
1 |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-NoServiceRestart
不重新啟動 WinRM 服務,並抑制重新啟動服務的提示。
根據預設,當您輸入 Set-PSSessionConfiguration 命令時,系統就會提示您重新啟動 WinRM 服務,讓新的工作階段設定生效。在重新啟動 WinRM 服務之前,新的工作階段設定不會生效。
若要重新啟動 WinRM 服務而不進行提示,請使用 Force 參數。若要手動重新啟動 WinRM 服務,請使用 Restart-Service Cmdlet。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-SecurityDescriptorSDDL <string>
針對設定指定不同的安全性描述元定義語言 (SDDL) 字串。
這個字串會決定使用新工作階段設定所需的權限。若要在工作階段中使用工作階段設定,使用者至少必須擁有該設定的 "Execute(Invoke)" 權限。
若要使用設定的預設安全性描述元,請輸入空字串 ("") 或 $null 值。預設值為 WSMan: 磁碟機中的根 SDDL。
如果安全性描述元很複雜,請考慮使用 ShowSecurityDescriptorUI 參數而非這個參數。您無法在同一個命令中使用這兩個參數。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-ShowSecurityDescriptorUI
顯示可協助您針對工作階段設定建立新 SDDL 的內容表。在您輸入 Set-PSSessionConfiguration 命令,然後重新啟動 WinRM 服務之後,就會顯示此內容表。
設定設定的權限時,請記住,使用者至少必須擁有 "Execute(Invoke)" 權限才能在工作階段中使用工作階段設定。
您無法在同一個命令中使用 SecurityDescriptorSDDL 參數和此參數。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-StartupScript <string>
新增或變更設定的啟動指令碼。請輸入 Windows PowerShell 指令碼的完整路徑。指定的指令碼會在使用工作階段設定的新工作階段中執行。
若要從工作階段設定中刪除啟動指令碼,請輸入空字串 ("") 或 $null 值。
您可以使用啟動指令碼來進一步設定使用者的工作階段。如果指令碼產生錯誤 (即使是非終止錯誤),系統就不會建立工作階段,而且使用者的 New-PSSession 命令會失敗。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-ThreadApartmentState <ApartmentState>
變更工作階段中執行緒的 Apartment 狀態設定。有效的值包括 STA、MTA 和 Unknown。預設值為 Unknown。
必要? |
false |
位置? |
named |
預設值 |
ApartmentState.Unknown |
接受管線輸入? |
false |
接受萬用字元? |
false |
-ThreadOptions <PSThreadOptions>
變更設定中的執行緒選項設定。這項設定會定義在工作階段中執行命令時,執行緒的建立和使用方式。有效的值包括 Default、ReuseThread、UseCurrentThread 和 UseNewThread。預設值為 UseCurrentThread。
必要? |
false |
位置? |
named |
預設值 |
PSThreadOptions.UserCurrentThread |
接受管線輸入? |
false |
接受萬用字元? |
false |
-Confirm
在執行命令前先提示確認。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-WhatIf
說明執行命令時將會發生何種情況,但不會實際執行命令。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
<CommonParameters>
這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.
輸入和輸出
輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。
輸入 |
None 您無法經由管道將輸入輸出至這個 Cmdlet。 |
輸出 |
Microsoft.WSMan.Management.WSManConfigLeafElement |
附註
若要在 Windows Vista、Windows Server 2008 和更新版的 Windows 上執行這個 Cmdlet,您必須使用 [以系統管理員身分執行] 選項開啟 Windows PowerShell。
Set-PSSessionConfiguration Cmdlet 不會變更設定名稱,而且 WS-Management 提供者不支援 Rename-Item Cmdlet。若要變更設定的名稱,請使用 Unregister-PSSessionConfiguration Cmdlet 來刪除設定,然後使用 Register-PSSessionConfiguration Cmdlet 來建立並註冊新的工作階段設定。
您可以使用 Set-PSSessionConfiguration Cmdlet 來變更預設的 Microsoft.PowerShell 和 Microsoft.PowerShell32 工作階段設定。這些設定沒有受到保護。若要回復成預設工作階段設定的原始版本,請使用 Unregister-PSSessionConfiguration Cmdlet 來刪除預設的工作階段設定,然後使用 Enable-PSRemoting Cmdlet 來進行還原。
範例 1
C:\PS>set-pssessionconfiguration -name MaintenanceShell -threadApartmentState STA 描述 ----------- 這個命令會將 MaintenanceShell 設定中的執行緒 Apartment 狀態變更為 STA。此變更會在您重新啟動 WinRM 服務時生效。
範例 2
C:\PS>register-pssessionconfiguration -name AdminShell -assemblyName c:\shells\AdminShell.dll -configurationType AdminClass C:\PS> set-pssessionconfiguration -name AdminShell -startupScript AdminConfig.ps1 C:\PS> set-pssessionconfiguration -name AdminShell -startupScript $null 描述 ----------- 這個範例會示範如何建立工作階段設定,然後進行變更。 第一個命令會使用 Register-PSSessionConfiguration Cmdlet 來建立 AdminShell 設定。 第二個命令會使用 Set-PSSessionConfiguration Cmdlet,將 AdminConfig.ps1 指令碼新增至設定。此變更會在您重新啟動 WinRM 時生效。 第三個命令會從設定中移除 AdminConfig.ps1 指令碼。它會使用 Set-PSSessionConfiguration Cmdlet 搭配值為 $null 的 StartupScript 參數。
範例 3
C:\PS>Set-PSSessionConfiguration -name foo -MaximumReceivedObjectSizeMB 20 WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin\foo\InitializationParameters ParamName ParamValue --------- ---------- psmaximumreceivedobjectsizemb 20 "Restart WinRM service" WinRM service need to be restarted to make the changes effective. Do you want to run the command "restart-service winrm"? [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y 描述 ----------- 這個範例會示範 Set-PSSessionConfiguration Cmdlet 的範例輸出。 這個範例中的 Set-PSSessionConfiguration 命令會將 MaximumReceivedObjectSizeMB 屬性的值提高為 20。 Set-PSSessionConfiguration 命令會傳回顯示參數名稱和新值的 Microsoft.WSMan.Management.WSManConfigLeafElement 物件。 它也會提示您重新啟動 WinRM 服務。在重新啟動 WinRM 服務之前,Set-PSSessionConfiguration 變更不會生效。
範例 4
C:\PS>set-pssessionconfiguration -name MaintenanceShell -startupScript c:\ps-test\Maintenance.ps1 WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin\MaintenanceShell\InitializationParameters ParamName ParamValue --------- ---------- startupscript c:\ps-test\Mainte... "Restart WinRM service" WinRM service need to be restarted to make the changes effective. Do you want to run the command "restart-service winrm"? [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y C:\PS> get-pssessionConfiguration maintenanceshell | format-list -property * xmlns : https://schemas.microsoft.com/wbem/wsman/1/config/PluginConfiguration Name : MaintenanceShell Filename : %windir%\system32\pwrshplugin.dll SDKVersion : 1 XmlRenderingType : text lang : en-US PSVersion : 2.0 startupscript : c:\ps-test\Maintenance.ps1 ResourceUri : https://schemas.microsoft.com/powershell/MaintenanceShell SupportsOptions : true ExactMatch : true Capability : {Shell} Permission : C:\PS> dir wsman:\localhost\plugin\MaintenanceShell\InitializationParameters ParamName ParamValue --------- ---------- PSVersion 2.0 startupscript c:\ps-test\Maintenance.ps1 描述 ----------- 這個命令會示範檢視 Set-PSSessionConfiguration 命令結果的不同方式。 第一個命令會使用 Set-PSSessionConfiguration Cmdlet,將 MaintenanceShell 設定中的啟動指令碼變更為 Maintenance.ps1。這個命令的輸出會顯示變更並提示您重新啟動 WinRM 服務。其回應為 "y" (是)。 第二個命令會使用 Get-PSSessionConfiguration Cmdlet 來取得 MaintenanceShell 工作階段設定。此命令會使用管線運算子 (|),將命令的結果傳送至 Format-List Cmdlet,並由後者將工作設定物件的所有屬性顯示在清單中。 第三個命令會使用 WS-Management 提供者來檢視 MaintenanceShell 設定的初始化參數。此命令會使用 Get-ChildItem Cmdlet (別名為 dir) 來取得 MaintenanceShell 外掛程式之 InitializationParameters 節點中的子項目。 如需 WS-Management 提供者的詳細資訊,請輸入 "get-help wsman"。
請參閱