2022年2月22日 星期二

只要點兩下,就可以讓老師免帳號免密碼下載教科書的ISO-適用Windows 各版本

         由於教科書的書商已不提供教材光碟給老師,書商就利用Google雲端硬碟存放教科書ISO。將連結給老師,讓老師去下載ISO。想當然爾,這件事沒什麼大問題。可是當所有的老師同時從Google雲端硬碟下載ISO時,學校對外頻寬就通通被佔用了。

        為了解決這個問題,學校建置雲端硬碟集中書商教材ISO。採用免費 Linux 的 Samba 來建立雲端硬碟,請參閱資料來源2.acfs14.04 x32 使用 samba 當作學校檔案伺服器 與資料來源3.xubuntu 18.04.03 x32 用shell 快速完成 samba 設定。
        希望能讓老師直接點兩下,免帳號、免密碼就可以下載教科書的ISO。
        上一期發現老師的電腦作業系統有Windows 7、Windows 10,沒想到有位老師剛換新電腦,他電腦的作業系統竟然是最新的Windows 11。那我目前寫的程式,能夠滿足Windows 作業系統各版本的需求,讓老師都能夠使用嗎?還是我需要做些調整,讓程式可以適用Windows 作業系統各版本。那我該怎麼做呢?
        讓BAT能夠判斷現在的環境是什麼作業系統,再來依作業系統來進行相關的程序。

檔案下載 解壓密碼demo1234

        由於找到資料來源5.請問如何在批次檔中判斷作業系統。那我們將其截取我們所要的程式碼,並將其整理如下:
檔案名稱:判斷作業系統.BAT
檔案內容:
@echo off
systeminfo | find "作業系統名稱:" > %~dp0RegSetting\SystemInfo.txt
FOR /F "usebackq delims=: tokens=2" %%i IN (%~dp0RegSetting\SystemInfo.txt) DO set vers=%%i

echo %vers% | find/i "Windows 7" > nul
if %ERRORLEVEL% == 0 goto ver_7


echo %vers% | find "Windows 10" > nul
if %ERRORLEVEL% == 0 goto ver_10


echo %vers% | find "Windows 11" > nul
if %ERRORLEVEL% == 0 goto ver_11


:ver_7
@echo "作業系統是 Windows 7" 
pause
exit

:ver_10
@echo "作業系統是 Windows 10"
pause
exit

:ver_11
@echo "作業系統是 Windows 11"
pause
exit

        那我們將上述程式碼寫入我們的批次檔。     
檔案名稱:登入雲端公用區.bat
檔案內容:
REM 設定伺服器IP
set ServerIP=172.20.3.5

REM =======以下是程式碼可不用修改===============
@echo off
REM 偵測作業系統版本只要做一次就好
if not exist %~dp0RegSetting\SystemInfo.txt (
systeminfo | find "作業系統名稱:" > %~dp0RegSetting\SystemInfo.txt
)

REM 從SystemInfo.txt取得版本訊息
FOR /F "usebackq delims=: tokens=2" %%i IN (%~dp0RegSetting\SystemInfo.txt) DO set vers=%%i

REM 版本比對
echo %vers% | find/i "Windows 7" > nul
if %ERRORLEVEL% == 0 goto ver_7

echo %vers% | find "Windows 10" > nul
if %ERRORLEVEL% == 0 goto ver_10

echo %vers% | find "Windows 11" > nul
if %ERRORLEVEL% == 0 goto ver_11

REM Windos 7
:ver_7
@echo "作業系統是 Windows 7" 
net use /d * /y
cls
@echo 網路磁碟公用區登入程序
@echo =====================================
@echo off
net use v: \\%ServerIP%\public
exit

REM Windos 10
:ver_10
@echo "作業系統是 Windows 10"
if exist %~dp0RegSetting\1.txt (
net use /d * /y
cls
@echo 網路磁碟公用區登入程序
@echo =====================================
@echo off
net use v: \\%ServerIP%\public
exit
) else (
@echo 停止群組安全原則
@regedit.exe /s "%~dp0RegSetting\停止群組安全原則.reg"
@echo OK > %~dp0RegSetting\1.txt
@echo "等下會重新開機,開機後再執行此批次檔。即可進入雲端硬碟!!"
shutdown /r /f /t 0
)

pause
exit

REM Windos 11
:ver_11
@echo "作業系統是 Windows 11"
if exist %~dp0RegSetting\1.txt (
net use /d * /y
cls
@echo 網路磁碟公用區登入程序
@echo =====================================
@echo off
net use v: \\%ServerIP%\public
exit
) else (
@echo 停止群組安全原則
@regedit.exe /s "%~dp0RegSetting\停止群組安全原則.reg"
@echo OK > %~dp0RegSetting\1.txt
@echo "等下會重新開機,開機後再執行此批次檔。即可進入雲端硬碟!!"
shutdown /r /f /t 0
)

pause
exit

檔案名稱:以後不用公用區_電腦恢復原原狀.bat
檔案內容:
@echo off

REM 偵測作業系統版本只要做一次就好
if not exist %~dp0RegSetting\SystemInfo.txt (
systeminfo | find "作業系統名稱:" > %~dp0RegSetting\SystemInfo.txt
)

REM 從SystemInfo.txt取得版本訊息
FOR /F "usebackq delims=: tokens=2" %%i IN (%~dp0RegSetting\SystemInfo.txt) DO set vers=%%i

REM 版本比對
echo %vers% | find/i "Windows 7" > nul
if %ERRORLEVEL% == 0 goto ver_7

echo %vers% | find "Windows 10" > nul
if %ERRORLEVEL% == 0 goto ver_10

echo %vers% | find "Windows 11" > nul
if %ERRORLEVEL% == 0 goto ver_11

REM Windos 7
:ver_7
@echo "作業系統是 Windows 7" 
@echo "電腦已回復先前設定"
@echo "感謝您的使用!!"
pause
exit

REM Windos 10
:ver_10
@echo "作業系統是 Windows 10"
if exist %~dp0RegSetting\1.txt (
@echo 回復群組安全原則
@regedit.exe /s "%~dp0RegSetting\回復群組安全原則.reg"
del %~dp0RegSetting\1.txt
@echo "等下會重新開機,電腦就會回復先前設定"
@echo "感謝您的使用!!"
pause
shutdown /r /f /t 0
)
exit

REM Windos 11
:ver_11
@echo "作業系統是 Windows 11"
if exist %~dp0RegSetting\1.txt (
@echo 回復群組安全原則
@regedit.exe /s "%~dp0RegSetting\回復群組安全原則.reg"
del %~dp0RegSetting\1.txt
@echo "等下會重新開機,電腦就會回復先前設定"
@echo "感謝您的使用!!"
pause
shutdown /r /f /t 0
)
exit

       以下的程式碼跟系列文章1.只要點兩下,就可以讓老師免帳號免密碼下載教科書的ISO的想同檔名的程式碼相同,就負載  
檔案名稱:回復群組安全原則.reg
檔案內容:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\LanmanWorkstation]
"AllowInsecureGuestAuth"=dword:00000000

檔案名稱:停止群組安全原則.reg
檔案內容:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\LanmanWorkstation]
"AllowInsecureGuestAuth"=dword:00000001


檔案名稱:登出雲端公用區.bat
檔案內容:
echo off
net use /d * /yes
exit

資料來源:

2022年2月17日 星期四

只要點兩下,就可以讓老師免帳號免密碼下載教科書的ISO


        由於教科書的書商已不提供教材光碟給老師,書商就利用Google雲端硬碟存放教科書ISO。將連結給老師,讓老師去下載ISO。想當然爾,這件事沒什麼大問題。可是當所有的老師同時從Google雲端硬碟下載ISO時,學校對外頻寬就通通被佔用了。
        為了解決這個問題,學校建置雲端硬碟集中書商教材ISO。採用免費 Linux 的 Samba 來建立雲端硬碟,請參閱資料來源2.acfs14.04 x32 使用 samba 當作學校檔案伺服器 與資料來源3.xubuntu 18.04.03 x32 用shell 快速完成 samba 設定。
        希望能讓老師直接點兩下,免帳號、免密碼就可以下載教科書的ISO。

程式碼下載 解壓密碼demo1234

使用的BAT如下:
在Windows 7 作業系統,一切都很順利
伺服器IP:192.168.154.133
檔名:雲端硬碟登入login.bat
檔案內容:
net use /d * /y
cls
net use v: \\192.168.154.133\homework
exit

雲端硬碟登出
檔名:雲端硬碟登出logout.bat
檔案內容:
echo off
net use /d * /yes
exit

        沒想到,在Windows 10 作業系統出現了問題。問題如下:
        於是找大神Google,找找看否有解?找到資料來源1.無法從 Windows 10 中的檔案總管存取共用資料夾。於是,修改了BAT,並增加兩個reg。其結構如下:


檔案名稱:回復群組安全原則.reg
檔案內容:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\LanmanWorkstation]
"AllowInsecureGuestAuth"=dword:00000000

檔案名稱:停止群組安全原則.reg
檔案內容:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\LanmanWorkstation]
"AllowInsecureGuestAuth"=dword:00000001

檔案名稱:登入雲端公用區.bat
檔案內容:
REM 設定伺服器IP
set ServerIP=172.20.3.5

REM =======以下是程式碼可不用修改===============
@echo off
if exist %~dp0RegSetting\1.txt (
net use /d * /y
cls
@echo 網路磁碟公用區登入程序
@echo =====================================
@echo off
net use v: \\%ServerIP%\public
exit
) else (
@echo 停止群組安全原則
@regedit.exe /s "%~dp0RegSetting\停止群組安全原則.reg"
@echo OK > %~dp0RegSetting\1.txt
@echo "等下會重新開機,開機後再執行此批次檔。即可進入雲端硬碟!!"
pause
shutdown /r /f /t 0
)

pause
exit

檔案名稱:登出雲端公用區.bat
檔案內容:
echo off
net use /d * /yes
exit

檔案名稱:以後不用公用區_電腦恢復原原狀.bat
檔案內容:
@echo off
if exist %~dp0RegSetting\1.txt (
@echo 回復群組安全原則
@regedit.exe /s "%~dp0RegSetting\回復群組安全原則.reg"
del %~dp0RegSetting\1.txt
@echo "等下會重新開機,電腦就會回復先前設定"
@echo "感謝您的使用!!"
pause
shutdown /r /f /t 0
)

exit






2021年12月24日 星期五

如何配合康軒版國三資訊科技Python 3.9.0,來開發Django 4.0網站-資料庫

系列文章:
 
 
 
 

如何讓虛擬機能夠載入大容量資料的硬碟(超過3T的資料碟)

系列文章
        最近想把實體機轉成虛擬機。這樣可不用管硬體故障的問題,而將功能移轉到別的機器。沒想到系統碟(68G)已經轉好,但是資料碟卻因為儲存資料過於龐大(超過3T),遲遲無法移轉。
原本的想法如下:
 想法一、 將資料碟轉成虛擬硬碟再載入虛擬機
 想法二、 讓虛擬機直接使用實體硬碟
 經過實作後,發現想法一不可行。想法二可行。
 
以下是想法與實作經驗:
一、 將資料碟轉成虛擬硬碟再載入虛擬機

        (一)使用工具列表:

        工具下載處(官方網站)

        1. 適用於 Windows 的 qemu-img 

        2. Disk2vhd v2.02 

        3.V2V Converter / P2V Migrator

        4.Download WinImage

        (二)實作歷程: 

       原本利用V2V Converter / P2V Migrator的starwindconverter.exe,將系統碟(68G)成功轉成虛擬硬碟。但是偏偏遇到資料碟(超過3T)無法順利移轉。
 
       後來想用Download WinImage,卻發現Download WinImage只能將檔案轉成VHD。但是VHD有容量限制,對資料碟(超過3T)無法順利移轉。
   
       實作結果,可以利用Disk2vhd v2.02 將資料碟(超過3T)順利轉成VHDX。但是希望能將VHDX轉成VMDK,可惜的是V2V Converter / P2V Migrator的starwindconverter.exe依舊無法處理超過3T的VHDX。
 
       最後利用適用於 Windows 的 qemu-img,將超過3T的VHDX轉成超過3T的VMDK。最後要匯入Vmware 虛擬機時,卻發生錯誤。
 
 二、 讓虛擬機直接使用實體硬碟:
         設定過程如下:
         (一)由於資料碟是屬於整個硬碟且磁碟編號D:
               所以新增硬碟
 
        (二)由於在實體機的硬碟介面就是採用SATA介面,所以選擇SATA介面。
              此外,部分的實體機會挑磁碟介面。虛擬化之後,依舊要選擇同樣的介面形式。否則  
              虛擬機開機就無法進入Windows。因此,需考量實際情況再做選擇。
 
       (三)選擇Use a physical disk (for advanced users):選擇實體硬碟
 
         (四)掛載目前的實體機,該資料碟(超過3T)也是整個硬碟掛載在D碟。所以選擇
               PhysicalDrive1,並且選擇Use entire disk 使用整個硬碟。
 
        (五)系統會選擇該虛擬硬碟的位置,使用預設即可。

資料來源:




2021年12月17日 星期五

如何配合康軒版國三資訊科技Python 3.9.0,來開發Django 4.0網站

系列文章:
 
一、下載 Python 3.9.0,下載來源:https://www.python.org/ftp/python/3.9.0/python-3.9.0-amd64.exe
         
         現有的使用環境:C:\Users\CSM\ 
         使用者 CSM
二、建立、啟動虛擬環境DjangoEnv
        指令如下:
         (一)建立虛擬環境DjangoEnv
           pip install virtualenv
 
           cd %UserProfile%
           virtualenv DjangoEnv
 
        (二)啟動虛擬環境DjangoEnv
           cd %UserProfile%\DjangoEnv
           Scripts\activate
 

        (三)退出虛擬環境DjangoEnv
            deactivate

三、安裝Django套件
        指令如下:
          pip install django

四、建立Django 專案project01
       django-admin startproject project01

 

       進入專案project01目錄
       cd project01
       建立APP,其名稱為 app01
       python manage.py startapp app01
 

       建立目錄 templates
       md templates
       建立目錄 static
       md static
       建立資料庫
       python manage.py makemigrations
 

       建立資料表
       python manage.py migrate

 
       啟動伺服器
       python manage.py runserver

       (一)修改 DjangoEnv\project01\project01\setting.py
 
             014行  import os
             026行  DEBUG = False

             035     INSTALLED_APPS = [
             036   'django.contrib.admin',
             037   'django.contrib.auth',
             038    'django.contrib.contenttypes',
             039   'django.contrib.sessions',
             040   'django.contrib.messages',
             041    'django.contrib.staticfiles',
             042    'app01',
             043    ]

             057 TEMPLATES = [
             058    {
             059        'BACKEND': 'django.template.backends.django.DjangoTemplates',
             060        'DIRS': [os.path.join(BASE_DIR,'templates')],
             061        'APP_DIRS': True,

             109 LANGUAGE_CODE = 'zh-Hant'

             111 TIME_ZONE = 'Asia/Taipei'

             121 STATIC_URL = '/static/'
             122 STATICFILES_DIRS = [
             123     os.path.join(BASE_DIR,'static'),
             124 ]


       (二)修改 DjangoEnv\project01\project01\urls.py
             016 from django.contrib import admin
             017 from django.urls import path,include,re_path
             018 from app01.views import sayhello


             022 urlpatterns = [
             023     path('admin/', admin.site.urls),
             024     re_path(r'^$',sayhello),
             025 ]
 
       (三)修改 DjangoEnv\project01\app01\views.py
 
             002 from django.http import HttpResponse

             004 # Create your views here.
             005 def sayhello(request):
             006  return HttpResponse("Hello Django!")

             完成 
             python manage.py runserver


參考書籍:

2021年12月8日 星期三

如何解決學校前瞻計畫班級電腦acer D18W1 windows 10 無法開機的問題

       最近學校前瞻計畫班級電腦acer D18W1 ,Windows 10 專業版無法開機。出現Reboot(重啟) and Select proper Boot device or Insert(插入) Boot Media in selected Boot device and press a key 的畫面。換句話說,可能連硬碟的故障了。仔細檢查 BIOS,有捉到硬碟。但是硬碟是 m.2 的SSD。除了重灌。還有其他辦法嗎?於是拿了Windows 10 原版光碟,準備進行重裝作業系統。用光碟開機,發現m.2 SSD 不但捉到,而且可以看到裡面的內容。換言之,m.2 SSD沒有故障,只是開機磁區沒有作用。於是用Windows 10 原版光碟開機,進行修復->疑難排解->命令列。輸入以下內容:
X:/Source> bootrec
X:/Source> bootrec /fixmbr
X:/Source> bootrec /fixboot
X:/Source> bootrec /scanos
X:/Source> bootrec /rebuildbcd
重開機後,再利用Windows 10 原版光碟開機,進行修復->疑難排解
這次竟然可以看到 Windows 10 專業版的選項 與 Windows 10 專業版的系統修復的選項
點選Windows 10 專業版的系統修復的選項,進行修復。
自光碟機取出Windows 10 原版光碟。
重開機,就可以進入系統。



2021年12月2日 星期四

用shell 在Xubuntu 18.04 安裝 python3 相關套件

       最近指導國三學生學python3,卻發現自己在ubuntu 18.04 x64 完全不會安裝套件。有點尷尬,於是便整理自己在python3 的指令。在更換主機練習時,能夠讓自己快速安裝開發環境。
1.安裝pip
$sudo apt-get install python3-pip

2.更新pip
$pip3 install -U pip

3.查詢pip安裝過的套件
$pip3 list

4.安裝python相關套件 numpy
$pip3 install numpy

5.解除安裝python相關套件 numpy
$pip3 uninstall numpy

6.搜尋 python相關套件 numpy
$pip3 search numpy

7.列出pip 指令與使用方式
$pip3 help
或是列出search 指令與使用方式
$pip3 help search 

8.安裝 virtualenv
$pip3 install virtualenv

9.建立目錄 test_env
$mkdir test_env

10.將目錄轉換成虛擬環境 test_env
$virtualenv test_env

11.啟動虛擬環境 test_env
$source test_env/bin/activate

12.停用虛擬環境 test_env
$cd test_env/
$deactivate

13.安裝虛擬環境軟體
$sudo pip3 install virtualenvwrapper

$sudo pico ~/.bashrc
将下面的文字 加入 ~/.bashrc
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=' -p /usr/bin/python3 '
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh

$source ~/.bashrc

14.建立虛擬環境
$mkvirtualenvDjangoEnv(環境名稱)
## 查詢環境
lsvirtualenv
## 建立環境
mkvirtualenv DjangoEnv(環境名稱)
## 複製環境
cpvirtualenv (原有環境) (新環境名稱)
## 刪除環境
rmvirtualenv DjangoEnv(環境名稱)
## 使用環境
workon DjangoEnv(環境名稱)
## 退出環境
deactivate

只要點兩下就能將 彰化縣EIP系統全校學生帳號總表 依 各班級 分成 各班級學生帳號總表

系列文章: 1. 只要點兩下就能產出彰化縣Cloud School 學生帳號密碼匯入彰化縣EIP系統學生帳號密碼的CSV 1. https://skjhcreator.blogspot.com/2025/08/cloud-school-eipcsv.html 2. 只要點兩下就能...