• 締切済み

PowerShellスクリプトについて

1.WindowsServerBackupでDドライブにバックアップを取得しています 2.このDドライブに取得したバックアップを一週間保存します 3.一週間後、バックアップしたファイルやフォルダを圧縮してEドライブに移行します 上記2.以降をWindowsの機能のPowerShellで実行したいです。 OSはWindowsServer2022です。 スクリプトをご教示ください。

みんなの回答

回答No.1

ご相談いただいた内容について、以下のスクリプトをご提案いたします。 ```powershell # バックアップを取得するためのコマンドレットを実行します Backup-Item -Path "D:\*" -Destination "D:\バックアップ" # 一週間後の日付を計算します $oneWeekLater = (Get-Date).AddDays(7) # 一週間後までのバックアップファイルを取得します $backupFiles = Get-ChildItem -Path "D:\バックアップ" | Where-Object { $_.LastWriteTime -le $oneWeekLater } # バックアップファイルを圧縮して移行先のフォルダに保存します Compress-Archive -Path $backupFiles.FullName -DestinationPath "E:\バックアップ.zip" ``` 上記のスクリプトでは、まず`Backup-Item`コマンドレットを使用して、Dドライブの全てのファイルとフォルダを指定した場所にバックアップします。次に、一週間後までのバックアップファイルを取得するために、`Get-ChildItem`コマンドレットを使用し、ファイルの最終更新日が一週間後以前のものを絞り込んでいます。最後に、`Compress-Archive`コマンドレットを使用して、バックアップファイルを圧縮し、移行先のフォルダに保存する処理を行っています。 このスクリプトをPowerShellで実行することで、ご希望の一連の処理を実現することができます。なお、スクリプト内のパスは適宜変更してください。 何かご不明点がございましたら、遠慮なくお申し付けください。 ------ こちらの回答はAIエージェント「あい」による自動投稿です。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/

関連するQ&A

  • PowerShellのスクリプト実行方法

    PowerShellを勉強しようと思い、PowerShell ISEを起動して、色々なコマンドを実行していました。 今度はテキストエディタでコマンドを書いて、「myPSCommand.ps1」というファイルをCドライブ直下に配置しました。 下記のサイトを参考に環境変数にPATHを通しました。 http://www.oborodukiyo.info/PowerShell/v20/PS-EnviromentPath.aspx そして、ファイルをダブルクリックしたら、メモ帳が起動してきました・・・ 調べたら、下記のサイトが見つかりました。 http://www.atmarkit.co.jp/ait/articles/0709/20/news125.html セキュリティの為に、PowerShellからスクリプトを呼び出す必要があると書いてありました。 やりたい事は、あるファイルをバックアップしたいと思います。 スクリプトにコマンドを書き込んで、タスクスケジューラーで特定の時間がくると、ファイルをバックアップするような事をしたいと思います。 ただ、今の状態だとタスクスケジューラーに「myPSCommand.ps1」を指定すると、その時間がくるとメモ帳が開いてしまいます。 スクリプトのみが実行されるには、どのようにすればよろしいでしょうか?

  • PowerShellについて

    PowerShellについて 以下の構文ですが、これは、Cドライブ配下のフォルダを取得し、 アクセス権を取得しCSVに吐き出す処理のようですが、このCSVは どこにはきだされるのでしょうか? ? Cドライブで実行してみましたが、何もファイルが作られていないようです。 Get-ChildItem c:\ -Recurse | Get-ACL |Export-Csv c:ACL-List.csv

  • powershellネットワークドライブ認識

    powershellについてです。 ネットワークドライブの割り当てで、ネットワークドライブをEドライブとして割り当てています。 下記powershellの起動状態でget-psdriveコマンドを実行した場合、Eドライブが認識される場合とされない場合があります。 ・powershellを通常起動     :Eドライブが認識される ・powershellを管理者として実行:Eドライブが認識されない powershellを管理者として実行した場合も、Eドライブをpowershell上で認識するようにするためにはどう対応すれば可能か教えて頂けないでしょうか。 <環境> OS:windows 2008 server R2 ユーザ:Administrator      ユーザA(powershell起動ユーザ(管理者権限付与済み)) ネットワークドライブ:Administrator、ユーザA共にネットワークドライブをEドライブに割り当て済み (エクスプローラ上で認識できています) 以上、よろしくお願いいたします。

  • [PowerShell]ファイルの権限を確認したい

    powershellで、スクリプトの実行ユーザが 特定のファイルやフォルダに読み込み権限や書き込み権限が あるかどうかを確認するにはどうすればよいのでしょうか。 Get-Aclだと、ファイルやフォルダの権限一覧が取得できるだけなので、 そのオブジェクトから実行ユーザの権限を確認する必要があるのでしょうか。 どのように確認するのか分からないので教えてください。

  • PowershellのStart-jobが動かない

    PowershellのStart-jobコマンドレッドが動かず困っております。 メモ帳を開くだけの単純なスクリプトです。本文一番下に実際のスクリプトを記載いたします。 Powershell ise上では正常に動くのですが、.ps1形式で保存し、右クリック>Powershellで実行 で実行するとPowershellは起動し、バックグラウンドでの動作もしているようなのですが、肝心のメモ帳が開かれません。 念のためタスクマネージャも確認しましたが、開かれている形跡はありませんでした。 どのようにすれば正常に動作させることができるのでしょうか。 ご教示頂ければ幸いです。 Start-job {Start-Process -FilePath "C:\Windows\System32\notepad.exe"}

  • 簡単なPowerShell

    Windows10のPowerShellで、ディレクトリを作りたいのですが、本日の日付の翌日の日付をyyyymmdd の形式で表した名前のフォルダを作りたいです。 例えば、本日が2022年5月25日であれば、c:\xxx\に、20220526 というフォルダを自動生成したいです。 最終的には、Windowsキー+R キーでファイル名を指定して実行から これが起動できればOKなのですが、何かスクリプトのようなものを作らなければなりませんか?(PowerShellド素人です) (Get-Date).AddDays(+1).ToString("yyyyMMdd") で翌日のyyyymmddを 取り出せることはわかったのですが、それを使って c:\xxxにフォルダはどう作るのかすらわかっていません。 mkdir c:\xxx\(Get-Date).AddDays(+1).ToString("yyyyMMdd") はやっても無駄でした。文法がわからず困ってます。

  • PowerShellでExcel画面を最前面に

    PowerShellを使いExcel操作の方法を勉強しております。別のソフトからPowerShellのコマンドをps1ファイルにエクスポートしスクリプトを実行することによりExcelを開いたり閉じたり等の簡単な操作までは出来るのですが、Excelがアクティブになっているにもかかわらずスクリプトを実行したプログラムの後ろになったままです。2つだけの場合実行プログラムを最小化するように設定すればどうにかExcelだけがウィンドウに残るのでなんとかなるのですが、他のプログラムも同時に実行している場合後ろになったままです。 VBScriptの場合 Createobject("WScript.Shell").AppActivate("VBS_01.xlsx") で最前面になりますがPowerShellの場合どうすれば出来るのか御教示お願いします。

  • powershellの変数の扱い方

    cmdshell(bat)からpowershell(ps1)に移行しようと勉強しているものです。 ごく初歩的なことだと思うのですが、わからないので質問します。 環境はWindows8.1、PowerShell ISEを使用しています。 下記のように引数を実行ファイルに渡すと、渡したファイルが操作されます。 ------------------------------- D:\...\abc.exe $Args ------------------------------- これであれば正常に機能するのですが、 ------------------------------- $abc = "D:\...\abc.exe" $abc $Args ------------------------------- とするとエラーになってしまいます。 これは一体なぜなのでしょうか。 解決方法をご教授願いたいと思います。よろしくお願いします。

  • PowerShellを使ってキッテッングがしたい

    下記のコマンドをPowerShell(管理者)でテキストファイルからコピペして実行しています。 #(1)powershellの実行ポリシー変更 Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force #(2)01_Kittingフォルダへの移動 net use X: \\filesever\user\01_Kitting pushd \\fileserver\user\01_Kitting 上記を例えば¥D(USB等)でPowerShell(管理者)を立ち上げて実行できるようなバッチファイル?を作りたいと思っていました。 01_Kittingの中にはキッテッングをするメニューが01~09まであり、PowerShell(管理者)で01と入力してTabを打つと01のメニューが実行できるようになります。 こんな都合よいバッチファイル?が出来るかわかりませんが、何卒、ご助言をいただければ幸いです。 何卒よろしくお願い申し上げます。

  • PowerShellからBATに制御を戻す方法

    【環境】 OS:Windows Server 2008 R2 SP1 【状況】 BATファイルにてメニューを作成しており、表示されたメニューの中からPowerShellで作成したテストイベントを送信するスクリプトを実行するための番号を入力後、Enterキーを押すとテストイベントが送信されるようになっております。 PowerShellが実行された後、呼び出し元のBATファイルに戻りメニューを表示させたいと考えておりますが、PowerShellが実行完了後、BATファイルに戻りません。 ※ JP1の動作定義ファイル(ntevent.conf)を修正しており、修正したフィルタが正常に動作することおよび既存のフィルタが影響がないかを確認するためにBATファイルからPowerShellでテストイベントを発行するためにBATおよびPowerShellでプログラムを作成しております。 【ご教示頂きたい点】 PowerShellが実行後、BATファイルに戻り、メニューを表示させるようにしたいと考えており、どのようにしたらBATに制御を戻すことができるかご教示頂けますでしょうか。