Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <#
- .SYNOPSIS
- Remote Desktop ServiceのRDP-Tcp Connectionのアクセス権を初期状態に戻します。
- .PARAMETER TerminalName
- 対象となるターミナル名を設定します。通常は"RDP-Tcp"が指定されます。
- .PARAMETER ComputerName
- 対象となるコンピューター名を設定します。未指定の場合は現在のコンピューター名が対象になります。
- .PARAMETER Credential
- リモートコンピュータに対する認証情報を設定します。
- String型もしくはPSCredential型の値を設定してください。
- .EXAMPLE
- Restore-RDSConnectionPermissions
- .NOTES
- このメソッドを実行するには昇格している必要があります。
- 内部でWin32_TSPermissionsSetting.RestoreDefaults()メソッドを呼んでいます。
- .LINK
- #>
- Function Restore-RDSConnectionPermissions(){
- [OutputType('Boolean')]
- [CmdletBinding()]
- param(
- [Parameter(Mandatory=$false)]
- [string]$TerminalName = "RDP-Tcp",
- [Parameter(Mandatory=$false)]
- [string]$ComputerName = $env:COMPUTERNAME,
- [Parameter(Mandatory=$false)]
- $Credential = $null
- )
- $Setting = $null
- try{
- if($Credential -eq $null){
- $Setting = Get-WmiObject -Namespace "Root\CIMv2\TerminalServices" -Class Win32_TSPermissionsSetting -ComputerName $ComputerName
- }else{
- $Setting = Get-WmiObject -Namespace "Root\CIMv2\TerminalServices" -Class Win32_TSPermissionsSetting -ComputerName $ComputerName -Credential $Credential
- }
- $Setting = $Setting | Where-Object { $_.TerminalName.ToUpper() -eq $TerminalName.ToUpper() }
- }catch{
- Write-Error $_.Exception
- return $false
- }
- if($Setting.Count -eq 0){
- Write-Warning ("指定のターミナル({0})は存在しません。" -F $TerminalName)
- return $false
- }
- try{
- Write-Verbose ("{0}.{1} : Execute Win32_TSPermissionsSetting.RestoreDefaults()" -F $ComputerName, $TerminalName)
- $Setting.RestoreDefaults() | Out-Null
- }
- catch [System.Management.Automation.MethodInvocationException] {
- Write-Error "Win32_TSPermissionsSetting.RestoreDefaults()メソッドの呼び出しに失敗しました。メソッドの呼び出しに必要な権限を確認してください。"
- return $false
- }
- catch{
- Write-Error $_.Exception
- return $false
- }
- return $true
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement