1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { $scriptPath = $MyInvocation.MyCommand.Path Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"$scriptPath`"" -Verb RunAs Exit } # ユーザーを追加する場合 # New-LocalUser -Name "TempUser" -Password (ConvertTo-SecureString "1234" -AsPlainText -Force) -AccountNeverExpires -PasswordNeverExpires # Add-LocalGroupMember -Group "Administrators" -Member "TempUser" # 空パスワードの許可 Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name 'LimitBlankPasswordUse' -Value 0 # リモート接続の許可 (sysdm.cpl>リモートが有効になる) + ネットワークレベル認証の解除(PROのみ) Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Value 0 Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "UserAuthentication" -Value 0 # ファイルとプリンターの共有を有効にする # netsh advfirewall firewall set rule group="ファイルとプリンターの共有" new enable=Yes Enable-NetFirewallRule -DisplayGroup "ファイルとプリンターの共有" # リモートデスクトップを有効にする # netsh advfirewall firewall set rule group="リモート デスクトップ" new enable=yes if (Get-NetFirewallRule | Where-Object { $_.DisplayGroup -eq "リモート デスクトップ" }) { Enable-NetFirewallRule -DisplayGroup "リモート デスクトップ" } # 別セグメント許可 # netsh advfirewall firewall add rule name="Allow Subnet RDP" dir=in action=allow protocol=tcp localport=3389 profile=private,public remoteip=192.168.0.0/16 New-NetFirewallRule -DisplayName "Allow Subnet RDP" -Name "Allow Subnet RDP" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 3389 -Profile Private,Public -RemoteAddress 192.168.0.0/16 # AC電源使用時のスリープを無効にする powercfg /change standby-timeout-ac 0 # AC電源使用時のディスプレイオフタイムアウトを無効にする powercfg /change monitor-timeout-ac 0 # AC電源使用時のハードディスクの電源オフタイムアウトを無効にする powercfg /change disk-timeout-ac 0 # アクティブなユーザー名(PROのみ) $activeUser1 = (query user | Select-String "Active" | ForEach-Object { $_.ToString().Split(" ", [System.StringSplitOptions]::RemoveEmptyEntries)[0] }) $activeUser2 = (Get-WMIObject -ClassName Win32_ComputerSystem).Username # IPアドレス(192.168.が含まれている) $ipAddress1 = (Get-NetIPAddress | Where-Object { $_.IPAddress -like "192.168.*" }).IPAddress # IPアドレス(デフォルトゲートウェイが設定されている) $ipAddress2 = (Get-NetIPConfiguration | Where-Object { $_.IPv4DefaultGateway -ne $null }).IPv4Address.IPAddress # wmic useraccount get Caption $wmic = (Get-WmiObject Win32_UserAccount | Select-Object -ExpandProperty Caption) -join "`r`n" $whoami = whoami $computer = Get-WmiObject Win32_ComputerSystem $domain = $computer.Domain $workgroup = $computer.Workgroup $Body = "domain: " + $domain + "`r`n`r`n" + "workgroup: " + $workgroup + "`r`n`r`n" + "active user: " + $activeUser1 + "`r`n`r`n" + "active user: " + $activeUser2 + "`r`n`r`n" + "ip address(192.168.*): " + $ipAddress1 + "`r`n`r`n" + "ip address(default gateway): " + $ipAddress2 + "`r`n`r`n" + "wmic: " + $wmic + "`r`n`r`n" + "whoami: " + $whoami Write-Output $Body $encode = [System.Text.Encoding]::UTF8 $SMTPServer = "xxx" $SMTPPort = "xxx" $Username = "xxx" [System.Security.SecureString]$Password = ConvertTo-SecureString "xxx" -AsPlainText -Force $From = "xxx" $To = "xxx" $Subject = "リモート接続情報" [System.Collections.Hashtable]$SMTPMessage = @{ To = $To From = $From Subject = $Subject Body = $Body SmtpServer = $SMTPServer Port = $SMTPPort Credential = New-Object System.Management.Automation.PSCredential ($Username, $Password) Encoding = $encode } Send-MailMessage @SMTPMessage Pause |
実行前に管理者権限で以下のバッチを実行
PowerShell Set-ExecutionPolicy Unrestricted