(Explorerのサービスは停止しても自動で起動します)
$key = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' Set-ItemProperty $key HideFileExt 0 Stop-Process -processname explorer
$key = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' Set-ItemProperty $key HideFileExt 0 Stop-Process -processname explorer
# IPアドレス、サブネットマスク、DNSサーバ、デフォルトゲートウェイを設定します。
$IpAddress = "192.168.24.32"
$SubNetMask = "24"
$DnsServer = "192.168.24.1"
$DefaultGateway = "192.168.24.1"
# IPv4でDHCPでIPアドレスを取得しているインターフェースを取得します。
$IPv4Interface = Get-NetIPAddress | ? {$_.PrefixOrigin -eq "Dhcp" -and $_.AddressFamily -eq "IPv4" }
# 取得できたインターフェースが1つだけの場合はネットワーク情報を設定します。
if ($IPv4Interface.Count -lt 2) {
$NicInterfaceIndex = $IPv4Interface.InterfaceIndex
New-NetIPAddress `
–InterfaceIndex $NicInterfaceIndex `
–IPAddress $IpAddress `
-PrefixLength $SubNetMask `
-DefaultGateway $DefaultGateway
Set-DnsClientServerAddress `
-InterfaceIndex $NicInterfaceIndex `
-ServerAddresses $DnsServer
}
#
# Hyper-v にて実行中の仮想マシンのメモ情報に処理実行時の日時を書き込むスクリプト
#
# 実行中の仮想マシンの一覧を取得します。
$RuningVms = (Get-VM | ? {$_.State -eq "Running"}).Name
# 実行中の仮想マシンに対して処理を行います。
foreach ($VmName in $RuningVms){
# 仮想マシンのメモの情報を取得します。
$VmNote = (Get-VM -Name $VmName).Notes
# メモの情報を1行ずつ取得できるように加工します。
$VmNote = $VmNote -split "`n"
# メモ情報の行数を取得します。
$VmNoteLineCount = $VmNote.Length
# 処理にて使用する変数に初期値を設定します。
$VmNoteRevised = $null
$i = 0
$RunningFlag = 0
# メモ欄の最終稼働確認日を更新します。
# 最終稼働確認日が記載された行を削除し、現在の日時が記載された行を追加します。
while ($i -lt $VmNoteLineCount){
if($VmNote[$i] -like "最終稼働確認日*"){
$VmNoteRevised += "最終稼働確認日:" + (Get-Date).DateTime
$RunningFlag = 1}
else{
$VmNoteRevised += $VmNote[$i]}
$i ++
if($i -lt $VmNoteLineCount){$VmNoteRevised += "`n"}
}
# 最終稼働確認日が記載された行を追加します。
if($RunningFlag -eq 0){
$VmNoteRevised += "`n"
$VmNoteRevised += "最終稼働確認日:" + (Get-Date).DateTime}
# 仮想マシンのメモ情報を更新します。
Set-VM -Name $VmName -Notes $VmNoteRevised
}
# # ヒア文字列の行数を取得します。 # ヒア文字列を作成します。 # 改行も含めて12文字とカウントされます。 $HereString =@" ほげほげ1 ほげほげ2 "@ "" "ヒア文字列に対してGetTypeメソッドを呼び出します。" $HereString.GetType() "" "" "ヒア文字列を1文字づつ呼び出します。" "" $HereString[0] $HereString[1] $HereString[2] $HereString[3] $HereString[4] $HereString[5] $HereString[6] $HereString[7] $HereString[8] $HereString[9] $HereString[10] $HereString[11] "" "改行は3文字として扱われます。" "どういう文字コードが当てられているかは分かりません。" "" "ヒア文字列の行数(Measure-ObjectのCount)" ($HereString | Measure-Object).Count "" "ヒア文字列の長さ(Length)" $HereString.Length "" "" "" "【ヒア文字列の分割】" "ヒア文字列を改行文字で分割し、元の変数に格納します。" $HereString = $HereString -split "`n" "" "分割したヒア文字列に対してGetTypeメソッドを呼び出します。" $HereString.GetType() "" "" "分割したヒア文字列を1行づつ呼び出します。" "1文字ごとに取り出すことはできないようです。" "" $HereString[0] $HereString[1] "" "分割したヒア文字列の行数(Measure-ObjectのCount)" ($HereString | Measure-Object).Count "" "分割したヒア文字列の長さ(Length)" $HereString.Length
ヒア文字列を1文字づつ呼び出します。 ほ げ ほ げ 1 ほ げ ほ げ 2 改行は3文字として扱われます。 どういう文字コードが当てられているかは分かりません。 ヒア文字列の行数(Measure-ObjectのCount) 1 ヒア文字列の長さ(Length) 12 【ヒア文字列の分割】 ヒア文字列を改行文字で分割し、元の変数に格納します。 分割したヒア文字列に対してGetTypeメソッドを呼び出します。 True True String[] System.Array 分割したヒア文字列を1行づつ呼び出します。 1文字ごとに取り出すことはできないようです。 ほげほげ1 ほげほげ2 分割したヒア文字列の行数(Measure-ObjectのCount) 2 分割したヒア文字列の長さ(Length) 2 |
# 共有フォルダを作成するスクリプト
#
# 1.フォルダを作成します。
# 2.そのフォルダを共有フォルダにします。
# 3.そのフォルダに共有権限設定を行います。
# 1.
# 共有フォルダにするフォルダのパスを指定します。
# フォルダがない場合は新規にフォルダを作成し、
# 既存のフォルダがある場合はそれを共有フォルダにします。
$SharedFolderPath = "C:\Shared"
# 2.
# 共有フォルダ名を指定します。
# すでに共有フォルダがある場合は処理を中止します。
# 処理中止時には共有権限設定も行いません。
$SharedFolderName = "Shared"
# 3.
# 設定する共有権限を指定します。
$AccoutName = "Everyone"
$FolderPermission = "FULL"
# 1.フォルダの作成
if (-not (Test-Path $SharedFolderPath)){
New-Item $SharedFolderPath -Type Directory}
# 2.共有フォルダの作成
if (Get-SmbShare –Name $SharedFolderName -ErrorAction SilentlyContinue){
"すでに共有 $SharedFolderName が存在します。処理を中止します。";Exit} #処理中止
else{
New-SmbShare –Name $SharedFolderName –Path $SharedFolderPath}
# 3.共有権限の設定
Grant-SmbShareAccess -Name $SharedFolderName -AccountName $AccoutName -AccessRight $FolderPermission -Force
# シャットダウン前に停止したいプロセスを列挙する
$RunningProcesses = ("iTunes","LINE","LYNC","OUTLOOK","EXCEL","WINWORD")
# 列挙したプロセスを停止する
foreach ($Process in $RunningProcesses){
if (Get-Process | Where-Object {$_.ProcessName -eq $Process})
{Stop-Process -Name $Process}
}
# コンピュータをシャットダウンする
Stop-Computer -Force
| echo off echo これからコンピュータをシャットダウンします。 echo Enterを3回押してください。 echo on pause pause pause Powershell -Command "C:\PowershellScripts\Shutdown.ps1" |