วิธีเปิดใช้งาน Shadow Copy ของโวลุ่มโดยใช้ Powershell


13

วิธีการเปิดใช้งาน Shadow Copy บนไดรฟ์เฉพาะ (D:, E:, ... ) และตั้งค่ากำหนดเวลาโดยใช้ Powershell

ฉันแค่ต้องการคำแนะนำวิธีการเริ่มต้น


1
เราต้องการข้อมูลเพิ่มเติมที่นี่ คุณใช้ระบบปฏิบัติการอะไร? คุณใช้โปรแกรมใดในการสำรองข้อมูล
Holocryptic

Win XP และ win 7 และฉันหมายถึง VSS ซึ่งเป็นส่วนหนึ่งของ win OS
Primoz

คำตอบ:


7

คุณสามารถสร้างสำเนาเงาบนไดรฟ์ที่เฉพาะเจาะจงใช้วัตถุ WMI เหมือนมันอธิบายในไมโครซอฟท์บทความ

เปิดใช้งานสำเนาเงาของไดรฟ์ข้อมูลในไดรฟ์เฉพาะ (D :, E:, ... )เป็นสองสิ่ง

  1. การสร้าง shadow copy ดังแสดงในบทความก่อนหน้า
  2. การสร้างงานที่กำหนดเวลาไว้เพื่อสร้าง shadow copy

ดี คำตอบนี้เป็นสิ่งที่ฉันต้องการ ฉันไม่รู้ว่าฉันต้องสร้างงานที่ถูกกำหนดสิทธิ์
Primoz

7

ฉันใช้เวลาสักครู่เพื่อให้มันทำงาน (หลังจากพบข้อผิดพลาดง่าย ๆ ทำให้มันล้มเหลว) และฟังก์ชั่นไม่สมบูรณ์ ฉันต้องการเพิ่มความสามารถในการเปิดใช้งานบนคอมพิวเตอร์ระยะไกลซึ่งอาจจะต้องทำผ่านงานที่รันครั้งเดียว หากใครดัดแปลงและเพิ่มมันให้ฉันรู้!

function Enable-ShadowCopies {
param(
    [String]$ComputerName = $Env:ComputerName,

    [Parameter(Mandatory=$true)]
    [String]$Drive
)
$volumeWMI = Get-WmiObject -ComputerName $ComputerName -Class Win32_Volume -Filter "DriveLetter = '$Drive'";
$volumeID = ($volumeWMI.DeviceID.SubString(10)).SubString(0,($volumeWMI.DeviceID.SubString(10)).Length-1);

$scheduler = New-Object -ComObject Schedule.Service
$scheduler.Connect($ComputerName)
$tskDef = $scheduler.NewTask(0);
$tskRegInfo = $tskDef.RegistrationInfo;
$tskSettings = $tskDef.Settings;
$tskTriggers = $tskDef.Triggers;
$tskActions = $tskDef.Actions;
$tskPrincipals = $tskDef.Principal;

# Registration Info
$tskRegInfo.Author = "PowerShell Script";

# Settings
$tskSettings.DisallowStartIfOnBatteries = $false;
$tskSettings.StopIfGoingOnBatteries = $false
$tskSettings.AllowHardTerminate = $false;
$tskSettings.IdleSettings.IdleDuration = "PT600S";
$tskSettings.IdleSettings.WaitTimeout = "PT3600S";
$tskSettings.IdleSettings.StopOnIdleEnd = $false;
$tskSettings.IdleSettings.RestartOnIdle = $false;
$tskSettings.Enabled = $true;
$tskSettings.Hidden = $false;
$tskSettings.RunOnlyIfIdle = $false;
$tskSettings.WakeToRun = $false;
$tskSettings.ExecutionTimeLimit = "PT259200S";
$tskSettings.Priority = "5";
$tskSettings.StartWhenAvailable = $false;
$tskSettings.RunOnlyIfNetworkAvailable = $false;

# Triggers
$tskTrigger1 = $tskTriggers.Create(3);
$tskTrigger2 = $tskTriggers.Create(3);

## Trigger 1
$tskTrigger1.Id = "Trigger1"
$tskTrigger1.StartBoundary = (Get-Date -format "yyyy-MM-dd")+"T07:00:00";
$tskTrigger1.DaysOfWeek = 0x3E; # Monday - Friday - http://msdn.microsoft.com/en-us/library/windows/desktop/aa384024(v=vs.85).aspx
$tskTrigger1.Enabled = $true;

## Trigger 2
$tskTrigger2.Id = "Trigger2";
$tskTrigger2.StartBoundary = (Get-Date -format "yyyy-MM-dd")+"T12:00:00";
$tskTrigger2.DaysOfWeek = 0x3E; # Monday - Friday - http://msdn.microsoft.com/en-us/library/windows/desktop/aa384024(v=vs.85).aspx
$tskTrigger2.Enabled = $true;

# Principals (RunAs User)
$tskPrincipals.Id = "Author";
$tskPrincipals.UserID = "SYSTEM";
$tskPrincipals.RunLevel = 1;

 # Actions
$tskActions.Context = "Author"
$tskAction1 = $tskActions.Create(0);

# Action 1
$tskAction1.Path = "C:\Windows\system32\vssadmin.exe";
$tskAction1.Arguments = "Create Shadow /AutoRetry=15 /For="+$volumeWMI.DeviceID;
$tskAction1.WorkingDirectory = "%systemroot%\system32";

# Configure VSS, Add scheduled task
vssadmin Add ShadowStorage /For=$Drive /On=$Drive /MaxSize=10%;
$tskFolder = $scheduler.GetFolder("\")
$tskFolder.RegisterTaskDefinition("ShadowCopyVolume$volumeID", $tskDef, 6, "SYSTEM", $null,5);
}

แม้ว่ามันจะใช้งานได้และมันก็เลียนแบบสิ่งที่เกิดขึ้นเมื่อคุณทำผ่าน GUI มันยังคงแสดงว่าถูกปิดการใช้งานสำหรับไดรฟ์นั้น แต่ถ้าคุณเปิดใช้งานจะไม่มีอะไรเปลี่ยนแปลง! (LOL) ฉันเดาว่ามีบางอย่างที่ต้องแก้ไขในรีจิสทรีด้วย


1
+1 สำหรับการตอบด้วยสคริปต์เต็มรูปแบบ!
Mark Henderson

ต้องการเพิ่ม $ date = Get-Date และ $ tskFolder = $ scheduler.GetFolder ("\")
Jeow Li Huan

2
$diskname = "C:\"
$VolumeWmi = gwmi Win32_Volume -Namespace root/cimv2 | ?{ $_.Name -eq $diskname }
$DeviceID = $VolumeWmi.DeviceID.ToUpper().Replace("\\?\VOLUME", "").Replace("\","")
$TaskName = "ShadowCopyVolume" + $DeviceID
$TaskFor = "\\?\Volume" + $DeviceID + "\"
$Task = "C:\Windows\system32\vssadmin.exe"
$Argument = "Create Shadow /AutoRetry=15 /For=$TaskFor"
$WorkingDir = "%systemroot%\system32"

$ScheduledAction = New-ScheduledTaskAction –Execute $Task -WorkingDirectory $WorkingDir -Argument $Argument
$ScheduledTrigger = @()
$ScheduledTrigger += New-ScheduledTaskTrigger -Daily -At 10:00
$ScheduledTrigger += New-ScheduledTaskTrigger -Daily -At 15:00
$ScheduledSettings = New-ScheduledTaskSettingsSet -Compatibility V1 -DontStopOnIdleEnd -ExecutionTimeLimit (New-TimeSpan -Days 3) -Priority 5
$ScheduledTask = New-ScheduledTask -Action $ScheduledAction -Trigger $ScheduledTrigger -Settings $ScheduledSettings
Register-ScheduledTask $TaskName -InputObject $ScheduledTask -User "NT AUTHORITY\SYSTEM"

หลังจากที่ทั้งกลุ่มยุ่งกับมันให้มันทำงานแตกต่างกันเล็กน้อย (มันก็ดูเหมือนจะแสดงขึ้นอย่างถูกต้องผ่าน GUI)

ส่งเสียงไปที่หน้านี้เพื่อขอความช่วยเหลือ: https://social.technet.microsoft.com/forums/windowsserver/en-US/fb69840d-5f52-4711-8168-2faa23088233/shadow-copy-schedule-per-script

ข้อเสียของการใช้ schtasks (สิ่งที่หน้านั้นใช้) คือคุณไม่สามารถมีทริกเกอร์หลายตัวเท่าที่ฉันเห็น

นอกจากนี้เนื่องจากวิธีการที่ฉันแก้ไขปัญหา (ใช้ bindiff ในการทำงาน / ไม่ทำงาน xml) ฉันจึงไม่มั่นใจว่าธงที่ฉันใช้นั้นเหมาะสมที่สุด


2

Simpler หมายถึงการใช้ schtasks ที่แสดงใน UI เข้ากันได้กับ PowerShell 2 ออกแบบมาสำหรับบิลด์มาตรฐานอาจต้องเล่นด้วย $ volumeinfo [x] เมื่อสร้าง $ taskrun เพื่อค้นหาไดรฟ์ข้อมูลที่เหมาะสม

$volumeinfo = GWMI -namespace root\cimv2 -class win32_volume
$volumeid = $volumeinfo[1].deviceid
$taskname = "ShadowCopyVolume" + $volumeid.replace("\","").replace("?Volume","")
$taskrun = "C:\Windows\system32\vssadmin.exe Create Shadow /AutoRetry=15 /For=$volumeid"
schtasks /create /RU SYSTEM /SC DAILY /ST 07:00 /RI 60 /DU 12:00 /K /V1 /TN $TaskName /TR "$taskrun "

สามารถกำหนดค่าอาร์กิวเมนต์ต่อไปนี้อย่างเหมาะสม:

  • / SC - มีการเรียกใช้งานความถี่
  • / ST - ทริกเกอร์งานเวลา
  • / RI - การทำซ้ำของงานทุก ๆ x นาทีหลังจากทริกเกอร์
  • / DU - ระยะเวลาของงานที่ต้องทำซ้ำ

หมายเหตุ: สวิตช์ / TR ต้องการพื้นที่ในตอนท้ายหากไม่มีอยู่นั้นจะแทนที่ backslash สุดท้ายด้วยเครื่องหมายคำพูดคู่ทำให้ VSS UI ไม่รู้จักงาน


1

นี่คือสิ่งที่ผมใช้ใน PowerShell มันเป็นลิงค์ไปยังเว็บไซต์ของฉัน แต่มันดูดีกว่ามากที่วางไว้ที่นี่

#Enable Volume Shadow copy
clear
$Continue = Read-Host "Enable Volume Shadowcopy (Y/N)?"
while("Y","N" -notcontains $Continue) {
    $Continue = Read-Host "Enable Volume Shadowcopy (Y/N)?"
}
if ($Continue -eq "Y") {

    #Enable Shadows
    vssadmin add shadowstorage /for=C: /on=C:  /maxsize=8128MB
    vssadmin add shadowstorage /for=D: /on=D:  /maxsize=8128MB

    #Create Shadows
    vssadmin create shadow /for=C:
    vssadmin create shadow /for=D:

    #Set Shadow Copy Scheduled Task for C: AM
    $Action=new-scheduledtaskaction -execute "c:\windows\system32\vssadmin.exe" -Argument "create shadow /for=C:"
    $Trigger=new-scheduledtasktrigger -daily -at 6:00AM
    Register-ScheduledTask -TaskName ShadowCopyC_AM -Trigger $Trigger -Action $Action -Description "ShadowCopyC_AM"

    #Set Shadow Copy Scheduled Task for C: PM
    $Action=new-scheduledtaskaction -execute "c:\windows\system32\vssadmin.exe" -Argument "create shadow /for=C:"
    $Trigger=new-scheduledtasktrigger -daily -at 6:00PM
    Register-ScheduledTask -TaskName ShadowCopyC_PM -Trigger $Trigger -Action $Action -Description "ShadowCopyC_PM"

    #Set Shadow Copy Scheduled Task for D: AM
    $Action=new-scheduledtaskaction -execute "c:\windows\system32\vssadmin.exe" -Argument "create shadow /for=D:"
    $Trigger=new-scheduledtasktrigger -daily -at 7:00AM
    Register-ScheduledTask -TaskName ShadowCopyD_AM -Trigger $Trigger -Action $Action -Description "ShadowCopyD_AM"

    #Set Shadow Copy Scheduled Task for D: PM
    $Action=new-scheduledtaskaction -execute "c:\windows\system32\vssadmin.exe" -Argument "create shadow /for=D:"
    $Trigger=new-scheduledtasktrigger -daily -at 7:00PM
    Register-ScheduledTask -TaskName ShadowCopyD_PM -Trigger $Trigger -Action $Action -Description "ShadowCopyD_PM"
}

ฉันขอแนะนำให้เยื้อง ...
เตอร์ - Reinstate Monica

1

Shadow Copy ใช้งานได้จริงโดยการสร้างงานที่เรียก vssadmin.exe

PowerShell 3.0 มี cmdlets ที่ให้คุณสร้างงานได้ แต่สิ่งเหล่านี้ขึ้นอยู่กับ syscalls ที่ไม่ได้ใช้งานจนกว่า Windows 8 / Windows Server 2012 คุณต้องใช้ cmdlet สามรายการต่อไปนี้เพื่อทำสิ่งนี้ด้วยวิธี PowerShell:

register-scheduledTask
new-scheduledtaskaction
new-scheduledtasktrigger

ใน Windows รุ่นก่อนหน้าคุณจะถูก จำกัด การใช้ schtasks.exe

อย่างไรก็ตาม - และนี่คือจุดที่คำตอบนี้แตกต่างจากคำอื่น ๆ - การสร้างงาน Shadow Copy ด้วยวิธีเหล่านี้ไม่ใช่วิธีที่เหมาะสมในการทำสิ่งต่าง ๆ เนื่องจากการเปลี่ยนแปลงใด ๆ ที่คุณทำจะไม่ปรากฏใน GUI ดังนั้นผู้ใช้ที่ไม่ได้สังเกตเห็นอาจไม่ทราบว่ามีการเปิดใช้งาน Shadow Copy จึงส่งผลให้พวกเขาเปิดใช้งานอินสแตนซ์ที่สองของมันหรือแย่กว่าเขียนทับงานของคุณอย่างเงียบ ๆ (ถ้าคุณทำตาม

สิ่งที่คุณต้องทำคือสร้างผ่าน GUI (โดยเฉพาะบน Win7 / Win2008 เนื่องจาก Windows รุ่นใหม่ใช้ taskxml 1.2 โดยค่าเริ่มต้นแทนที่จะเป็น taskxml 1.1 ที่เข้ากันได้มากกว่า) ส่งออกงานเป็น XML ผ่าน schtasks โดยทางโปรแกรมแก้ไข XML บันทึก XML นั้นเป็น UTF16 และนำเข้า โชคดีที่เมื่อคุณได้รับ GUI มาตั้งแต่ต้นแล้วสิ่งนี้สามารถทำได้บน commandline

ฉันต้องการโพสต์รหัส แต่สิ่งที่ฉันเขียนเป็นกรรมสิทธิ์และฉันไม่ได้รับอนุญาตจากนายจ้างของฉัน ฉันหวังว่าอย่างน้อยเคล็ดลับ XML จะช่วยให้คุณประหยัดเวลานับไม่ถ้วนอย่างน้อยที่สุด ฉันเพิ่งนำโซลูชัน XML ไปใช้กับเซิร์ฟเวอร์ที่มีการจัดการหลายร้อยแห่งเพื่อความสำเร็จที่ยิ่งใหญ่


1

ขอบคุณทุกคนที่มีส่วนร่วมในหัวข้อนี้ มันเป็นประโยชน์และช่วยฉันทำงานมากมาย สคริปต์ PowerShell ต่อไปนี้ได้รับการทดสอบบน Windows Server 2008 R2

ตัวอย่างต่อไปนี้สร้าง Snapshot ทุก 2 ชั่วโมงระหว่าง Mo.-Fr. จาก 08: 00h-18: 00h ในเล่ม C:

หากคุณต้องการแก้ไขกำหนดเวลาเพียงแก้ไขหรือแทนที่อินไลน์ XML-Data

เรียนไม่มีการรับประกัน ไม่มีความรับผิดชอบ โปรดทดสอบในห้องปฏิบัติการของคุณเองก่อนใช้ในการผลิตสภาพแวดล้อม

# German Keyboard-Layout for Console Output. Can be skipped in english enviroments
#chcp 1252 >$null 2>&1

function ConfigureVolumeShadowCopies([string] $diskname, $vssMaxSizeInPercent) {

$xmlDocument = [xml] "<?xml version='1.0' encoding='UTF-16'?>
<Task version='1.1' xmlns='http://schemas.microsoft.com/windows/2004/02/mit/task'>
  <RegistrationInfo>
    <Author>Administrator</Author>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <StartBoundary>2018-01-01T08:00:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByWeek>
        <DaysOfWeek>
          <Monday />
          <Tuesday />
          <Wednesday />
          <Thursday />
          <Friday />
        </DaysOfWeek>
        <WeeksInterval>1</WeeksInterval>
      </ScheduleByWeek>
    </CalendarTrigger>
    <CalendarTrigger>
      <StartBoundary>2018-01-01T10:00:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByWeek>
        <DaysOfWeek>
          <Monday />
          <Tuesday />
          <Wednesday />
          <Thursday />
          <Friday />
        </DaysOfWeek>
        <WeeksInterval>1</WeeksInterval>
      </ScheduleByWeek>
    </CalendarTrigger>
    <CalendarTrigger>
      <StartBoundary>2018-01-01T12:00:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByWeek>
        <DaysOfWeek>
          <Monday />
          <Tuesday />
          <Wednesday />
          <Thursday />
          <Friday />
        </DaysOfWeek>
        <WeeksInterval>1</WeeksInterval>
      </ScheduleByWeek>
    </CalendarTrigger>
    <CalendarTrigger>
      <StartBoundary>2018-01-01T14:00:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByWeek>
        <DaysOfWeek>
          <Monday />
          <Tuesday />
          <Wednesday />
          <Thursday />
          <Friday />
        </DaysOfWeek>
        <WeeksInterval>1</WeeksInterval>
      </ScheduleByWeek>
    </CalendarTrigger>
    <CalendarTrigger>
      <StartBoundary>2018-01-01T16:00:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByWeek>
        <DaysOfWeek>
          <Monday />
          <Tuesday />
          <Wednesday />
          <Thursday />
          <Friday />
        </DaysOfWeek>
        <WeeksInterval>1</WeeksInterval>
      </ScheduleByWeek>
    </CalendarTrigger>
    <CalendarTrigger>
      <StartBoundary>2018-01-01T18:00:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByWeek>
        <DaysOfWeek>
          <Monday />
          <Tuesday />
          <Wednesday />
          <Thursday />
          <Friday />
        </DaysOfWeek>
        <WeeksInterval>1</WeeksInterval>
      </ScheduleByWeek>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id='Author'>
      <UserId>S-1-5-18</UserId>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
    <IdleSettings>
      <Duration>PT600S</Duration>
      <WaitTimeout>PT3600S</WaitTimeout>
      <StopOnIdleEnd>false</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT259200S</ExecutionTimeLimit>
    <Priority>5</Priority>
  </Settings>
  <Actions Context='Author'>
    <Exec>
      <Command>C:\Windows\system32\vssadmin.exe</Command>
      <Arguments>Create Shadow /AutoRetry=15 /For=\\?\Volume{REPLACEME}\</Arguments>
      <WorkingDirectory>%systemroot%\system32</WorkingDirectory>
    </Exec>
  </Actions>
</Task>"

# Query Volume GUID of the given Volume
$VolumeWmi = gwmi Win32_Volume -Namespace root/cimv2 | ?{ $_.Name -eq ($diskname +"\") }

# Build Variables
$DeviceID = $VolumeWmi.DeviceID.ToUpper().Replace("\\?\VOLUME", "").Replace("\","")
$TaskName = "ShadowCopyVolume" + $DeviceID
$TaskFor = "\\?\Volume" + $DeviceID + "\"

# Replace Volume GUID in XML-Data
$xmlDocument.Task.Actions.Exec.Arguments = "Create Shadow /AutoRetry=15 /For=$TaskFor"

# Write temporary XML-File for Import of scheduled Task with schtask
$xmlDocumentFileName = $PSScriptRoot + "\" + $TaskName + ".xml"
$xmlDocument.Save($xmlDocumentFileName)

# Try to Delete existing Task for VSS
try {
schtasks /delete /TN $Taskname /f
}
catch {
    #If Task can not be found: do nothing
}

# Create Scheduled Task
schtasks /Create /XML $xmlDocumentFileName /TN $TaskName

# Create (First) Snapshot
vssadmin Create Shadow /For=$diskname /AutoRetry=15

# Define Max Size of VSS Shadow Storage
vssadmin resize shadowstorage /For=$diskname /On=$diskname /MaxSize=$vssMaxSizeInPercent

# Delete temporary XML Document
Remove-Item $xmlDocumentFileName -Force

}

# Start Configuration - for Example on Volume C: with 10% MaxSize
ConfigureVolumeShadowCopies "C:" "10%"

0

ดีที่สุดที่ฉันสามารถทำได้คือจุดที่คุณอยู่ที่นี่และโดยเฉพาะชี้คนนี้และคนนี้

ไม่ว่าที่อยู่ที่คุณกำลังมองหา แต่ฉันจะชี้ให้เห็นว่าคุณสามารถสร้าง shadow copy ได้ทุกเมื่อเนื่องจาก VSS เป็นบริการแบ็คกราวน์ที่รันจนกระทั่งเรียกใช้


0

ฉันได้รับสิ่งที่ฉันต้องการด้วยรหัสต่อไปนี้ความต้องการของฉันคือการกำหนดค่า VSS แต่มันก็จำเป็นที่จะต้องมองเห็นได้ใน GUI ส่วนสำคัญที่ทำให้มองเห็นได้ใน GUI คือการเพิ่ม ID ปริมาณในชื่องานที่กำหนดไว้ตามที่ระบุโดย user261949 (มันแปลกแปลกจริง ๆ ฉันกำลังค้นหาคีย์รีจิสตรี แต่ฉันไม่พบอะไรเลย .. ) ฉันสิ้นสุดด้วยรหัสต่อไปนี้ที่เหมาะสมกับความต้องการของฉัน:

#Enable Volume Shadow copy

#Enable Shadows
vssadmin add shadowstorage /for=C: /on=C:  /maxsize=8128MB

#Create Shadows
vssadmin create shadow /for=C:

#create scheduled tasks
$diskname = "C:\"
$VolumeWmi = gwmi Win32_Volume -Namespace root/cimv2 | ?{ $_.Name -eq $diskname }
$DeviceID = $VolumeWmi.DeviceID.ToUpper().Replace("\\?\VOLUME", "").Replace("\","")
$TaskName = "ShadowCopyVolume" + $DeviceID
$TaskFor = "\\?\Volume" + $DeviceID + "\"
$Task = "C:\Windows\system32\vssadmin.exe"
$Argument = "Create Shadow /AutoRetry=15 /For=$TaskFor"
$WorkingDir = "%systemroot%\system32"

$ScheduledAction = New-ScheduledTaskAction -Execute $Task -WorkingDirectory 
$WorkingDir -Argument $Argument
$ScheduledTrigger = @()
$ScheduledTrigger += New-ScheduledTaskTrigger -Daily -At 07:00
$ScheduledTrigger += New-ScheduledTaskTrigger -Daily -At 12:00
$ScheduledSettings = New-ScheduledTaskSettingsSet -Compatibility V1 -DontStopOnIdleEnd -ExecutionTimeLimit (New-TimeSpan -Days 3) -Priority 5
$ScheduledTask = New-ScheduledTask -Action $ScheduledAction -Trigger 
$ScheduledTrigger -Settings $ScheduledSettings
Register-ScheduledTask $TaskName -InputObject $ScheduledTask -User 'NT AUTHORITY\SYSTEM'

ขอบคุณสำหรับข้อมูลที่เป็นประโยชน์ของคุณ!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.